# InvoiceVerify

> Check Peppol receivability (incl. Belgian client lists) and validate EU e-invoices. Free check.

- name: app.lovable.peppol-invoice-compass/invoiceverify
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 84/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.lovable.peppol-invoice-compass%2Finvoiceverify
- tools: https://api.protogrid.dev/v1/servers/app.lovable.peppol-invoice-compass%2Finvoiceverify/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "invoiceverify": {
      "type": "http",
      "url": "https://peppol-invoice-compass.lovable.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-8d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 84/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: check_peppol_receivability (destructiveHint); parse_invoice (destructiveHint); lookup_peppol_participant (destructiveHint); …
- pass `tools.token_cost`: about 1,818 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,818 tokens to load them all
- tool set hash: 215a7b099f649c0c6d3644b08e502d6a
- tools last changed: 2026-10-31T13:25:32.235Z
- badge: [![protogrid quality](https://protogrid.dev/badge/app.lovable.peppol-invoice-compass/invoiceverify.svg)](https://protogrid.dev/servers/app.lovable.peppol-invoice-compass/invoiceverify)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-31 `explain_rule` changed (inputSchema)
- 2026-10-31 `check_belgian_peppol_list` changed (inputSchema)
- 2026-10-31 `lookup_peppol_participant` changed (inputSchema)
- 2026-10-31 `parse_invoice` changed (inputSchema)
- 2026-10-31 `convert_invoice` changed (inputSchema)
- 2026-10-31 `generate_invoice` changed (inputSchema)
- 2026-10-31 `validate_invoice` changed (inputSchema)
- 2026-10-31 `check_peppol_receivability` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/app.lovable.peppol-invoice-compass%2Finvoiceverify/changes

## Remotes

- https://peppol-invoice-compass.lovable.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (9)

- `check_belgian_peppol_list`: Check up to 25 Belgian companies (enterprise or VAT numbers) for Peppol receivability under both Belgian IDs — 0208 (enterprise number) and 9925 (VAT number). Returns per company: receivable under both, only 0208, only 9925, neither, or unknown, with the risk and what to fix in Dutch, French or English. Uses one metered call per valid company; unreadable numbers are free. Requires an InvoiceVerify account (OAuth sign-in).
- `check_peppol_receivability`: Free, no sign-in needed: check whether one Belgian company can receive Peppol e-invoices under each of its two Belgian Peppol IDs — 0208 (enterprise/KBO-BCE number) and 9925 (VAT number). Returns receivable under both, only 0208, only 9925, neither or unknown, which ID to send to, the access point (service provider) per ID, and the risk and fix in English, Dutch or French. Limited to 20 checks per hour per connection; for client lists use check_belgian_peppol_list (sign-in).
- `convert_invoice`: Convert an existing UBL or CII / Factur-X invoice XML into Peppol BIS 3 UBL, XRechnung UBL, XRechnung CII or Factur-X CII, and validate the result. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).
- `explain_rule`: Explain an EN 16931, Peppol or XRechnung business rule (e.g. BR-CO-15, PEPPOL-EN16931-R003) in plain English, Dutch or French, with typical causes and fix steps. Free. Requires an InvoiceVerify account (OAuth sign-in).
- `generate_invoice`: Create a Peppol BIS 3 UBL, XRechnung (UBL or CII) or Factur-X/ZUGFeRD CII XML invoice from structured invoice data, with totals and VAT computed and the result validated. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).
- `get_usage`: Show this month's metered calls, the included allowance, remaining call-pack credits and the reset date for the signed-in account. Free. Requires an InvoiceVerify account (OAuth sign-in).
- `lookup_peppol_participant`: Check whether a company can receive Peppol e-invoices: give a VAT number, company number (KBO/BCE, KvK, SIREN/SIRET), GLN or Peppol ID and it checks every relevant scheme (e.g. Belgian 0208 and 9925) in the live Peppol SML/SMP, lists supported document types and says which ID to send to. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).
- `parse_invoice`: Read a UBL or CII / Factur-X invoice XML into structured JSON (parties, lines, VAT, totals, payment) for booking or reconciliation. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).
- `validate_invoice`: Validate a UBL 2.1, Peppol BIS Billing 3.0, XRechnung or CII / Factur-X XML invoice against EN 16931 and Peppol rules; returns pass/fail with rule IDs, line numbers and fixes. Uses one metered call. Requires an InvoiceVerify account (OAuth sign-in).
