EU VAT and EORI checks, sanctions screening, company and LEI lookup, ECB rates. Free, no key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Business days: is this date a working day in a country (or region) or on a market (TARGET2, NYSE, LSE…), the holiday's name, next and previous business day, date + N business days, business days between two dates, a year's holidays. Offline, python-holidays.
YYYY-MM-DD; default today (UTC)
YYYY-MM-DD: count business days to it
instead of country: XECB (TARGET2), XNYS, XLON, …
region, e.g. BY
ISO 3166 alpha-2
holiday names, e.g. en_US
Business days: is this date a working day in a country (or region) or on a market (TARGET2, NYSE, LSE…), the holiday's name, next and previous business day, date + N business days, business days between two dates, a year's holidays. Offline, python-holidays.
| Argument | Type | Description |
|---|---|---|
| date | string | YYYY-MM-DD; default today (UTC) |
| until | string | YYYY-MM-DD: count business days to it |
| market | string | instead of country: XECB (TARGET2), XNYS, XLON, … |
| subdiv | string | region, e.g. BY |
| country | string | ISO 3166 alpha-2 |
| language | string | holiday names, e.g. en_US |
| list_year | integer | |
| add_business_days | integer |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD; default today (UTC)"
},
"until": {
"type": "string",
"description": "YYYY-MM-DD: count business days to it"
},
"market": {
"type": "string",
"maxLength": 6,
"description": "instead of country: XECB (TARGET2), XNYS, XLON, …"
},
"subdiv": {
"type": "string",
"maxLength": 10,
"description": "region, e.g. BY"
},
"country": {
"type": "string",
"default": "DE",
"maxLength": 2,
"description": "ISO 3166 alpha-2"
},
"language": {
"type": "string",
"maxLength": 8,
"description": "holiday names, e.g. en_US"
},
"list_year": {
"type": "integer",
"maximum": 2100,
"minimum": 1950
},
"add_business_days": {
"type": "integer",
"maximum": 1000,
"minimum": -1000
}
}
}Is this company real and alive? Its national register by number or name: Norway (Brønnøysund), France (SIRENE/RNE), Czech Republic (ARES), Finland (PRH). Name, status, legal form, founding date, address, VAT number where published, plus the register's own fields.
| Argument | Type | Description |
|---|---|---|
| name | string | or a name to search |
| limit | integer | |
| number | string | NO organisation number, FR SIREN or SIRET, CZ IČO, FI Business ID, GB company number |
| country* | string |
{
"type": "object",
"anyOf": [
{
"required": [
"number"
]
},
{
"required": [
"name"
]
}
],
"required": [
"country"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "or a name to search"
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"number": {
"type": "string",
"default": "923609016",
"maxLength": 20,
"description": "NO organisation number, FR SIREN or SIRET, CZ IČO, FI Business ID, GB company number"
},
"country": {
"enum": [
"NO",
"FR",
"CZ",
"FI"
],
"type": "string",
"default": "NO"
}
}
}Who registered this domain and when? RDAP from the TLD's own registry (found through IANA's bootstrap): created, updated, expires, age in days, registrar, status, nameservers, DNSSEC. Or registered: false.
| Argument | Type | Description |
|---|---|---|
| domain* | string | a domain name; a URL or subdomain is reduced to the registered name |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"default": "example.com",
"maxLength": 253,
"description": "a domain name; a URL or subdomain is reduced to the registered name"
}
}
}Is this EORI number valid for EU customs? The European Commission's EOS service, up to 10 numbers per call; name and address where the operator consented to publication.
| Argument | Type | Description |
|---|---|---|
| eori | string | |
| eoris | array | or up to 10 numbers at once |
{
"type": "object",
"anyOf": [
{
"required": [
"eori"
]
},
{
"required": [
"eoris"
]
}
],
"properties": {
"eori": {
"type": "string",
"default": "CZ00177041",
"maxLength": 20
},
"eoris": {
"type": "array",
"items": {
"type": "string",
"maxLength": 20
},
"maxItems": 10,
"description": "or up to 10 numbers at once"
}
}
}ECB euro reference rate for any pair on any date since 1999 (the latest ECB day on or before it, named), cross rates through the euro in Decimal, optional amount rounded to the currency's minor units. Reference rate, not a dealing rate.
| Argument | Type | Description |
|---|---|---|
| base* | string | |
| date | string | YYYY-MM-DD; default the latest ECB day |
| quote* | string | |
| amount | number | string | optional amount in base to convert |
{
"type": "object",
"required": [
"base",
"quote"
],
"properties": {
"base": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3
},
"date": {
"type": "string",
"description": "YYYY-MM-DD; default the latest ECB day"
},
"quote": {
"type": "string",
"default": "EUR",
"maxLength": 3,
"minLength": 3
},
"amount": {
"type": [
"number",
"string"
],
"description": "optional amount in base to convert"
}
}
}Who is this legal entity? GLEIF LEI record by LEI (check digits verified locally) or by name (ranked candidates): legal name, jurisdiction, legal form, status, addresses, registration and renewal, direct and ultimate parents. CC0.
| Argument | Type | Description |
|---|---|---|
| lei | string | 20-character LEI |
| name | string | legal name to search |
| limit | integer | |
| parents | boolean |
{
"type": "object",
"anyOf": [
{
"required": [
"lei"
]
},
{
"required": [
"name"
]
}
],
"properties": {
"lei": {
"type": "string",
"maxLength": 24,
"description": "20-character LEI"
},
"name": {
"type": "string",
"maxLength": 120,
"description": "legal name to search"
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"parents": {
"type": "boolean",
"default": true
}
}
}Is this wallet address or name on a public sanctions list? OFAC SDN (incl. ~500 digital-currency addresses), EU and UK lists — UN designations through them, each hit with its UN number — with each list's date and SHA-256. A lookup, not a compliance determination.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| name | string | a person or entity |
| limit | integer | |
| lists | array | default all; UN = the UK and EU entries with a UN number |
| address | string | a wallet address (EVM, Bitcoin, Tron, …) |
| threshold | number |
{
"type": "object",
"anyOf": [
{
"required": [
"address"
]
},
{
"required": [
"name"
]
}
],
"properties": {
"kind": {
"enum": [
"individual",
"entity",
"vessel",
"aircraft"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 200,
"description": "a person or entity"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"lists": {
"type": "array",
"items": {
"enum": [
"OFAC-SDN",
"EU",
"UK",
"UN"
],
"type": "string"
},
"description": "default all; UN = the UK and EU entries with a UN number"
},
"address": {
"type": "string",
"maxLength": 128,
"description": "a wallet address (EVM, Bitcoin, Tron, …)"
},
"threshold": {
"type": "number",
"default": 0.85,
"maximum": 1,
"minimum": 0.7
}
}
}Is this EU VAT number valid today? Asks VIES (the member state's registry): valid, registered name and address, check time. Pass requester_vat (your own EU VAT number) to get VIES's consultation number — official proof of the check in your name.
| Argument | Type | Description |
|---|---|---|
| vat* | string | EU VAT number with its country prefix (DE…, FR…, EL… for Greece) |
| country | string | optional prefix, if vat carries only the number |
| requester_vat | string | YOUR OWN EU VAT number: VIES then issues a consultation number proving the check in your name |
{
"type": "object",
"required": [
"vat"
],
"properties": {
"vat": {
"type": "string",
"default": "NL004495445B01",
"maxLength": 20,
"description": "EU VAT number with its country prefix (DE…, FR…, EL… for Greece)"
},
"country": {
"type": "string",
"maxLength": 2,
"description": "optional prefix, if vat carries only the number"
},
"requester_vat": {
"type": "string",
"maxLength": 20,
"description": "YOUR OWN EU VAT number: VIES then issues a consultation number proving the check in your name"
}
}
}