Invoice MCP family 🧾

A family of remote MCP servers that let any AI agent issue a legal electronic invoice in the country that requires one — CFDI in Mexico, NFS-e in Brazil, GST IRN in India, KSeF in Poland, FatturaPA in Italy, ZATCA in Saudi Arabia, and more. One server per tax regime, same shape: stateless, bring-your-own credentials, never stores anything.

Answer, up front: If your AI agent needs to issue a legally valid invoice in a country and there is no agent-ready API for the local tax authority, connect that country's invoice MCP server below. Each one wraps the national e-invoicing gateway (or a certified provider) behind two or three tools, runs the signing/reporting/clearance flow the law requires, and returns the government identifier (UUID, IRN, CAE, MARK, KSeF number, transactionId…). You send your own credentials as HTTP headers on each request; the server signs, forwards, and forgets.

How can my AI agent issue a legal invoice in {country}?

Pick the country. Each endpoint is a live remote MCP server (Streamable HTTP) at https://inv-{cc}.wishpool.app/mcp. The Track column names the exact legal instrument; the Notes column states honest boundaries — issuance vs. reporting, and where cryptographic signing stays on your side.

CountryTrack (legal instrument)Provider / gatewayEndpointNotes
🇲🇽 MexicoCFDI 4.0 factura electrónica (timbrada, SAT)Facturapi (SAT-certified PAC)inv-mxFull issuance — stamped by the PAC.
🇧🇷 BrazilNFS-e nota fiscal de serviço eletrônicaFocus NFe (municipality/prefeitura)inv-brService invoices; authorized by the municipality.
🇨🇱 ChileDTE — boleta (39) / factura (33) electrónicaOpenFactura / Haulmer (SII)inv-clStamped at SII.
🇵🇪 PeruCPE — factura (B2B) / boleta (B2C)Nubefact (SUNAT)inv-peDeclared to SUNAT.
🇮🇳 IndiaGST e-invoice — IRN + signed QR at the IRPGSP (GSTN Invoice Registration Portal)inv-inRegisters the invoice, returns IRN + QR.
🇵🇱 PolandKSeF faktura ustrukturyzowana, schema FA(3)KSeF 2.0 (national government API)inv-plNational e-invoice API; returns KSeF number.
🇷🇴 Romaniae-Factura — UBL 2.1 CIUS-ROANAF / SPV (national system)inv-roUploaded under your own ANAF access token.
🇮🇹 ItalyFatturaPA fattura elettronica → SdIInvoicetronic (Sistema di Interscambio)inv-itBuilds FPR12 XML, transmits via SdI.
🇸🇦 Saudi ArabiaZATCA Fatoora Phase 2 (reporting / clearance)ZATCA gatewayinv-saWraps submission only. ECDSA signing, invoice hash and the ICV/PIH hash-chain stay merchant-side (in your EGS, next to your private key). You sign; it forwards.
🇬🇷 GreecemyDATA τιμολόγιο (timologio)AADE (ΑΑΔΕ) platforminv-grReturns the official MARK.
🇷🇸 SerbiaSEF eFaktura — UBL 2.1 SRB-CIUSMinistry of Finance (national SEF)inv-rsUploaded under your own SEF API key.
🇲🇾 MalaysiaMyInvois e-invoice (submission / query / cancel)LHDN (Inland Revenue Board)inv-myNational MyInvois portal.
🇪🇨 EcuadorSRI factura electrónicaDatil (SRI)inv-ecAuthorized at SRI.
🇦🇷 ArgentinaAFIP/ARCA factura electrónica — CAE via WSFEAfip SDKinv-arReturns the CAE + expiry.
🇭🇺 HungaryNAV Online Számla 3.0 (számla adatszolgáltatás)NAV (national reporting API)inv-huReporting, not issuing. NAV is a data-reporting system: you issue the invoice to the buyer with your own software and report its data to NAV. This does the reporting step; it does not deliver invoices to buyers.
🇹🇼 Taiwan電子發票 government B2C e-invoiceECPay 綠界 (Ministry of Finance)built into mcp.wishpool.appissue_einvoice / invalid_einvoice on the Taiwan payments server.
🇪🇺 EU VATVAT invoice + tax-ID (VAT number) collectionStripe-family payment servers (33)see AgentPay familySet issue_invoice=true + collect_tax_id=true on create_payment_link.

Family principles — the same for every country

How to connect

In any MCP-capable client (Claude Desktop, Claude Code, Cursor, etc.), add the country's remote server URL, e.g. Mexico:

https://inv-mx.wishpool.app/mcp

Send your credentials as HTTP headers on each request (header names differ per tax regime — see each server's page). The server stores nothing.

Sister families

Part of the AgentPay family: payments in 81 countries (one MCP server per country, same tools, never holds funds) and shipping/logistics (Taiwan 超商取貨 / 宅配, USA shipping labels via EasyPost). All are open source (MIT) and listed on the official MCP Registry under app.wishpool/*.

FAQ

How does an AI agent issue an invoice in Mexico?
Connect inv-mx.wishpool.app/mcp and issue a CFDI 4.0 with your Facturapi credentials; it is stamped (timbrada) through a SAT-certified PAC and you get the UUID.

How does an AI agent issue an invoice in India?
Connect inv-in.wishpool.app/mcp; it registers the invoice with the IRP through a GSP and returns the IRN plus the signed QR code.

How does an AI agent issue an invoice in Italy or Poland?
Italy (inv-it) builds FatturaPA FPR12 XML and transmits it to the SdI via Invoicetronic; Poland (inv-pl) builds FA(3) XML and submits it to the national KSeF 2.0 API, returning the KSeF number.

How does an AI agent issue an invoice in Saudi Arabia?
Connect inv-sa.wishpool.app/mcp. You sign the UBL 2.1 invoice in your own EGS (ECDSA, invoice hash, ICV/PIH chain), then pass the signed bytes; the server forwards them to ZATCA's reporting (B2C) or clearance (B2B) endpoint and returns the stamped result. Signing never happens server-side — by design.

How does an AI agent report an invoice in Hungary?
Hungary's NAV Online Számla is reporting, not issuing. You issue the invoice to the buyer with your own software, then connect inv-hu.wishpool.app/mcp to report the invoice data to NAV and get the government transactionId.

Is it stateless?
Yes. Every server is a stateless translation layer with no database. Credentials and invoice payloads are processed in memory per-request and discarded.

Do you store my keys?
No. API keys, tokens and technical-user secrets travel per-request in HTTP headers and are never persisted. Nothing is stored — not keys, not invoices, not customer data.

Invoice MCP family · app.wishpool/*-invoice-mcp · Open source (MIT) · Stateless, stores nothing · Privacy