{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "app.lovable.peppol-invoice-compass/invoiceverify",
  "title": "InvoiceVerify",
  "description": "Validate and generate EU e-invoices; free Belgian Peppol receivability check (0208/9925).",
  "version": "1.2.1",
  "websiteUrl": "https://peppol-invoice-compass.lovable.app/docs/mcp",
  "icons": [
    {
      "src": "https://peppol-invoice-compass.lovable.app/press/invoiceverify-mark.svg",
      "mimeType": "image/svg+xml",
      "sizes": [
        "any"
      ]
    },
    {
      "src": "https://peppol-invoice-compass.lovable.app/press/invoiceverify-mark.png",
      "mimeType": "image/png"
    }
  ],
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://peppol-invoice-compass.lovable.app/mcp"
    }
  ],
  "serverInfo": {
    "name": "invoiceverify",
    "title": "InvoiceVerify",
    "version": "1.2.1"
  },
  "endpoint": "https://peppol-invoice-compass.lovable.app/mcp",
  "transport": "streamable-http",
  "protocolVersions": [
    "2026-07-28",
    "2025-11-25"
  ],
  "authentication": {
    "required": false,
    "schemes": [
      "none",
      "oauth2"
    ],
    "summary": "Connecting and listing tools need no sign-in. Without signing in only check_peppol_receivability runs (20 calls per hour per visitor); every other tool needs OAuth 2.1 (sign in with an InvoiceVerify account).",
    "withoutSignIn": {
      "tools": [
        "check_peppol_receivability"
      ],
      "rateLimit": "20 calls per hour per visitor"
    },
    "oauth2": {
      "method": "OAuth 2.1 (sign in with an InvoiceVerify account)",
      "protectedResourceMetadata": "https://peppol-invoice-compass.lovable.app/.well-known/oauth-protected-resource",
      "authorizationServer": "https://xdgwjwcgdbzgpwkwyyjd.supabase.co/auth/v1",
      "authorizationServerMetadata": "https://xdgwjwcgdbzgpwkwyyjd.supabase.co/.well-known/oauth-authorization-server/auth/v1",
      "authorizationEndpoint": "https://xdgwjwcgdbzgpwkwyyjd.supabase.co/auth/v1/oauth/authorize",
      "tokenEndpoint": "https://xdgwjwcgdbzgpwkwyyjd.supabase.co/auth/v1/oauth/token",
      "flow": "Authorization code with PKCE (S256)",
      "clientRegistration": "Dynamic client registration (RFC 7591); the registration endpoint is in the authorization server metadata",
      "tokenUsage": "Send the access token as \"Authorization: Bearer <token>\" on every /mcp request",
      "tools": [
        "validate_invoice",
        "generate_invoice",
        "convert_invoice",
        "parse_invoice",
        "lookup_peppol_participant",
        "check_belgian_peppol_list",
        "explain_rule",
        "get_usage"
      ]
    }
  },
  "instructions": "EU e-invoicing tools (InvoiceVerify). Without signing in, check_peppol_receivability checks whether one Belgian company can receive Peppol invoices under its two Belgian IDs — 0208 (enterprise number) and 9925 (VAT number) — free, 20 checks per hour. With an InvoiceVerify account (OAuth sign-in): validate UBL / Peppol BIS 3 / XRechnung / CII / Factur-X XML against EN 16931 and Peppol rules, generate or convert compliant invoice XML, read invoices into JSON, check whether a company in any country can receive Peppol invoices (and under which Peppol ID), check lists of up to 25 Belgian companies at once with the risk and fix in Dutch, French or English, explain rules and show usage. Invoice tools use one metered call each; lookups use one call per company. Invoice contents are processed in memory and never stored.",
  "tools": [
    {
      "name": "check_peppol_receivability",
      "title": "Check Belgian Peppol receivability (free)",
      "description": "One Belgian enterprise or VAT number: can the company receive Peppol invoices under 0208 (enterprise number), 9925 (VAT number), both or neither, which ID to send to, and the fix in English, Dutch or French.",
      "signInRequired": false,
      "metering": "free",
      "access": "Free without signing in; 20 checks per hour per visitor."
    },
    {
      "name": "validate_invoice",
      "title": "Validate e-invoice",
      "description": "Validate UBL 2.1, Peppol BIS Billing 3.0, XRechnung or CII / Factur-X XML against EN 16931 and Peppol rules: pass/fail with rule IDs, line numbers and fixes.",
      "signInRequired": true,
      "metering": "per_call",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call."
    },
    {
      "name": "generate_invoice",
      "title": "Generate e-invoice XML",
      "description": "Create Peppol BIS 3 UBL, XRechnung (UBL or CII) or Factur-X / ZUGFeRD CII XML from structured invoice data, with totals and VAT computed and the result validated.",
      "signInRequired": true,
      "metering": "per_call",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call."
    },
    {
      "name": "convert_invoice",
      "title": "Convert e-invoice format",
      "description": "Convert UBL or CII / Factur-X XML into Peppol BIS 3 UBL, XRechnung UBL, XRechnung CII or Factur-X CII, and validate the result.",
      "signInRequired": true,
      "metering": "per_call",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call."
    },
    {
      "name": "parse_invoice",
      "title": "Read e-invoice into JSON",
      "description": "Read UBL or CII / Factur-X XML into structured JSON (parties, lines, VAT, totals, payment) for booking or reconciliation.",
      "signInRequired": true,
      "metering": "per_call",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call."
    },
    {
      "name": "lookup_peppol_participant",
      "title": "Check Peppol receivability",
      "description": "Any VAT number, company number (KBO/BCE, KvK, SIREN/SIRET), GLN or Peppol ID: checks every relevant scheme in the live Peppol SML/SMP, lists supported document types and says which ID to send to.",
      "signInRequired": true,
      "metering": "per_call",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call."
    },
    {
      "name": "check_belgian_peppol_list",
      "title": "Check a Belgian client list on Peppol",
      "description": "Up to 25 Belgian enterprise or VAT numbers per request, each checked under 0208 and 9925: receivable under both, only one, neither or unknown, with the risk and fix in Dutch, French or English.",
      "signInRequired": true,
      "metering": "per_company",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Uses one metered API call per company, up to 25 companies per request."
    },
    {
      "name": "explain_rule",
      "title": "Explain validation rule",
      "description": "Explain an EN 16931, Peppol or XRechnung business rule (e.g. BR-CO-15) in plain English, Dutch or French, with typical causes and fix steps.",
      "signInRequired": true,
      "metering": "free",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Free (not metered)."
    },
    {
      "name": "get_usage",
      "title": "Show API usage",
      "description": "This month's metered calls, the included allowance, remaining call-pack credits and the reset date for the signed-in account.",
      "signInRequired": true,
      "metering": "free",
      "access": "Requires an InvoiceVerify account (OAuth sign-in). Free (not metered)."
    }
  ],
  "pricing": {
    "url": "https://peppol-invoice-compass.lovable.app/pricing",
    "withoutSignIn": "check_peppol_receivability: free, 20 calls per hour per visitor",
    "freeAccountMonthlyCalls": 100,
    "proMonthlyCalls": 1000,
    "proPriceEur": {
      "month": 14,
      "year": 99
    },
    "callPacks": [
      {
        "calls": 2000,
        "priceEur": 19
      },
      {
        "calls": 10000,
        "priceEur": 79
      },
      {
        "calls": 50000,
        "priceEur": 299
      }
    ],
    "callPackValidityMonths": 12,
    "pricesExclude": "VAT"
  },
  "restApi": {
    "baseUrl": "https://peppol-invoice-compass.lovable.app/api/public/v1/",
    "openapi": "https://peppol-invoice-compass.lovable.app/openapi.json",
    "documentation": "https://peppol-invoice-compass.lovable.app/docs/api",
    "authentication": "Bearer API key from https://peppol-invoice-compass.lovable.app/dashboard/api-keys (not accepted on /mcp, which uses OAuth)"
  },
  "links": {
    "documentation": "https://peppol-invoice-compass.lovable.app/docs/mcp",
    "serverCard": "https://peppol-invoice-compass.lovable.app/mcp/server-card",
    "mcpDiscovery": "https://peppol-invoice-compass.lovable.app/.well-known/mcp.json",
    "agentCard": "https://peppol-invoice-compass.lovable.app/.well-known/agent-card.json",
    "aiCatalog": "https://peppol-invoice-compass.lovable.app/.well-known/ai-catalog.json",
    "apiCatalog": "https://peppol-invoice-compass.lovable.app/.well-known/api-catalog",
    "openapi": "https://peppol-invoice-compass.lovable.app/openapi.json",
    "llmsTxt": "https://peppol-invoice-compass.lovable.app/llms.txt"
  }
}