Attestwire
REMOTE · API.ATTESTWIRE.COM · 2 COMPONENTS · SCANNED AUG 20
EN 16931: validate invoice data or a UBL/CII file, emit UBL or CII XML. XRechnung, Peppol. Not PDF.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3668 tokens (~407/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.attestwire.com
claude mcp add --transport http com-attestwire-en16931 https://api.attestwire.com/mcp
[mcp_servers.com-attestwire-en16931] url = "https://api.attestwire.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-attestwire-en16931": {
"type": "remote",
"url": "https://api.attestwire.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-attestwire-en16931 --url https://api.attestwire.com/mcp --transport streamable-http
mcp_servers:
com-attestwire-en16931:
url: "https://api.attestwire.com/mcp" {
"mcpServers": {
"com-attestwire-en16931": {
"type": "http",
"url": "https://api.attestwire.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Aug 26 +1
- Stability: unverified → 0.03 ▲ functional
- 16 Aug 26 63
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Aug 2026 · Probed https://api.attestwire.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=attestwire.com | CN=WE1,O=Google Trust Services,C=US | 9 Aug 2026 | 7 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 5b9780c94106c8e813777aa6f4d796c3 |
| SANs: attestwire.com, api.attestwire.com, *.api.attestwire.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of api.attestwire.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| attestwire.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.attestwire.com/mcp | Verified | 200 | |
| http (plaintext) | http://api.attestwire.com/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
check_french_readiness Look up a French company for e-invoicing readiness ~133
Look up a French company by SIREN, SIRET or name in INSEE SIRENE open data, for the 2026-2027 French e-invoicing mandate. Confirms the company exists and is active. It CANNOT confirm whether the company has registered with an approved platform — that lives only in the CAPTCHA-protected DGFiP annuaire, which has no open API — and the result says so. FREE and needs no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | A 9-digit SIREN, a 14-digit SIRET, or a company name. |
No output schema declared.
No examples provided.
check_vies_status Check VIES (EU VAT validation) availability ~128
Current availability of VIES, the European Commission service that validates EU VAT numbers. Per-member-state status, latency and 24h/7d uptime, from a monitor that polls all member states every 5 minutes. Use this when EU VAT number validation is failing, to tell "their VAT number is wrong" apart from "that member state's VIES endpoint is down". FREE and needs no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Optional ISO 3166-1 alpha-2 member state code (DE, FR, IT, ES…). Omit for every monitored member state. |
No output schema declared.
No examples provided.
explain_rule Explain an e-invoicing rule id ~182
Explain one EN 16931 / XRechnung / Peppol BIS rule in plain English: what it requires, why, the business term it constrains, a concrete fix and an example. 270 rules explained — BR-*, BR-CO-*, BR-<category>-*, BR-DE-* and PEPPOL-EN16931-*. That is most, not all, of what the validator checks: a few arithmetic/decimal rules have no write-up yet, and for those it says so and links the rule reference rather than pretending the rule does not exist. FREE and needs no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| rule_id | string | yes | The rule id, e.g. "BR-DE-15", "BR-CO-15", "BR-S-02", "PEPPOL-EN16931-R010". Case and separators are forgiving. |
No output schema declared.
No examples provided.
generate_invoice Generate compliant invoice XML ~560
Generate compliant e-invoice XML from a JSON invoice, in either EN 16931 syntax. Profiles: en16931, xrechnung-ubl, peppol-bis-3, xrechnung-cii, facturx-en16931 — the profile chooses the syntax, and xrechnung-cii and facturx-en16931 come back as CII. The invoice is validated first and generation is refused if it fails, because emitting XML for an invalid invoice produces a file that passes nothing. CREDIT NOTES GENERATE TOO, from the same object: invoiceTypeCode "381" emits a UBL CreditNote document under the UBL profiles and ram:TypeCode 381 under the CII ones, since CII has one document for both. XML ONLY, NEVER A PDF: Factur-X and ZUGFeRD files are CII XML inside a PDF/A-3 container, and this build writes no container, so a facturx-en16931 result is the payload and not a Factur-X document — do not tell the user otherwise. On xrechnung-cii the generator's own FIXTURE documents were run through the official KoSIT validator on release and accepted; on facturx-en16931 they were not, because that profile's BT-24 matches no XRechnung scenario for the validator to judge. Neither is a verdict on the document you just generated — nothing is sent to KoSIT at call time. REQUIRES AN API KEY and costs 1 document.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice | object | yes | The invoice to generate XML for, as an InvoiceInput object. Required: profile (one of en16931, xrechnung-ubl, xrechnung-cii, facturx-en16931, peppol-bis-3), invoiceNumber, issueDate ("YYYY-MM-DD"), c… |
No output schema declared.
No examples provided.
get_upgrade_link Get a checkout link to upgrade a key ~183
Return a hosted checkout URL for upgrading an Attestwire key to a paid plan (starter: 2,500 documents/month at $49; scale: 25,000 at $199). THIS DOES NOT BUY ANYTHING. It creates a checkout link and charges nothing; a human must open the link, enter their own card and confirm the recurring charge on the payment provider's page. You cannot complete the purchase and must not report it as completed. Use this when a key has hit its quota or the user asks to upgrade. Costs no documents.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | – | The Attestwire API key to upgrade (aw_live_...). Optional if this server is configured with an Authorization header, which is read instead. |
| plan | string | yes | Which paid plan to price up: "starter" ($49/mo) or "scale" ($199/mo). |
No output schema declared.
No examples provided.
issue_api_key Issue a free Attestwire API key ~108
Mint a free Attestwire API key (100 documents/month, no signup flow, no card) so validate_invoice and generate_invoice can be used. THE KEY IS RETURNED ONCE AND CANNOT BE RECOVERED — only its SHA-256 hash is stored — so show it to the user verbatim and tell them to save it before doing anything else. One key per email address.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | The address to issue the key to. One free key per address. |
No output schema declared.
No examples provided.
list_approved_platforms List DGFiP-approved French e-invoicing platforms ~90
The official list of Plateformes Agréées (PA, formerly PDP) that DGFiP has approved to transmit invoices under the French e-invoicing mandate, from the published open dataset. Optionally filtered by name or SIREN. FREE and needs no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Optional filter — platform name or SIREN. Omit for the full list. |
No output schema declared.
No examples provided.
validate_invoice Validate an EN 16931 e-invoice ~375
Validate an invoice against EN 16931 and its national CIUS rule sets (XRechnung UBL/CII, Peppol BIS 3.0, Factur-X). Returns every failure as a "teaching error": the official rule id, the business term (BT-/BG-) it constrains, what the regulation actually requires, and a concrete fix. REQUIRES AN API KEY and costs 1 document against the monthly quota — call issue_api_key first if you do not have one. For explaining a rule id you already have, use explain_rule instead: it is free.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice | object | yes | The invoice to validate, as an InvoiceInput object. Required: profile (one of en16931, xrechnung-ubl, xrechnung-cii, facturx-en16931, peppol-bis-3), invoiceNumber, issueDate ("YYYY-MM-DD"), currency… |
No output schema declared.
No examples provided.
validate_invoice_xml Validate an existing invoice XML file (UBL or CII) ~397
Validate an e-invoice FILE the user already has, in either EN 16931 syntax and of either document type. Reads a UBL 2.1 Invoice, a UBL 2.1 CreditNote or a UN/CEFACT CII CrossIndustryInvoice (which carries invoices and credit notes alike) into the invoice model and runs EN 16931 plus the CIUS rules (XRechnung UBL and CII, Peppol BIS 3) over it, returning the same teaching errors as validate_invoice, plus which syntax it read, the document's BT-24/BT-23 and a list of everything in the file that did not reach the model. Use it when someone says "this invoice was rejected, why?" and hands you a file. Send the file as-is; do not work out the syntax or the document type first, because the tool decides both from the root element and reports what it found in `syntax` and in the invoice model's BT-3. XML ONLY, NOT A PDF: Factur-X and ZUGFeRD are CII XML inside a PDF/A-3 container, and this tool cannot open the container — extract the XML and send that. A PDF is refused with an explanation; do not retry it. A credit note is NOT refused — send it exactly like an invoice. It is a pre-flight, not an authority: a file that passes here can still be rejected by KoSIT or by a receiving platform. REQUIRES AN API KEY and costs 1 document.
| Name | Type | Req | Description |
|---|---|---|---|
| xml | string | yes | The complete document, as text — the file contents, not a path. Its root element must be <Invoice> in the UBL Invoice-2 namespace, <CreditNote> in the UBL CreditNote-2 namespace, or <CrossIndustryInv… |
No output schema declared.
No examples provided.