{
  "markdown": "# kvasir-mcp\n\n**MCP server for verifiable German, Austrian, Swiss and EU law.** Resolve, search\nand verify legal citations against the official sources — from any MCP client.\n\nThis repository documents the **hosted** server. There is nothing to install and\nno local build: point your client at the endpoint below.\n\n```\nhttps://kvasir.legal/mcp\n```\n\nTransport: streamable HTTP. Auth: OAuth (most clients discover it automatically)\nor an `X-API-Key` header. A free account with 2,000 monthly units is at\n[kvasir.legal/signup](https://kvasir.legal/signup); reading law on the site needs\nno account at all.\n\n## Why\n\nLanguage models answer legal questions from a training snapshot. They paraphrase\namended provisions, cite repealed directives, and cannot say which *version* an\nanswer relied on. This server gives an agent the two operations that fix that:\nresolve a citation to the wording in force, and verify the citations the agent\nitself produced.\n\n## Coverage\n\n| Jurisdiction | Statutes | Case law |\n|---|---|---|\n| Germany — federal | ✅ | ✅ (federal courts) |\n| Bavaria | ✅ | ✅ |\n| North Rhine-Westphalia | ✅ | ✅ |\n| Saxony · Brandenburg · Bremen | ✅ | — |\n| Austria | ✅ | ✅ (OGH, VfGH, VwGH) |\n| Switzerland | ✅ | — |\n| EU | ✅ incl. delegated & implementing acts, Commission guidelines | ✅ (CJEU, General Court) |\n\n~460,000 norms, ~512,000 decisions, ~1.4 million typed citation edges. Sources are\nchecked daily (weekly for Saxony and Bremen). Repealed acts stay in the corpus,\nflagged as repealed. Live counts and per-source timestamps:\n[`/api/v1/status`](https://kvasir.legal/api/v1/status).\n\n## Tools\n\n| Tool | Use it when |\n|---|---|\n| `resolve_citation` | you have a citation string — „§ 573 Abs. 2 BGB\", „Art. 6 GDPR\" |\n| `search_legal` | you have a question or topic, not a citation |\n| `check_draft` | you have a full draft, memo or brief — citations **and** quoted wording |\n| `verify_citations` | you have a bare list of references to check |\n| `get_legal_object` | you have a canonical URI |\n| `get_legal_objects` | you need several objects at once |\n| `get_legal_relations` | you want the citation graph from one node |\n| `legal_uri_grammar` | you want to build URIs yourself |\n\nArguments, limits and response shapes:\n[kvasir.legal/developers/mcp-tools](https://kvasir.legal/developers/mcp-tools).\n\n## Example\n\nAsk your agent: *„Which decisions cite Art. 6 GDPR?\"* — it calls\n`get_legal_relations` on `norm:eu:GDPR:art_6` and gets the citing decisions with\ncourt, docket number and canonical URI, ordered by authority.\n\nOr without any client:\n\n```bash\ncurl -s \"https://kvasir.legal/api/v1/relations/norm:eu:GDPR:art_6?direction=in&limit=5\"\n```\n\n## Honest limits\n\n- Verification is a fact about **this corpus**. A miss means „not found here\" —\n  a typo or a coverage gap — not „this citation is fake\".\n- A citation can exist, be current, be quoted correctly, and still be the wrong\n  authority for the question. This is not legal advice.\n- Commission guidelines are interpretive, not binding law, and are labelled as such.\n- No case law yet for Switzerland, Saxony, Brandenburg and Bremen.\n\n## Links\n\n- Website — https://kvasir.legal\n- API docs — https://kvasir.legal/developers\n- Benchmark — https://kvasir.legal/developers/benchmark\n- Sources & rights — https://kvasir.legal/sources\n- Contact — hello@kvasir.legal\n\nLicence note: the corpus is served under the terms at\n[kvasir.legal/agb](https://kvasir.legal/agb). Search and answer engines are\nwelcome; crawling for model training is not permitted.\n",
  "bytes": 3516,
  "sha": "8b5171d18cea15472e35695d0d516ce2f03bbc7bebfc5499d508dceaa91869fa",
  "repo_slug": "kvasir-legal/kvasir-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_legal_kvasir_kvasir_legal_ba218163/readme"
}