protogrid

Search / dev.getpeppr/mcp

getpeppr

R0· no sign-in

Peppol e-invoicing: look up participants, validate invoices, and send sandbox test invoices.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality96new
Trust83of 100
Uptime, 30 days100%
Latency p50720 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "getpeppr": {
      "type": "http",
      "url": "https://api.getpeppr.dev/mcp"
    }
  }
}
claude mcp add --transport http getpeppr https://api.getpeppr.dev/mcp
[mcp_servers.getpeppr]
url = "https://api.getpeppr.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "getpeppr": {
      "type": "remote",
      "url": "https://api.getpeppr.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "getpeppr": {
      "type": "http",
      "url": "https://api.getpeppr.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=getpeppr&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmdldHBlcHByLmRldi9tY3AifQ%3D%3D"
}
{
  "servers": {
    "getpeppr": {
      "type": "http",
      "url": "https://api.getpeppr.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "getpeppr": {
      "httpUrl": "https://api.getpeppr.dev/mcp"
    }
  }
}
extensions:
  "getpeppr":
    enabled: true
    name: "getpeppr"
    type: streamable_http
    uri: "https://api.getpeppr.dev/mcp"
    timeout: 300

Quality 96 / 100new

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorization100 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • pass
    auth.cimdClient ID Metadata Documents supported
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,024 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 1 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 2,024 tokens to load them all · tool set a06fb95cfccd · tools last changed 2026-10-20 · checked 2026-10-20 19:10 UTC

Tool changes

  • validate_invoicechangedinput schema
  • validate_invoicechangeddescription, input schema
    before

    Validates a Peppol BIS Billing 3.0 UBL document against the Peppol rules, or a getpeppr invoice JSON against the SDK rules, and explains each violation. It does not check whether the invoice can be sent.

    after · 74% of words in common

    Validates a Peppol BIS Billing 3.0 UBL document against the Peppol rules, or a getpeppr invoice JSON against the SDK rules, and explains each violation. It does not check whether the invoice can be sent. Send sample or test invoices only, never a real invoice or real people's data.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-1d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.getpeppr.dev/mcp streamable-httpnoneyes100%720 ms2026-07-282026-10-20
https://api.getpeppr.dev/mcp/auth streamable-httpoauth2 AS: https://clerk.getpeppr.devyes100%626 ms–2026-10-20

Tools (7)

create_test_customerPlatform accounts only: creates a test customer (sub-tenant legal entity) in the getpeppr sandbox and returns its registration state. Up to 10 active test customers per account; identifier rules per country: https://getpeppr.dev/docs/platform/legal-entities/. Calling it again with the same arguments returns the same test customer with its current status, never a second one. Pass the returned legalEntity.id as sender.legalEntityId to send_test_invoice once its status allows sending. Requires the admin role and signing in to getpeppr.
get_document_statusread-onlyReturns the status and lifecycle events of a sandbox document sent from your getpeppr account; call it with the documentId send_test_invoice returned. submitted: getpeppr accepted it. delivered: the test receiver's access point received it, the goal of a sandbox test. failed: final, with a failureCategory. In application code, subscribe to webhooks instead of polling. Requires signing in to getpeppr.
lookup_participantread-onlySays whether a Peppol identifier (scheme:identifier) is registered to receive documents on the production Peppol network, and which ones. A sandbox test customer is never on it, and send_test_invoice only targets the test receiver 9925:BE0314595348 whatever this answers.
plan_integrationread-onlyReturns the integration steps, code snippets and documentation links for adding Peppol to an application, for a single sender or for a platform that sends on behalf of its customers.
search_docsread-onlySearches the prose of the public getpeppr documentation and returns up to 5 matching pages, each with its url and a short excerpt. Excerpts carry no code: open the returned url, or call plan_integration, for code.
send_test_invoiceSends an invoice in the getpeppr sandbox to the Belgian test receiver 9925:BE0314595348, for your own company or for one of your test customers. Never sends a real invoice. Lines without tax fields get your account's sandbox tax profile. While your sandbox tax profile is unchanged, calling it again with the same arguments returns the same document, never a second one. Returns a documentId to pass to get_document_status. Requires signing in to getpeppr.
validate_invoiceread-onlyValidates a Peppol BIS Billing 3.0 UBL document against the Peppol rules, or a getpeppr invoice JSON against the SDK rules, and explains each violation. It does not check whether the invoice can be sent. Send sample or test invoices only, never a real invoice or real people's data.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dev.getpeppr/mcp",
  "title": "getpeppr",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.getpeppr.dev/mcp",
      "type": "streamable-http"
    },
    {
      "url": "https://api.getpeppr.dev/mcp/auth",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://getpeppr.dev/docs/mcp/",
  "description": "Peppol e-invoicing: look up participants, validate invoices, and send sandbox test invoices."
}