mcp-europe-tools
https://mcp-europe-tools-production.up.railway.app
Registry code: 68431d3e30658946
Utility tools for Portugal, Spain and France: public holidays, working-day counts, EU VAT rates, number formatting and IBAN, NIF, SIRET and VAT ID validation.
- endpoint
- https://mcp-europe-tools-production.up.railway.app/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is mcp-europe-tools live?
- Yes — it answered the hub's last check (checked 7h ago). It answered 99% of checks over the last 30 days.
- Is mcp-europe-tools free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does mcp-europe-tools have?
- 11 tools: get_spain_holidays, validate_iban, get_france_holidays, validate_tva_fr, format_number_european, validate_nif, validate_nif_es, validate_siret, ….
- Is mcp-europe-tools safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.3%· all time 99.3%
last good check
of 11 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- unknown → live
- topic
- developer tools
- used for
- get public holidays for portugal spain or france
- count working days between dates
- get eu vat rates
- validate an iban or tax id
- takes → gives
- text, data → data
- tools
- 11 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_spain_holidays reads unknown 3d ago
Returns all Spanish national public holidays for a given year as a structured list. Each holiday includes { date: 'YYYY-MM-DD', name: string, name_en: string }. Returns 9 mandatory national holidays defined by Spanish law. Use when calculating business deadlines, delivery dates, or scheduling tasks that must avoid non-working days in Spain. Does not include regional holidays that vary by autonomous community (Catalonia, Madrid, Andalusia, etc.) — only nationally mandated holidays are returned.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "year" ], "properties": { "year": { "type": "number", "description": "Calendar year as a 4-digit integer. Example: 2026" } } }arguments 13 linesvalidate_iban reads unknown 3d ago
Validates an IBAN (International Bank Account Number) using the ISO 13616 MOD-97 algorithm. Supports 18 European countries: PT, ES, FR, DE, IT, NL, BE, PL, SE, DK, FI, AT, IE, GR, HU, RO, CZ, HR. Returns { valid: boolean, country: string, iban: string } — country is extracted from the 2-letter prefix. Returns { valid: false, reason: string } for malformed input. Spaces are automatically stripped before validation. Use when validating supplier bank details for SEPA transfers, processing direct debit mandates, verifying payment data in e-commerce checkouts, or any workflow requiring a verified EU bank account number. Validates structure and checksum only — does not confirm account existence.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "iban" ], "properties": { "iban": { "type": "string", "description": "European IBAN with or without spaces. Example: 'PT50 0002 0123 1234 5678 9015 4' or 'PT50000201231234567890154'" } } }arguments 13 linesget_france_holidays reads unknown 7h ago
Returns all French national public holidays for a given year as a structured list. Each holiday includes { date: 'YYYY-MM-DD', name: string, name_en: string }. Returns 11 mandatory holidays defined by French law. Easter-dependent holidays (Easter Monday, Ascension Thursday, Whit Monday) are dynamically calculated for the requested year using the Anonymous Gregorian algorithm. Use when calculating French business deadlines, delivery dates, or scheduling tasks that must avoid non-working days in France.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "year" ], "properties": { "year": { "type": "number", "description": "Calendar year as a 4-digit integer. Example: 2026" } } }arguments 13 linesvalidate_tva_fr reads unknown 7h ago
Validates a French TVA intracom (VAT) number — the EU VAT identifier for French companies. Format is 'FR' + 2 alphanumeric key characters + 9-digit SIREN. Returns { valid: boolean, key: string, siren: string, tva: string }. When the key is numeric, validates using the official formula: key = (12 + 3 × (SIREN mod 97)) mod 97. Use when validating French supplier VAT numbers, processing cross-border EU invoices, or any intra-EU transaction requiring a verified French VAT identifier.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "tva" ], "properties": { "tva": { "type": "string", "description": "French TVA intracom number with or without spaces. Example: 'FR 40 303 265 045' or 'FR40303265045'" } } }arguments 13 linesformat_number_european reads unknown 15h ago
Formats a number using the locale conventions of a specific European country, applying the correct decimal separator and thousands separator. Returns { original: number, formatted: string, locale: string, country_code: string }. Different European countries use different conventions — Portugal and most of continental Europe use '1.234,56' (dot as thousands, comma as decimal), while Ireland uses '1,234.56'. Supports PT, ES, FR, DE, IT, NL, BE, PL, SE, DK, FI, AT, IE, GR, HU, RO. Use when displaying prices, measurements, or any numeric value to end users in a specific European country.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "number", "country_code" ], "properties": { "number": { "type": "number", "description": "The numeric value to format. Example: 1234.56" }, "decimals": { "type": "number", "description": "Number of decimal places. Defaults to 2. Use 0 for whole numbers, 2 for prices." }, "country_code": { "type": "string", "description": "Two-letter country code for the target locale. Example: 'PT', 'FR', 'DE'" } } }arguments 22 linesvalidate_nif reads unknown 15h ago
Validates a Portuguese NIF (Número de Identificação Fiscal) — the 9-digit tax identification number issued by the Portuguese Tax Authority (AT) to individuals and companies. Applies the official modulo-11 checksum algorithm to verify the check digit. Returns { valid: true, nif: string } for valid NIFs, or { valid: false, reason: string } for invalid format or failed checksum. First-digit rules are enforced: 1–3 for individuals, 5 for corporations, 6 for public entities, 7–8 for other entities, 9 for occasional taxpayers. Use when processing Portuguese invoices (faturas), onboarding suppliers, validating user registrations, or any fiscal compliance workflow. Does not query the AT database — offline format and checksum validation only.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "nif" ], "properties": { "nif": { "type": "string", "description": "9-digit Portuguese NIF, with or without spaces. Example: '123456789' or '123 456 789'" } } }arguments 13 linesvalidate_nif_es reads unknown 15h ago
Validates Spanish tax identification numbers — NIF (DNI, 8 digits + check letter, for Spanish citizens), NIE (Número de Identidad de Extranjero, starts with X/Y/Z, for foreign residents), and CIF (Código de Identificación Fiscal, letter + 7 digits + control, for companies). Automatically detects the document type. Returns { valid: boolean, type: 'NIF'|'NIE'|'CIF', id: string }. Use when processing Spanish invoices, e-commerce orders, supplier registrations, or any document requiring a verified Spanish fiscal identifier.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Spanish NIF, NIE or CIF with or without spaces. Examples: '12345678Z' (NIF), 'X1234567L' (NIE), 'B12345678' (CIF)" } } }arguments 13 linesvalidate_siret reads unknown 7h ago
Validates a French SIRET (Système d'Identification du Répertoire des Établissements) number using the official Luhn algorithm. SIRET is a 14-digit number — the first 9 digits are the SIREN (company identifier) and the last 5 digits identify the specific establishment. Returns { valid: boolean, siren: string, establishment: string, siret: string }. Use when processing French invoices (factures), validating supplier registrations, or any B2B transaction requiring a verified French business establishment identifier. Handles the La Poste special case automatically.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "siret" ], "properties": { "siret": { "type": "string", "description": "14-digit French SIRET, with or without spaces/dashes. Example: '732 829 320 00074' or '73282932000074'" } } }arguments 13 linesget_vat_rate reads unknown 3d ago
Returns all VAT (Value Added Tax) rates for a given EU country — standard, reduced, intermediate, and super-reduced rates where applicable, as numeric percentages. Returns { country, standard, reduced?, intermediate?, superreduced? } for supported countries, or { error, available } listing all valid codes if the country is not found. Supports 18 EU member states: PT, ES, FR, DE, IT, NL, BE, PL, SE, DK, FI, AT, IE, GR, HU, RO, CZ, HR. Use when calculating EU cross-border invoice tax, determining correct rate for e-commerce checkout by customer country, generating compliant VAT breakdowns, or any workflow requiring accurate and current EU VAT rates per jurisdiction.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "country_code": { "type": "string", "description": "Two-letter ISO 3166-1 alpha-2 country code. Example: 'PT' for Portugal, 'FR' for France, 'DE' for Germany" } } }arguments 13 linesget_portugal_holidays reads unknown 3d ago
Returns all Portuguese national public holidays for a given year as a structured list. Each holiday includes { date: 'YYYY-MM-DD', name: string, name_en: string }. Returns 10 mandatory national holidays defined by Portuguese law. Use when calculating business deadlines, delivery dates, payment due dates, SLA periods, or scheduling tasks that must avoid non-working days in Portugal. Does not include municipal or regional holidays (e.g. Lisbon June 13, Porto June 24) which vary by city.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "year" ], "properties": { "year": { "type": "number", "description": "Calendar year as a 4-digit integer. Example: 2026" } } }arguments 13 linescalculate_working_days reads unknown 3d ago
Counts the number of working days between two dates (inclusive), excluding Saturdays, Sundays, and all 10 Portuguese national public holidays. Returns { start_date, end_date, working_days: number }. Use when calculating Portuguese invoice payment deadlines (30/60/90 days), legal notice periods, project milestones, SLA response times, or any business process governed by Portuguese working days. Input dates must be in YYYY-MM-DD format.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "start_date", "end_date" ], "properties": { "end_date": { "type": "string", "description": "End date in YYYY-MM-DD format, inclusive. Example: '2026-01-31'" }, "start_date": { "type": "string", "description": "Start date in YYYY-MM-DD format, inclusive. Example: '2026-01-01'" } } }arguments 18 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id68431d3e30658946.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/68431d3e30658946/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/68431d3e30658946?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.