Search / com.normapi/mcp
NormAPI
R0· no sign-inValidate and generate German e-invoices (XRechnung, ZUGFeRD) against the official KoSIT rules.
v1.0.1 · active · website · descriptor JSON · versions
Search / com.normapi/mcp
R0· no sign-inValidate and generate German e-invoices (XRechnung, ZUGFeRD) against the official KoSIT rules.
v1.0.1 · active · website · descriptor JSON · versions
{
"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.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations3 of 3 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 4,183 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes1 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @normapi/[email protected]generate_invoicechangeddescriptionProduce 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).
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.
+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.
@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.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://normapi.com/mcp streamable-http | none | yes | 100% | 325 ms | 2026-07-28 | 2026-10-19 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@normapi/mcp | npm | 1.0.1 | – | NORMAPI_API_KEY |
explain_ruleread-only | Explain 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_invoice | 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). |
validate_invoiceread-only | Check 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.
{
"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."
}