About DutyKit
DutyKit is a remote MCP server for agents handling business obligations in Germany, Luxembourg, and the EU. It returns cited legal requirements and pre-checks for items such as invoices and marketing, with a record of each check; it is not legal advice.
Key features
- 01Activity-based obligation lookup
- 02Invoice and marketing pre-checks
- 03AI disclosure wording
- 04Live EU VAT ID checks
- 05Timestamped check evidence
Use cases
- 01Check business website requirements
- 02Review invoice fields before sending
- 03Check consent before marketing outreach
- 04Verify an EU VAT ID
MCP support
DutyKit provides a public Streamable HTTP MCP endpoint. Its tools return legal obligations and pre-check results with cited sources, and checks include evidence metadata.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://dutykit.dev/mcpclaude mcp add --transport http renschrder-stack-dutykit https://dutykit.dev/mcp{"mcpServers":{"renschrder-stack-dutykit":{"type":"http","url":"https://dutykit.dev/mcp"}}}Open in Cursor{"servers":{"renschrder-stack-dutykit":{"type":"http","url":"https://dutykit.dev/mcp"}}}Open in VS Code{"mcpServers":{"renschrder-stack-dutykit":{"type":"http","url":"https://dutykit.dev/mcp"}}}{"mcpServers":{"renschrder-stack-dutykit":{"serverUrl":"https://dutykit.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEDutyKit
EU business duties for AI agents. A remote MCP server that tells an agent which business rules apply in Germany, Luxembourg and the EU, with the legal source for every line, and lets it pre-check an invoice, a marketing message or a call before it acts.
Endpoint: https://dutykit.dev/mcp (Streamable HTTP, public beta, free, no account, 200 tool calls per day per IP, no inputs stored)
Docs: https://dutykit.dev · https://dutykit.dev/llms.txt · Guides
Connect
Claude Code:
claude mcp add --transport http dutykit https://dutykit.dev/mcp
Any MCP client (JSON config):
{ "mcpServers": { "dutykit": { "type": "http", "url": "https://dutykit.dev/mcp" } } }
Tools
| Tool | What it does |
|---|---|
pflichten(land, taetigkeit) | Obligations for DE or LU plus EU-wide, filtered by activity: website, online_handel, rechnung, werbung, ki_kontakt, gruendung, datenschutz, produkte |
rechnung_vorpruefen(rechnung, land="DE") | Missing mandatory invoice fields under § 14 (4) UStG |
werbung_vorpruefen(kanal, empfaenger, einwilligung_belegt, bestandskunde) | May the agent send this marketing email or make this call? (§ 7 UWG) |
ki_hinweis(firma, sprache) | AI disclosure wording under AI Act Art. 50(1) in de, fr, en, lb |
vat_pruefen(ust_id) | Live EU VAT ID check via the European Commission's VIES service |
angebot() | Pricing status, what is included, and when DutyKit is (not) the right fit |
Every check also returns a nachweis (timestamp, tool, responsible person, SHA-256 of the result) for the human who is liable.
Example prompts
- "Before you publish the shop page: what does a website for a business in Luxembourg need?"
- "Check this invoice for missing mandatory fields before you send it."
- "May you send this newsletter to consumers who never opted in?"
- "Start every call with the AI disclosure sentence in French for Muster S.à r.l."
Example result (pflichten, shortened)
{
"id": "de-impressum",
"pflicht": "Impressum mit Name, ladungsfähiger Anschrift, schneller elektronischer Kontaktmöglichkeit, ggf. Register und USt-IdNr.",
"grundlage": "§ 5 DDG",
"quelle": "https://www.gesetze-im-internet.de/ddg/__5.html",
"pruefstand": "belegt",
"geprueft": "2026-11-07"
}
Catalogue
pflichten.json lists for every entry the legal basis, the source URL, the check date and whether it was checked against the legal text (belegt) or not yet (zu_pruefen). Coverage today: DE, LU, EU (23 of 26 entries checked against the legal text, the rest marked zu_pruefen, reviewed weekly). Next: FR, BE. Corrections and additions with a primary source are welcome as issues or pull requests.
Not legal advice. DutyKit returns obligations, formats and checks against the cited texts, not advice on individual cases. Made with AI assistance.
Develop
uv run --with "mcp>=2" --with pytest pytest -q # tests
python scripts/katalog_pruefen.py # catalogue lint
Run locally
uv run --with "mcp>=2" --with uvicorn uvicorn app:app --port 8080
Self-hosting with Docker and Caddy: see deploy/.
License
Code: MIT (see LICENSE). Obligation catalogue pflichten.json: CC BY 4.0, please credit "DutyKit (dutykit.dev)".
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.