getpeppr
開発者向けのPeppol電子インボイスAPIを、ホスト型MCPサーバー(https://api.getpeppr.dev/mcp)として提供。アカウントなしで、Peppol統合の計画、ドキュメントの検索、テスト請求書のPeppolルールへの準拠確認、Peppol受信者の検索が可能。無料アカウントでは、サンドボックスのテスト請求書を送信し、その配信状況を追跡可能。サンドボックスのみ。
ホスト型 MCP サーバー
npx add-mcp 'https://api.getpeppr.dev/mcp'Claude Code、Codex、Cursor などにインストールできます
ドキュメント
MCP Server
Let your AI assistant look up Peppol participants, validate invoices, plan your integration and send sandbox test invoices — through the same public API your code uses.
getpeppr hosts a Model Context Protocol server. Nothing to install: add the address to your assistant. With Claude Code and Codex, four tools work without an account; the three that act for your account ask you to sign in to getpeppr the first time you use one. Cursor and Claude (web & desktop) sign in to getpeppr when they connect.
Sandbox only. The MCP server never sends in production. Test invoices go to the sandbox test receiver, and a production key (sk_live_…) is refused: keep it out of your assistant's configuration.
Connect your assistant
Claude Code
claude mcp add --transport http getpeppr https://api.getpeppr.dev/mcp
The public tools work at once. When you first call an account tool, run /mcp in Claude Code and sign in to getpeppr.
Codex
codex mcp add getpeppr --url https://api.getpeppr.dev/mcp
Run codex mcp login getpeppr to sign in before using the account tools.
Cursor
Opens Cursor, which asks you to confirm. Or add this to your configuration:
{
"mcpServers": {
"getpeppr": { "url": "https://api.getpeppr.dev/mcp/auth" }
}
}
Cursor uses a second address, https://api.getpeppr.dev/mcp/auth, which asks you to sign in when you connect: Cursor does not open a sign-in page when a tool asks for one later.
Claude (web & desktop)
Claude connects through https://api.getpeppr.dev/mcp/auth and asks you to sign in to getpeppr when you connect. getpeppr is listed in Claude's connector directory (Community).
Signing in uses your getpeppr account (no API key to copy). You choose the organisation the assistant acts for. No account yet? Create a free sandbox account. You can also pass a sandbox API key as a bearer token instead of signing in.
Tools
| Tool | Account | What it does |
|---|---|---|
lookup_participant Look up a Peppol participant | No | Whether an identifier is registered on the production Peppol network, with which provider, and what the directory says about it. |
validate_invoice Validate an invoice | No | A UBL document against the official Peppol rulebooks, or an SDK-shaped JSON invoice against the SDK's rules. Says whether the document conforms — never whether getpeppr would send it. Give it sample or test invoices only, never a real invoice or real people's data. |
plan_integration Plan a getpeppr integration | No | The steps for your case (your own company, or a platform sending for customers) and your countries, with the docs to read. For a country getpeppr does not send from in production yet, it says so and hands you a short email to complete and send if you need that country. |
search_docs Search the getpeppr documentation | No | Up to five pages of these docs, each with a short prose excerpt; the page itself holds the code. |
create_test_customer Create a sandbox test customer | Yes — writes (sandbox) | Platform accounts: a sandbox customer company (sub-tenant legal entity), through POST /v1/legal-entities. The same arguments again return the same company and its current status. |
send_test_invoice Send a sandbox test invoice | Yes — writes (sandbox) | A sandbox invoice to the sandbox test receiver 9925:BE0314595348, through POST /v1/invoices. Lines without tax fields get your account's sandbox tax profile; while that profile is unchanged, the same arguments again return the same document, never a second one. |
get_document_status Get a document's status | Yes — reads | The status of one of your documents, the category of a failed delivery, and its event timeline (types and times only). |
Limits
- Writes are sandbox only.
send_test_invoicesends only to9925:BE0314595348; any other receiver is refused. - No reception test. The MCP server sends and reads; receiving invoices is tested with webhooks.
- Public tools are rate limited, per network address and per minute: 20 lookups, 10 validations, 30 plans and 30 searches; lookups are also capped at 30 a minute across all callers, and at most 20 public calls run at once. Over a limit, the tool answers
mcp.rate_limited. - Validation size: a UBL document up to 1 MiB, a JSON invoice up to 500 lines. A JSON validation does not run the national rules some countries apply when you send; the answer names them.
- Account tools are rate limited per account: 30 test invoices an hour, 10 test customers a day and 30 status reads a minute. Over a limit, the tool answers
mcp.rate_limited. - Every account tool goes through the public API with a key of your organisation, so its errors and history are the API's. The MCP agent key has its own request budget, so an assistant never uses up the quota of your production integration.
- Temporarily off: getpeppr can turn the MCP tools off without notice to protect the service; they then answer
mcp.temporarily_disabled. The API itself is not affected.
What your assistant is told
When it connects, your assistant receives the journey to a first delivered test invoice, so it can lead you through it:
plan_integrationgives the steps and code for your case;search_docsfinds the pages to read.validate_invoiceandlookup_participantneed no account;validate_invoiceis given sample or test invoices only, never a real invoice or real people's data.- You create a free account and register your own company; the account tools then ask you to sign in.
send_test_invoicedelivers to the test receiver9925:BE0314595348. Platform accounts first create a test customer and send as it.get_document_statusfollows the document until it is delivered or failed.- Going live (an
sk_live_key, real receivers, webhooks) happens in the console and in your code, never through the MCP server.
Every tool result carries a code from the result catalogue and a sentence saying what to do next; a refusal by the API also carries the API's reason and, when the API names one, the rule that failed.
The MCP agent key
When you connect by signing in, getpeppr acts for your organisation with a sandbox API key named MCP agent — sandbox, listed on the console's API keys page. Any member of the organisation can use it through their assistant. It cannot archive a customer company or request an attestation, and it cannot exist in production.
- Turn it off: an organisation admin can switch off AI assistants (MCP) on the API keys page, or revoke the key, which does the same; a member cannot. Connected assistants stop acting for the organisation at once.
- Roles follow your organisation: when you sign in, creating a test customer needs the admin role. A role change or a removed member takes effect within a minute.