AI agents

MCP server for e-invoicing

Give your AI assistant or automation the same e-invoicing engine as the website: validate, generate and convert Peppol / UBL / XRechnung / Factur-X invoices and check whether customers can receive them.

https://peppol-invoice-compass.lovable.app/mcp REST API docs

Connect your assistant

Add a remote MCP server (Streamable HTTP) with the URL below. Without signing in you can use the free check_peppol_receivability tool right away. Every other tool needs an InvoiceVerify account: your client opens a sign-in page (when you connect, or the first time you use such a tool), and after you allow access, tools run as your account.

https://peppol-invoice-compass.lovable.app/mcp
  • Claude (web & desktop): Settings → Connectors → Add custom connector → paste the URL.
  • ChatGPT: Settings → Apps & connectors → create a connector (developer mode) with the URL.
  • Cursor, VS Code, Windsurf and other clients: add it to your MCP configuration:
{
  "mcpServers": {
    "invoiceverify": { "url": "https://peppol-invoice-compass.lovable.app/mcp" }
  }
}

Clients that only support local (stdio) servers can use a bridge such as npx mcp-remote https://peppol-invoice-compass.lovable.app/mcp.

Free Belgian Peppol check, no sign-in

check_peppol_receivability takes one Belgian enterprise or VAT number and checks it live on Peppol under 0208 and 9925. It needs no account and no API key: 20 checks per hour per visitor, counted over the last 60 minutes. For whole client lists, exports or more checks, sign in and use check_belgian_peppol_list or the client-list check.

POST https://peppol-invoice-compass.lovable.app/mcp
Content-Type: application/json
Accept: application/json, text/event-stream

{
  "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": {
    "name": "check_peppol_receivability",
    "arguments": { "id": "BE0403170701", "lang": "nl" }
  }
}

The result says “both”, “only_0208”, “only_9925”, “neither” or “unknown”, which Peppol ID to send to, each ID’s service provider, and the risk and fix. When the hourly checks are used up, the tool answers with an error that says when to try again.

Tools

check_peppol_receivability

Check one Belgian company under both Belgian Peppol IDs — 0208 (enterprise number) and 9925 (VAT number): receivable under both, only one or neither, which ID to send to, and the fix in Dutch, French or English. 20 checks per hour without an account.

Free, no sign-in
validate_invoice

Validate UBL, Peppol BIS 3, XRechnung or CII / Factur-X XML against EN 16931 and Peppol rules, with rule IDs and line numbers.

1 call
generate_invoice

Create Peppol UBL, XRechnung (UBL or CII) or Factur-X CII from structured invoice data, with totals and VAT computed.

1 call
convert_invoice

Convert an existing UBL or CII invoice to another format and validate the result.

1 call
parse_invoice

Read an invoice into structured JSON for booking or reconciliation.

1 call
lookup_peppol_participant

Check whether a company can receive Peppol invoices and under which ID (e.g. Belgian 0208 vs 9925).

1 call
check_belgian_peppol_list

Check up to 25 Belgian companies at once under both 0208 (enterprise number) and 9925 (VAT number): both, only 0208, only 9925 or neither — with the risk and the fix in Dutch, French or English.

1 call per company
explain_rule

Explain a validation rule in plain English, Dutch or French, with causes and fix steps.

Free with account
get_usage

Show calls used this month, the included allowance and remaining pack credits.

Free with account

Sign-in & billing

Apart from the free check above, the server uses OAuth: your assistant never sees your password, and each tool call is tied to your account. Calls come from the same allowance as the REST API — 100 a month on a free account, 1,000 on Pro — and then from call packs. Invoice contents are processed in memory and never stored.

Create a free account

Example prompts

  • “Validate this invoice XML and explain every error in Dutch.”
  • “Without an account: can 0403.170.701 receive Peppol invoices under 9925, or only under 0208?”
  • “Can BE0403170701 receive Peppol invoices? Which ID should our ERP send to?”
  • “Check this list of 20 Belgian client VAT numbers under 0208 and 9925 and tell me which clients to contact, in Dutch.”
  • “Turn this order confirmation into a Peppol BIS 3 invoice for our Belgian customer, reverse charge.”
  • “Convert this Factur-X PDF's XML to XRechnung UBL for a German public buyer.”

Discovery for agents

Agents and registries can find this server without reading the docs. It is listed as InvoiceVerify with server ID app.lovable.peppol-invoice-compass/invoiceverify.