protogrid

Search / com.normapi/mcp

NormAPI

R0· no sign-in

Validate and generate German e-invoices (XRechnung, ZUGFeRD) against the official KoSIT rules.

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

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

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "normapi": {
      "type": "http",
      "url": "https://normapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${NORMAPI_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http normapi https://normapi.com/mcp --header "Authorization: Bearer ${NORMAPI_TOKEN}"
[mcp_servers.normapi]
url = "https://normapi.com/mcp"
bearer_token_env_var = "NORMAPI_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "normapi": {
      "type": "remote",
      "url": "https://normapi.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:NORMAPI_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "normapi": {
      "type": "http",
      "url": "https://normapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${NORMAPI_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=normapi&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbm9ybWFwaS5jb20vbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7Tk9STUFQSV9UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "normapi": {
      "type": "http",
      "url": "https://normapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${NORMAPI_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "normapi": {
      "httpUrl": "https://normapi.com/mcp",
      "headers": {
        "Authorization": "Bearer ${NORMAPI_TOKEN}"
      }
    }
  }
}
extensions:
  "normapi":
    enabled: true
    name: "normapi"
    type: streamable_http
    uri: "https://normapi.com/mcp"
    headers:
      "Authorization": "Bearer ${NORMAPI_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${NORMAPI_TOKEN}. The registry never accepts secret values.

Quality 96 / 100strong

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
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • 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.annotations3 of 3 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,183 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @normapi/[email protected]

3 tools, about 4,183 tokens to load them all · tool set 517b88f5b0ca · tools last changed 2026-10-16 · checked 2026-10-19 10:52 UTC

Tool changes

  • generate_invoicechangeddescription
    before

    Produce an XRechnung (`ubl` or `cii` XML) or a ZUGFeRD hybrid PDF (`zugferd`) from invoice data. Totals are computed server-side in decimal arithmetic, and the document is validated against the official rules before it is returned. Data the rules do not permit is refused with the broken rules and how to fix each. Needs the user's NormAPI account; each document counts against the monthly allowance (25 free).

    after · 96% of words in common

    Produce an XRechnung (`ubl` or `cii` XML) or a ZUGFeRD hybrid PDF (`zugferd`) from invoice data. Totals are computed server-side in decimal arithmetic, and the document is validated against the official rules before it is returned. Data the rules do not permit is refused with the broken rules and how to fix each. Needs the user's NormAPI account; each document counts against the monthly allowance (50 free).

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-10d-ago -no-repository

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

Dependencies

@normapi/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://normapi.com/mcp streamable-httpnoneyes100%325 ms2026-07-282026-10-19
packageregistryversionruntimesecrets
@normapi/mcpnpm1.0.1–NORMAPI_API_KEY

Tools (3)

explain_ruleread-onlyExplain one EN 16931 / XRechnung / Peppol business rule by its code (e.g. BR-DE-15, BR-CO-10, PEPPOL-EN16931-R010): what it requires, why invoices typically break it, and how to fix it, with a link to the full page. Case does not matter. Schema findings (cvc-*) have no explanation.
generate_invoiceProduce an XRechnung (`ubl` or `cii` XML) or a ZUGFeRD hybrid PDF (`zugferd`) from invoice data. Totals are computed server-side in decimal arithmetic, and the document is validated against the official rules before it is returned. Data the rules do not permit is refused with the broken rules and how to fix each. Needs the user's NormAPI account; each document counts against the monthly allowance (50 free).
validate_invoiceread-onlyCheck an XRechnung (UBL or CII XML) or a ZUGFeRD/Factur-X PDF against the official KoSIT rules. Returns the verdict, the rule set version, and every finding; each business-rule finding comes with a plain-language meaning, cause and fix. Send the XML as text in `xml`, or the PDF base64-encoded in `pdfBase64` — exactly one. Free, no account needed, 5 MB at most.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.normapi/mcp",
  "icons": [
    {
      "src": "https://normapi.com/icon.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "NormAPI",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://normapi.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional. Bearer nk_live_… (your NormAPI API key) to generate invoices without OAuth. Validation needs nothing."
        }
      ]
    }
  ],
  "version": "1.0.1",
  "packages": [
    {
      "version": "1.0.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@normapi/mcp",
      "registryType": "npm",
      "environmentVariables": [
        {
          "name": "NORMAPI_API_KEY",
          "isSecret": true,
          "description": "Your NormAPI API key (nk_live_…), needed only to generate invoices. Free at https://normapi.com/en/account/keys."
        }
      ]
    }
  ],
  "websiteUrl": "https://normapi.com/en/docs/mcp",
  "description": "Validate and generate German e-invoices (XRechnung, ZUGFeRD) against the official KoSIT rules."
}