mcpField
D
DutyKit

DutyKit

Remote
github.com/renschrder-stackLegal & Government0Updated 1d ago
Repository

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

  1. 01Activity-based obligation lookup
  2. 02Invoice and marketing pre-checks
  3. 03AI disclosure wording
  4. 04Live EU VAT ID checks
  5. 05Timestamped check evidence

Use cases

  1. 01Check business website requirements
  2. 02Review invoice fields before sending
  3. 03Check consent before marketing outreach
  4. 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.

Endpointhttps://dutykit.dev/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

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 README

DutyKit

MCP Registry License: MIT Catalogue: CC BY 4.0

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

ToolWhat 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

Markdown supported

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.