956k Swiss court decisions: full-text search, citation graph, statute lookup (DE/FR/IT)
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Swiss Case Law.
search_decisionsFull-text search with filters (court, canton, language, date range, chamber)
get_decisionFetch a single decision by docket number or ID. Includes citation graph counts (cited by / cites).
list_courtsList all courts with decision counts
get_statisticsAggregate stats by court, canton, or year
find_citationsShow what a decision cites and what cites it, with confidence scores
find_appeal_chainTrace the appeal chain (Instanzenzug) — prior and subsequent instances
Open Swiss case law and legislation for legal research and AI.
1M+ decisions · all 26 cantons · 1875–today · citation graph · MCP + REST + CLI + Parquet · CC0 data · MIT code
Try the search · Chat with your AI · Automate research · Download the dataset · API documentation
No sign-up, no API key, read-only. 42 tools; setup guides for individual clients are at opencaselaw.ch/mcp.
Using Anthropic's Claude for Legal plugin? A Swiss playbook that makes its contract-review and NDA-triage skills work under Swiss law, every article verified against the statute mirror, is at opencaselaw.ch/claude/legal.local.md; see the setup guide.
ocl is a small command-line client over the public research API, made for
two jobs a chat window does badly: checking the citations in a draft, and
keeping the evidence behind a memo in a folder you can share. It is on PyPI
as opencaselaw-cli:
The first prints, per reference, whether the decision exists, which one it
is, and whether a requested Erwägung exists. The second saves the selected
decisions, passages and statute articles into a folder with a plain-language
INDEX.md and a hashed manifest.json. Everything comes back from the
service unchanged: citation strings, passage text, source links. Search is
bounded, and a citation check establishes existence, not that an authority
supports a proposition. See the CLI guide.
Use MCP for conversations, the CLI or REST API for automation, and Parquet for corpus-scale analysis.
Question. When is a dismissal in retaliation for an employee asserting a claim abusive under Swiss law?
One call — search_decisions("missbräuchliche Kündigung Rachekündigung")
returns 129 decisions, the leading one first:
BGE 136 III 513 (7 October 2010)
Art. 336 OR; missbräuchliche Kündigung. Der Arbeitnehmer ist vor einer Rachekündigung nur geschützt (Art. 336 Abs. 1 lit. d OR), sofern er nach Treu und Glauben annehmen kann, dass die von ihm geltend gemachten Ansprüche berechtigt sind. Es ist nicht erforderlich, dass sie tatsächlich begründet sind.
The Regeste is returned verbatim from the stored official head-note, and the citation string comes from a stored field — tools never construct citations. That contract is what makes the answer checkable rather than plausible.
Reproduce it:
| Resource | Coverage |
|---|---|
| Court decisions | 1,050,000+ records, 118 court and source collections, 1875–today |
| Languages | German, French, Italian (plus English, for the ECtHR judgments whose only authoritative text is English) |
| Legislation | 5,525 federal laws, 15,600 cantonal laws (all 26 cantons) |
| Citation graph | ~10M resolved decision-to-decision edges, 12.4M statute references |
| Interpretive layers | Federal Council dispatches, commentaries, open-access scholarship, federal administrative practice |
| Access | Web, MCP, REST, research CLI, daily CC0 Parquet |
| Licensing | CC0 data, MIT code (ECtHR texts © ECHR-CEDH, see the data card) |
Counts are generated from one source of truth,
docs/canonical_numbers.md, with the
verification method recorded alongside each figure.
Limitations, stated plainly. Coverage is not complete where portals restrict access; those sources are documented rather than glossed. The citation graph reports resolution coverage (93.8 %), which is not a precision estimate — a human semantic audit is in preparation. Some cantonal decisions may be published unredacted by the court; we inherit upstream pseudonymisation and do not re-pseudonymise. See governance and removal policy.
Data-quality reports are the most valuable contribution — every one so far has been reproduced, fixed and pinned with a regression test. See CONTRIBUTING.md.
The remainder of this page is reference detail.
Swiss legal research today is fragmented across paywalls, inaccessible to language models, and prohibitively expensive for the people who need it most — law students, independent researchers, and anyone outside the major firms. Commercial databases (Weblaw, Swisslex, Legalis) charge hundreds of francs per month and still don't expose a clean API. LLMs hallucinate statute text because they have no authoritative source. Small cantons publish decisions in PDF archives nobody indexes.
OpenCaseLaw fixes this. Every published Swiss court decision, every federal and cantonal law, the resolved citation graph between them, and 44 MCP tools (42 remote in public mode + 2 local-only) that let any modern LLM act as a Swiss legal research assistant — all free, all open, all refreshed automatically.
Case law — 1,050,000+ decision records (~909,000 unique decisions; cross-identifier duplicates retained and linked, never deleted) from 1875 to today across 118 courts, full text + structured metadata, covering:
rm for RomanshLegislation — every Swiss law, federal and cantonal, locally mirrored with article-level indexing:
Citation graph — the only public large-scale citation graph of the Swiss legal system:
find_leading_cases, find_citations, find_appeal_chain, analyze_legal_trend (top: BGE 125 V 351 with 85,108 incoming citations)Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/swiss-case-law)<a href="https://allmcps.com/mcp/swiss-case-law"><img src="https://allmcps.com/api/badge/swiss-case-law?style=directory" alt="Swiss Case Law on AllMCPs" /></a>