streamable-httpupdated 20d ago
MCP server for verifiable German, Austrian, Swiss and EU law. Resolve, search and verify legal citations against the official sources β from any MCP client.
What can you do with kvasir β verifiable German, Austrian, Swiss & EU law?
kvasir-mcp
MCP server for verifiable German, Austrian, Swiss and EU law. Resolve, search and verify legal citations against the official sources β from any MCP client.
This repository documents the hosted server. There is nothing to install and no local build: point your client at the endpoint below.
https://kvasir.legal/mcp
Transport: streamable HTTP. Auth: OAuth (most clients discover it automatically)
or an X-API-Key header. A free account with 2,000 monthly units is at
kvasir.legal/signup; reading law on the site needs
no account at all.
Why
Language models answer legal questions from a training snapshot. They paraphrase amended provisions, cite repealed directives, and cannot say which version an answer relied on. This server gives an agent the two operations that fix that: resolve a citation to the wording in force, and verify the citations the agent itself produced.
Coverage
| Jurisdiction | Statutes | Case law |
|---|---|---|
| Germany β federal | β | β (federal courts) |
| Bavaria | β | β |
| North Rhine-Westphalia | β | β |
| Saxony Β· Brandenburg Β· Bremen | β | β |
| Austria | β | β (OGH, VfGH, VwGH) |
| Switzerland | β | β |
| EU | β incl. delegated & implementing acts, Commission guidelines | β (CJEU, General Court) |
~460,000 norms, ~512,000 decisions, ~1.4 million typed citation edges. Sources are
checked daily (weekly for Saxony and Bremen). Repealed acts stay in the corpus,
flagged as repealed. Live counts and per-source timestamps:
/api/v1/status.
Tools
| Tool | Use it when |
|---|---|
resolve_citation |
you have a citation string β βΒ§ 573 Abs. 2 BGB", βArt. 6 GDPR" |
search_legal |
you have a question or topic, not a citation |
check_draft |
you have a full draft, memo or brief β citations and quoted wording |
verify_citations |
you have a bare list of references to check |
get_legal_object |
you have a canonical URI |
get_legal_objects |
you need several objects at once |
get_legal_relations |
you want the citation graph from one node |
legal_uri_grammar |
you want to build URIs yourself |
Arguments, limits and response shapes: kvasir.legal/developers/mcp-tools.
Example
Ask your agent: βWhich decisions cite Art. 6 GDPR?" β it calls
get_legal_relations on norm:eu:GDPR:art_6 and gets the citing decisions with
court, docket number and canonical URI, ordered by authority.
Or without any client:
curl -s "https://kvasir.legal/api/v1/relations/norm:eu:GDPR:art_6?direction=in&limit=5"
Honest limits
- Verification is a fact about this corpus. A miss means βnot found here" β a typo or a coverage gap β not βthis citation is fake".
- A citation can exist, be current, be quoted correctly, and still be the wrong authority for the question. This is not legal advice.
- Commission guidelines are interpretive, not binding law, and are labelled as such.
- No case law yet for Switzerland, Saxony, Brandenburg and Bremen.
Links
- Website β https://kvasir.legal
- API docs β https://kvasir.legal/developers
- Benchmark β https://kvasir.legal/developers/benchmark
- Sources & rights β https://kvasir.legal/sources
- Contact β hello@kvasir.legal
Licence note: the corpus is served under the terms at kvasir.legal/agb. Search and answer engines are welcome; crawling for model training is not permitted.
Install
Add kvasir β verifiable German, Austrian, Swiss & EU law to your client. Pick the one you use.
claude mcp add --transport http kvasir-verifiable-german-austrian-swiss- https://kvasir.legal/mcpcodex mcp add kvasir-verifiable-german-austrian-swiss- --url https://kvasir.legal/mcp{
"mcpServers": {
"kvasir-verifiable-german-austrian-swiss-": {
"url": "https://kvasir.legal/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"kvasir-verifiable-german-austrian-swiss-": {
"type": "http",
"url": "https://kvasir.legal/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"kvasir-verifiable-german-austrian-swiss-": {
"url": "https://kvasir.legal/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"kvasir-verifiable-german-austrian-swiss-": {
"serverUrl": "https://kvasir.legal/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
8 tools
kvasir β verifiable German, Austrian, Swiss & EU law exposes 8 tools to a connected agent.
- resolve_citation
- you have a citation string β βΒ§ 573 Abs. 2 BGB", βArt. 6 GDPR"
- search_legal
- you have a question or topic, not a citation
- check_draft
- you have a full draft, memo or brief β citations **and** quoted wording
- verify_citations
- you have a bare list of references to check
- get_legal_object
- you have a canonical URI
- get_legal_objects
- you need several objects at once
- get_legal_relations
- you want the citation graph from one node
- legal_uri_grammar
- you want to build URIs yourself
Score
69 / 100
Good
- Documentation17/25
- Maintenance25/25
- Trust9/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 12 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 8 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Version history
| Versions | Published |
|---|---|
| 1.2.0Latest | Aug 19, 2026 |
| 1.1.0 | Aug 19, 2026 |
| 1.0.0 | Jul 5, 2026 |