J
jonashertner/opencaselaw
Open Swiss legal corpus + MCP server: 1M+ court decisions (1875–today), 21k laws, 10M-edge citation graph, 42…
SECURITY.md ✓
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Install command from the repository
pip install mcp
Parsed from the README we fetched on 2026-10-26; we have not executed it.
This is the install method the repository states, not an MCP client config, so no JSON is generated.
Key names differ by client: Clients & CLI
- Star count
- 78 ★ · jonashertner/opencaselaw · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-10-21 · last seen 2026-11-14 · seen 28× · listed by 1 sources
- Score
- score 103 · 78 ★ · 1 sources · repo
- Install
pip install mcp
FAQ (answers come from our records)
How do I install it?
The repository provides this install command:
pip install mcp. It comes from the repository itself; we cannot guarantee it runs as-is in your client.Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
jonashertner/opencaselaw;first catalogued 2026-10-21;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# OpenCaseLaw
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
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
## What you can do
Find Swiss decisions across federal and cantonal courts, in German, French and Italian.
Trace citations between cases and identify the leading decisions on a question.
Query case law and legislation from Claude, ChatGPT-compatible clients, or any MCP client.
Save repeatable research scripts, inspect citation resolution, and preserve selected evidence with the research CLI.
Download the corpus for legal NLP, retrieval and graph research.
## Connect in 30 seconds
json
"mcpServers": {
"opencaselaw": {
"url": "https://mcp.opencaselaw.ch/mcp"
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.
## Automate research
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:
bash
pipx install opencaselaw-cli # or: uv tool install opencaselaw-cli
ocl citations resolve 'BGE 136 III 513' '4A747/2012' 'BGE 999 III 1'
ocl bundle create 'Rachekündigung Art. 336 OR' --max-results 10 --passage 2 --law OR:336 --out evidence
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.
## A real result
Question. When is a dismissal in retaliation for an employee asserting a
claim abusive under Swiss law?
One call — searchdecisions("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:
bash
curl -sG https://mcp.opencaselaw.ch/api/decisions \
--data-urlencode "q=missbräuchliche Kündigung Rachekündigung" \
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
## What you can do
Find Swiss decisions across federal and cantonal courts, in German, French and Italian.
Trace citations between cases and identify the leading decisions on a question.
Query case law and legislation from Claude, ChatGPT-compatible clients, or any MCP client.
Save repeatable research scripts, inspect citation resolution, and preserve selected evidence with the research CLI.
Download the corpus for legal NLP, retrieval and graph research.
## Connect in 30 seconds
json
"mcpServers": {
"opencaselaw": {
"url": "https://mcp.opencaselaw.ch/mcp"
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.
## Automate research
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:
bash
pipx install opencaselaw-cli # or: uv tool install opencaselaw-cli
ocl citations resolve 'BGE 136 III 513' '4A747/2012' 'BGE 999 III 1'
ocl bundle create 'Rachekündigung Art. 336 OR' --max-results 10 --passage 2 --law OR:336 --out evidence
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.
## A real result
Question. When is a dismissal in retaliation for an employee asserting a
claim abusive under Swiss law?
One call — searchdecisions("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:
bash
curl -sG https://mcp.opencaselaw.ch/api/decisions \
--data-urlencode "q=missbräuchliche Kündigung Rachekündigung" \
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/jonashertner-opencaselaw/)
- Source
- github · https://github.com/jonashertner/opencaselaw
- Browse by field
- Open source
- Traction
- 78 ★
- added
- today
- Security policy
- the repository has
SECURITY.mdat its root (we checked that the file exists, not what it says)
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.