mcp server
invowerk
German e-invoices: create ZUGFeRD PDFs and XRechnung, check ZUGFeRD/Factur-X, XRechnung (KoSIT) and Peppol BIS. Free tool, API, MCP.
Set up
Hosted by its author. Add the URL to your agent — nothing to install.
Settings → Connectors → Add custom connector
Name: invowerk
URL: https://api.invowerk.dev/mcp/same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 17, 2026invowerk
German e-invoices: create ZUGFeRD PDFs and XRechnung, check ZUGFeRD/Factur-X, XRechnung (KoSIT) and Peppol BIS. Free tool, API, MCP.
invowerk creates and checks e-invoices. In the browser it creates ZUGFeRD PDFs and XRechnung from a form and checks each file before download. It checks ZUGFeRD 2.5.2 and Factur-X 1.09.2 PDFs, XRechnung 3.0.2 (UBL and CII) and Peppol BIS Billing 3.0.21. XRechnung goes through the KoSIT validator; PDFs are also checked for PDF/A. Each check returns a report with the file's SHA-256, rule sets and result. Invoices are processed in memory, not stored. Free web tool; REST API and MCP server with 500 free credits a month.
Quickstart
Check an e-invoice in one call. The anonymous tier needs no key; add
-H "X-API-Key: $INVOWERK_API_KEY" for your plan's limits.
curl -sO https://invowerk.dev/app-static/demo/beispiel-xrechnung.xml
curl -F file=@beispiel-xrechnung.xml https://api.invowerk.dev/v1/validate
{
"valid": true,
"verdict_source": "official",
"official_verdict": "valid",
"scenario": {"config": "kosit-xrechnung", "name": "EN16931 XRechnung (UBL Invoice)"},
"detection": {"kind": "xml", "syntax": "ubl_invoice", "flavor": "xrechnung"},
"errors": {"format": [], "business_rules": [], "carrier": []},
"findings": [],
"evidence": {"document_sha256": "259e3eff…", "checked_at": "2026-10-01T22:36:49Z"}
}
The same call takes a ZUGFeRD or Factur-X PDF. A failed check is still HTTP 200,
with valid: false and each problem in findings.
Use it from
MCP server
Streamable-HTTP endpoint: https://api.invowerk.dev/mcp/ — the anonymous
tier works without a key; an API key raises the limits.
Claude Code:
claude mcp add --transport http invowerk https://api.invowerk.dev/mcp/
Claude Code: /plugin marketplace add invowerk-dev/invowerk then /plugin install invowerk@invowerk (set INVOWERK_API_KEY for your key).
Cursor / Windsurf / Cline / Claude Desktop:
{
"mcpServers": {
"invowerk": {
"url": "https://api.invowerk.dev/mcp/"
}
}
}
One-click installs for every client: https://invowerk.dev/connect
Integrations (n8n, Zapier, Make, Dify, SDKs and templates): https://github.com/invowerk-dev/invowerk-integrations
Templates
Ready-made workflows: https://invowerk.dev/templates
Links
- Website: https://invowerk.dev/go/github
- API docs: https://api.invowerk.dev/docs · OpenAPI
- Pricing: https://invowerk.dev/pricing
- E-Rechnung kostenlos prüfen: https://invowerk.dev/tools/e-rechnung-pruefen
- llms.txt: https://invowerk.dev/llms.txt
- Privacy policy: https://invowerk.dev/privacy
- Support: https://invowerk.dev/support
API
Base URL https://api.invowerk.dev/ — authenticate with an X-API-Key header;
anonymous calls work at a lower rate limit.
About the files here
.claude-plugin/— Claude Code plugin, with this repo as its own marketplace..mcp.json— the MCP server the Claude Code plugin connects to.gemini-extension.json— Gemini CLI extension manifest.glama.json— Glama server claim (names the maintainer).mcp.json— Agent Plugins 1.0 MCP server config.plugin.json— Agent Plugins 1.0 plugin manifest.server.json— the entry in the official MCP Registry.skills/— an Agent Skill (agentskills.io SKILL.md) for skill galleries.