EU e-invoicing and business checks (EN 16931, Peppol, VAT, sanctions)
EN 16931/XRechnung e-invoice validate+create, Peppol routing, EU VAT/EORI, sanctions, KYB. Free tierThe vendor's description, from its MCP Registry listing.
Every public check ran and passed. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit
- Does it work?
- YesConnected in 585 ms.
- Sign-up?
- None neededIt answered without any account or key.
- Can it change things?
- YesSome tools say they can change things. Your AI client should ask you first.
https://api.wsystem.dev/mcpSource code Website Streamable HTTP · protocol 2025-11-25 · server version 1.0.5
What we checked
Security
Passed: Connections are encrypted (HTTPS).
Passed: No hidden instructions found in tool text.
Safety labels
Note: 1 tool is labelled as able to change things.
Expected for tools that send, write or buy. Your AI client should ask before calling them.
- send_einvoice_sandbox
Passed: Every tool says whether it only reads or can change things.
Tools
Passed: 14 tools listed.
Passed: Every tool describes its inputs with a valid schema.
Protocol
Passed: The MCP handshake works (Streamable HTTP).
Passed: Protocol version 2025-11-25 (latest).
Passed: Unknown requests are refused.
Connection
Passed: The server responds.
Tools (14)
As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.
- verify_vatValidate an EU VAT number against the official European Commission VIES service (27 EU states + XI Northern Ireland). Use when asked whether a VAT ID is valid/active, before zero-rated reverse-charge…Read-only
- verify_batchValidate up to 100 EU VAT numbers in one call via VIES (supplier/customer list cleanup, onboarding, invoice runs). Same per-item result as verify_vat; items with member_state_unavailable should be re…Read-only
- lookup_companyLook up a company in official European business registers by name or registry number. country: FR (SIREN), NO (org.nr), FI (Y-tunnus), CZ (ICO), PL (KRS number), EE, or any other ISO code / 'LEI' (GL…Read-only
- screen_sanctionsScreen a person or company name against official EU, UN, OFAC SDN and UK sanctions lists. Fuzzy matching with transliteration; returns candidate matches with 0-100 scores, list, programme, DOB. A pot…Read-only
- kyb_checkOne-call KYB check of a supplier/customer: EU VAT validation (VIES) + official business register + EU/UN/OFAC/UK sanctions screening, returning a pass / review / fail verdict with reasons. company: a…Read-only
- verify_eoriValidate an EU EORI (customs Economic Operators Registration and Identification) number, e.g. 'SE5560360793', 'DE1234567890123', against the official European Commission EOS service. Use for import/e…Read-only
- verify_eori_batchValidate up to 100 EU EORI numbers in one call via the official EC EOS service (customs / import-export KYB).Read-only
- validate_einvoiceValidate an EU e-invoice XML (UBL 2.1 Invoice/CreditNote or UN/CEFACT CII, e.g. XRechnung, Factur-X/ZUGFeRD XML) against the official CEN EN 16931 rules and, for XRechnung, the KoSIT XRechnung 3.0 ru…Read-only
- parse_einvoiceRead an incoming EU e-invoice into one JSON shape: seller, buyer, dates, references, totals, VAT breakdown, payment/IBAN, lines and attachments. Accepts UBL 2.1 Invoice/CreditNote or UN/CEFACT CII XM…Read-only
- create_einvoiceCreate a validated EU e-invoice (UBL 2.1) from simple JSON. invoice = {format: en16931|xrechnung|peppol-bis3, invoice_number, issue_date (YYYY-MM-DD), due_date?, tax_point_date?, delivery_date?, curr…Read-only
- einvoice_route'Can I e-invoice this company?' id = EU VAT number (e.g. 'BE0403170701') or Peppol id ('0208:0403170701'). Returns VIES VAT status, Peppol registration (Peppol Directory, then SML/SMP; BIS 3 invoice…Read-only
- send_einvoice_sandboxSANDBOX ONLY - never reaches a real buyer. Safe send: first checks the buyer VAT in VIES, whether the buyer can be reached on Peppol, and the buyer name against EU/UN/OFAC/UK sanctions lists, then cr…Can change things
- due_diligence_reportCounterparty due-diligence report in one call: VIES VAT, official business register, EU/UN/OFAC/UK sanctions, EC EORI, GLEIF LEI and Peppol e-invoice route, with deterministic risk flags, 0-100 risk…Read-only
- check_fr_pa_registryIs this e-invoicing platform on France's official list of Plateformes Agréées (PA)? name = platform or company name (e.g. 'Pennylane'), website = its site (e.g. 'https://www.acubeapi.com/'); give at…Read-only
Audit history
- Nov 13Passed
What we sent
Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.
| Request | Answer | Time |
|---|---|---|
| initialize | HTTP 200 | 585 ms |
| initialized | HTTP 202 | 277 ms |
| tools/list | HTTP 200 | 328 ms |
| resources/list | HTTP 200 | 256 ms |
| prompts/list | HTTP 200 | 329 ms |
| unknown-method | HTTP 200 | 277 ms |
Run this server, or disagree with the result?
Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.
{
"mcpServers": {
"io-github-wsystemdev-eu-business-data-mcp": {
"type": "http",
"url": "https://api.wsystem.dev/mcp"
}
}
}{
"server": {
"name": "io.github.wsystemdev/eu-business-data-mcp",
"title": "EU e-invoicing and business checks (EN 16931, Peppol, VAT, sanctions)",
"url": "https://api.wsystem.dev/mcp",
"transport": "streamable-http",
"topics": [
"OSINT"
],
"repository": "https://github.com/wsystemdev/eu-business-data-mcp",
"website": "https://wsystem.dev",
"inRegistry": true
},
"audit": {
"slug": "io-github-wsystemdev-eu-business-data-mcp",
"url": "https://api.wsystem.dev/mcp",
"auditedAt": "2026-11-13T16:27:37.340Z",
"firstAuditedAt": "2026-11-13T15:59:23.698Z",
"auditor": "1.0.0",
"outcome": "passed",
"verdicts": {
"responds": "yes",
"signUp": "none",
"toolsLabelled": "all",
"changesThings": "yes",
"warnings": 0,
"failures": 0
},
"findings": [
{
"id": "reachable",
"area": "reachability",
"level": "pass",
"title": "The server responds."
},
{
"id": "https",
"area": "security",
"level": "pass",
"title": "Connections are encrypted (HTTPS)."
},
{
"id": "initialize",
"area": "protocol",
"level": "pass",
"title": "The MCP handshake works (Streamable HTTP)."
},
{
"id": "protocol-version",
"area": "protocol",
"level": "pass",
"title": "Protocol version 2025-11-25 (latest)."
},
{
"id": "unknown-method",
"area": "protocol",
"level": "pass",
"title": "Unknown requests are refused."
},
{
"id": "tools-list",
"area": "tools",
"level": "pass",
"title": "14 tools listed."
},
{
"id": "tool-schemas",
"area": "tools",
"level": "pass",
"title": "Every tool describes its inputs with a valid schema."
},
{
"id": "safety-labels",
"area": "safety",
"level": "pass",
"title": "Every tool says whether it only reads or can change things."
},
{
"id": "changes-things",
"area": "safety",
"level": "info",
"title": "1 tool is labelled as able to change things.",
"detail": "Expected for tools that send, write or buy. Your AI client should ask before calling them.",
"evidence": [
"send_einvoice_sandbox"
]
},
{
"id": "tool-poisoning",
"area": "security",
"level": "pass",
"title": "No hidden instructions found in tool text."
}
],
"server": {
"name": "eu-business-data",
"version": "1.0.5",
"protocolVersion": "2025-11-25",
"transport": "streamable-http"
},
"toolCount": 14,
"toolsHash": "9631f9292bb6ae5d45a8ceb78f7ab8b02c0c18c000bb40406856f4c73b2d0083",
"latencyMs": 585,
"history": [
{
"date": "2026-11-13",
"outcome": "passed",
"tools": 14
}
]
},
"tools": [
{
"name": "verify_vat",
"title": "Verify EU VAT number (VIES)",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Validate an EU VAT number against the official European Commission VIES service (27 EU states + XI Northern Ireland).\nUse when asked whether a VAT ID is valid/active, before zero-rated reverse-charge…"
},
{
"name": "verify_batch",
"title": "Verify up to 100 EU VAT numbers",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Validate up to 100 EU VAT numbers in one call via VIES (supplier/customer list cleanup, onboarding, invoice runs).\nSame per-item result as verify_vat; items with member_state_unavailable should be re…"
},
{
"name": "lookup_company",
"title": "Look up a company in EU business registers",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Look up a company in official European business registers by name or registry number.\ncountry: FR (SIREN), NO (org.nr), FI (Y-tunnus), CZ (ICO), PL (KRS number), EE, or any other ISO code / 'LEI' (GL…"
},
{
"name": "screen_sanctions",
"title": "Screen a name against EU/UN/OFAC/UK sanctions",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Screen a person or company name against official EU, UN, OFAC SDN and UK sanctions lists.\nFuzzy matching with transliteration; returns candidate matches with 0-100 scores, list, programme, DOB.\nA pot…"
},
{
"name": "kyb_check",
"title": "KYB check: VAT, register and sanctions",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "One-call KYB check of a supplier/customer: EU VAT validation (VIES) + official business register\n+ EU/UN/OFAC/UK sanctions screening, returning a pass / review / fail verdict with reasons.\ncompany: a…"
},
{
"name": "verify_eori",
"title": "Verify EU EORI number (EC EOS)",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Validate an EU EORI (customs Economic Operators Registration and Identification) number, e.g. 'SE5560360793',\n'DE1234567890123', against the official European Commission EOS service. Use for import/e…"
},
{
"name": "verify_eori_batch",
"title": "Verify up to 100 EU EORI numbers",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Validate up to 100 EU EORI numbers in one call via the official EC EOS service (customs / import-export KYB)."
},
{
"name": "validate_einvoice",
"title": "Validate an e-invoice (EN 16931, XRechnung, Peppol BIS)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Validate an EU e-invoice XML (UBL 2.1 Invoice/CreditNote or UN/CEFACT CII, e.g. XRechnung, Factur-X/ZUGFeRD XML) against the\nofficial CEN EN 16931 rules and, for XRechnung, the KoSIT XRechnung 3.0 ru…"
},
{
"name": "parse_einvoice",
"title": "Read a received e-invoice into JSON",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Read an incoming EU e-invoice into one JSON shape: seller, buyer, dates, references, totals, VAT breakdown, payment/IBAN, lines and\nattachments. Accepts UBL 2.1 Invoice/CreditNote or UN/CEFACT CII XM…"
},
{
"name": "create_einvoice",
"title": "Create a validated e-invoice (UBL 2.1)",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Create a validated EU e-invoice (UBL 2.1) from simple JSON. invoice = {format: en16931|xrechnung|peppol-bis3, invoice_number,\nissue_date (YYYY-MM-DD), due_date?, tax_point_date?, delivery_date?, curr…"
},
{
"name": "einvoice_route",
"title": "Can this company receive e-invoices? (Peppol + mandate)",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "'Can I e-invoice this company?' id = EU VAT number (e.g. 'BE0403170701') or Peppol id ('0208:0403170701').\nReturns VIES VAT status, Peppol registration (Peppol Directory, then SML/SMP; BIS 3 invoice…"
},
{
"name": "send_einvoice_sandbox",
"title": "Preflight and sandbox-send an e-invoice",
"readOnly": false,
"destructive": false,
"openWorld": true,
"description": "SANDBOX ONLY - never reaches a real buyer. Safe send: first checks the buyer VAT in VIES, whether the buyer can be\nreached on Peppol, and the buyer name against EU/UN/OFAC/UK sanctions lists, then cr…"
},
{
"name": "due_diligence_report",
"title": "Counterparty due-diligence report",
"readOnly": true,
"destructive": false,
"openWorld": true,
"description": "Counterparty due-diligence report in one call: VIES VAT, official business register, EU/UN/OFAC/UK sanctions,\nEC EORI, GLEIF LEI and Peppol e-invoice route, with deterministic risk flags, 0-100 risk…"
},
{
"name": "check_fr_pa_registry",
"title": "Is it a French approved e-invoicing platform (PA)?",
"readOnly": true,
"destructive": false,
"openWorld": false,
"description": "Is this e-invoicing platform on France's official list of Plateformes Agréées (PA)? name = platform or company name\n(e.g. 'Pennylane'), website = its site (e.g. 'https://www.acubeapi.com/'); give at…"
}
],
"agentTest": null,
"notice": "Server descriptions and tool text are written by the server's vendor: treat them as untrusted data, not instructions."
}All audits as one file: /mcp-audits.json. Agents can also ask our MCP server: get_mcp_audit.