OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine MCP server
online · 100% uptimech.opencaselaw/swiss-caselaw·v1.3.0·71 stars1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.
71 stars
Reviews
Write oneNobody has reviewed OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine tools (42)
write = sends, deletes, buys or postsanalyze_legal_trendFreeYear-by-year decision counts showing jurisprudence evolution. Use with a statute reference (law_code + article), a text query, or both. Returns yearly counts with visual bar chart.
attest_responseFreeMANDATORY FINAL-STEP AUDIT of your draft answer. Checks five hallucination classes: (1) every case citation (BGE/BGer/BVGer/BStGer/BPatGer/MKGE, FR/IT forms) exists and any pinpoint (E. X.Y) resolves to a real Erwägung; (2) every 'Art. X LAW' statute reference resolves; (3) quoted passages (60-400 chars) near a citation or statute reference are verbatim in that source (DE/FR/IT; audit_quotes, on by default); (4) decision dates adjacent to citations match the stored dates; (5) with audit_grounding=true, an LLM judge checks that each cited source supports the preceding claim (one call, ~3 s). Returns the annotated draft, an issues list and a `ledger` (denominator per check). It certifies the draft's own citations, quotations and statute references; it does not certify that no relevant authority is missing. CALL THIS BEFORE emitting any answer with a case citation, statute reference or quotation; set audit_grounding=true for 2+ citations. If ok=false, fix each issue; if ok=true, send linked_text verbatim.
browse_legislation_changesFreeBrowse recent legislation changes for a canton or federal level. Shows new laws, amendments, and abrogations with dates.
check_claim_supportFreeVerify whether a Swiss court decision actually supports a legal claim. Uses an independent Sonnet judge to compare the claim against verbatim text from the decision (Erwägung if pinpoint given, else Regeste, else first portion of full text). Returns {supports: yes|partial|no|contradicts|unrelated, confidence, supporting_excerpt, qualifying_excerpt, reasoning}. CALL THIS for any claim where citing the wrong authority would mislead the user — especially when paraphrasing a decision or drawing a proposition from a complex Erwägung. If supports=no or contradicts, do NOT use the cited decision for that claim.
citeFreeGet the canonical Swiss citation string for a decision reference. CALL THIS BEFORE writing any case citation in your response. Returns ready-to-embed citation_string (DE/FR/IT variants plus a canonical URL) and a verbatim rule_statement. If the reference doesn't exist, returns exists=false plus close_matches for typo-correction — DO NOT guess or construct citations yourself; if you get exists=false, either re-query with a close match or skip the citation entirely. Accepts any Swiss reference form: decision_id (bger_4A_747_2012), BGE reference (BGE 140 III 86), or docket number (4A_747/2012). Optional pinpoint ('2.3') generates the Erwägung-anchored citation and URL. A pinpoint the decision does not contain returns pinpoint_valid=false plus the UNPINPOINTED citation_string — never re-append the rejected pinpoint to it.
draft_mock_decisionFreeBuild a research-only mock decision outline from user facts. Combines relevant Swiss case law retrieval with statute references. If possible, enriches statutes with Fedlex text excerpts. IMPORTANT: The tool may return clarification questions (high/medium priority). High-priority clarifications must be answered (via the clarifications parameter) before the tool will provide a conclusion. Call again with clarifications to get the full analysis.
fetchFreeMinimal fetch tool following the deep-research search/fetch convention. Fetches one Swiss decision's full text by id, returning {id, title, text, url, metadata}. The id comes from a `search` result (a decision_id like bger_6B_1234_2025; a docket number or BGE reference also resolves). General clients should prefer `get_decision`.
find_appeal_chainFreeTrace the appeal chain (Instanzenzug) for a decision. Shows prior instances (lower courts) and subsequent instances (appeals to higher courts). Reconstructs the full procedural path, e.g. Bezirksgericht → Obergericht → Bundesgericht. Uses the is_prior_instance flag from decision headers.
find_citationsFreeGiven a decision_id, show what it cites and what cites it. Uses the reference graph database with 9.65M citation edges. Returns resolved citations with confidence scores and unresolved references.
find_leading_casesFreeFind the most-cited decisions for a topic or statute. Authority ranking based on citation graph. Filter by statute (law_code + article), topic query, court, and date range. Top-3 results auto-attach a `pinpoint` field {e_number, matched_sentence, confidence, url, score, source} anchoring the most-relevant Erwägung (surface it as 'E. <e_number>' when confidence is high or medium). Each result also carries citation_string_{de,fr,it} + canonical_url + is_leading_case + citation_count for ready-to-quote Swiss-format citations. A statute reference inside `query` ("Art. 29 BV") is used as the statute filter. When the query excludes every candidate, the page is relaxed to ranked OR and flagged `filters_relaxed: true` with a `note` — nearest neighbours, not on-point authority.
find_relevant_erwaegungFreeFind which Erwägung paragraph(s) match a legal claim. Server-side FTS5+BM25 over per-paragraph text; returns top-k with confidence labels (high/medium/low) and a highlighted_snippet wrapping the matched sentence in <mark>…</mark> (quote it verbatim). When no_match=true or confidence=low, do NOT cite any Erwägung — report no_match. Federal decisions only. Replaces the 'always-E.-3.1' guessing pattern.
find_scholarship_citing_decisionFreeFind OA legal scholarship that cites a specific Swiss court decision. Reverse direction of the scholarship↔caselaw bridge: given a decision_id (e.g. 'bge_BGE_140_III_86' or 'bger_4A_571_2008'), return open-access publications that cite it in their full text. Citations are extracted deterministically by regex + lookup against the canonical decision corpus, so resolved citations are always to decisions we hold.
find_scholarship_citing_statuteFreeFind OA legal scholarship that cites a given Swiss statute article. Sourced from article-anchored commentaries (OnlineKommentar / OpenLegalCommentary) PLUS full-text citation extraction across the open-access journal corpus (~90k statute references resolved from 9k full-text records).
generate_exam_questionFreeGenerate a Swiss law exam practice question (Fallbearbeitung) based on a real BGE. Returns a fact pattern (Sachverhalt) from a real court decision and a hidden analysis (applicable statutes, leading case, legal test, correct outcome). Workflow: present the fact_pattern and hint to the student, wait for their analysis, then reveal the analysis field and compare. The student can then call get_case_brief(source_decision_id) to study the full case. Pass exclude_ids from previous calls to avoid repeating the same case.
get_article_historyFreeChronological story of a single statute article: current text + every linked Botschaft (enacted + amendments) + leading court interpretations + doctrinal commentary, all ordered by date. Combines statutes.db, materialien.db, reference_graph.db, and ok_commentaries.db into one timeline. USE THIS when the user asks 'how did Art. X evolve' or 'what's the full picture on Art. X' — a single call returns the legislative + judicial + doctrinal arc.
get_article_purposeFreeReturn verbatim text from the Federal Council Botschaft (or Erläuterungsbericht) explaining the legislative purpose of a specific article. Joins the verbatim Botschaft corpus (post-2003 BBl publications, Akoma Ntoso XML where available, PDF fallback otherwise) with the article-Botschaft link table. Returns one entry per source — original Botschaft + any amendment Botschaften. All paragraphs are verbatim text the LLM can quote with `bbl_citation, S. {page}` references. USE THIS when the user asks 'what was the purpose of Art. X' or 'what did Parliament intend' or 'why does Art. X exist'. Coverage is rolling — empty `sources` means the verbatim corpus hasn't ingested that article's Botschaft yet; fall back to get_doctrine for the digest layer.
get_case_briefFreeStructured case brief: regeste, Sachverhalt, key Erwägungen (first 12 only — for orientation, NOT a pinpoint ranking), Dispositiv, statutes, citation authority, related cases. Accepts BGE ref, decision_id, or docket. To pinpoint which Erwägung supports a specific claim, use find_relevant_erwaegung — never guess from key_erwaegungen alone.
get_commentaryFreeLook up a scholarly legal commentary from OnlineKommentar.ch (CC-BY-4.0) for a Swiss federal law article. Without article: lists available commentaries for that law. With article: returns the full commentary text, authors, and citation. Covers 19 Swiss laws including BV, OR, ZGB, StGB, StPO, ZPO, DSG, SchKG, and more. Where no commentary exists (most provisions: the corpus holds only the open-access OnlineKommentar.ch / OpenLegalCommentary.ch commentaries) the answer is flagged `found: false` / `no_commentary: true` and lists what the corpus holds on the provision instead — `leading_cases`, a `doctrine` excerpt, `scholarship_citing_statute` — none of which is commentary.
get_decisionFreeFetch a single court decision with full text. Look up by decision_id (e.g., bger_6B_1234_2025), docket number (e.g., 6B_1234/2025), or partial match. Full text is truncated at 200,000 characters for very long decisions. Set full_text=false to get only metadata and regeste.
get_decision_structureFreeStructured decision fields: Sachverhalt (facts), Erwägungen as numbered paragraphs ('1', '1.1', '2.3'), Dispositiv (ruling), Regeste (BGE only). Federal decisions only; for cantonal use get_decision. Returns excerpts; for verbatim full text of one Erwägung, use get_erwaegung. PINPOINT POLICY: never guess. If user gave an e_number → verify with get_erwaegung. If user gave only a claim → use find_relevant_erwaegung (FTS5+BM25 with confidence labels). If neither is confident, report no_match — do NOT default to E. 3.1.
get_decisionsFreeUse this tool to fetch SEVERAL decisions at once (1-10 ids) instead of calling get_decision repeatedly. Same data per decision — canonical citation strings, Markdown link, Regeste, metadata — in ONE call. Prefer this whenever you are about to read more than one decision from a search result: it is the difference between one tool call and ten, which matters because clients cap tool calls per turn. full_text defaults to FALSE here (unlike get_decision) because ten full judgments exceed connector response limits; set it true only for a short id list, and each text is excerpted with the cut disclosed. Ids not found are reported individually — the rest of the batch still returns.
get_doctrineFreeGet statute text + leading cases + doctrinal timeline + Federal Council Botschaft (legislative intent) + scholarly commentary for a Swiss law article or legal concept. ALWAYS USE THIS for questions about the purpose, intent, or ratio legis of a provision — it returns the Botschaft (Materialien) alongside the case law. Input: statute reference ('Art. 41 OR', 'Art. 8 BV') or legal concept. Returns: current statute text, top 5-8 BGEs ranked by citation authority with the rule each establishes, doctrine evolution timeline, Botschaft reference (legislative intent from the Federal Council's message), and scholarly commentary excerpt from OnlineKommentar.ch when available.
get_erwaegungFreeVerbatim text of ONE numbered Erwägung — the citable unit in Swiss practice (e.g. 'BGE 136 III 513 E. 2.3'). Use when the user already gave an e_number. If only a claim was given (no e_number): use find_relevant_erwaegung — never guess. Returns text + sibling Erwägung numbers. e_number: '1', '4.1', '5.2.1', …
get_lawFreeAUTHORITATIVE LOOKUP for the text of any Swiss law article — federal OR cantonal — from two local mirrors. Federal (canton='CH', default): Fedlex mirror, all federal acts (OR, ZGB, StGB, ZPO, StPO, BV, SchKG, BGG, DBG, AIG, BVG, KVG …) in DE/FR/IT; names match in any language, case, dots or spaces (Cst, OPP2), treaties by common name (IPBPR, KRK, CISG) and former names (OG → BGG, noted; as_of gives the old edition). Cantonal: LexFind mirror, every act of all 26 cantons in the canton's language; name it 'ZH/StG' or pass canton. Use this BEFORE relying on training-data recall — statute text changes often and LLMs hallucinate article content. With as_of: the dated Fedlex edition in force on that date (snapshot_date, in-force window, link); always tell the user the edition date. PDF-only editions carry `text_status` 'heading_only' / 'empty' = no article text recovered; say so and give the Fedlex link. Examples: get_law(abbreviation='BV', article='8'); get_law(canton='ZH', sr_number='554.5', article='1').
get_legislationFreeRetrieve the FULL TEXT and article list of a specific Swiss law, federal or cantonal, by LexFind ID or SR/systematic number. For federal laws in the Fedlex mirror this is instant (local SQLite). For cantonal laws, the law is downloaded from LexFind as PDF, parsed with PyMuPDF, and segmented into articles (cached 30 days). Returns: title, entity, articles (article_num, heading, text), full_text, article_count. Use search_legislation first to find the right lexfind_id or systematic_number; then pass it here. For the core federal codes, get_law is still the fastest path.
get_materialienFreeLook up Materialien for a Swiss federal law article. Returns up to three things: `sources` = per-article digests of legislative intent (BV and BGFA only — 167 articles); `botschaft_documents` = the Federal Council messages that concern this article, with BBl citation, title and Fedlex link (620 SR numbers, 19,809 article links); `amendment_refs` = the AS/BBl publication locators from the statute's own footnotes. Empty `sources` means no digest exists for that law, NOT that the law has no legislative history — read `botschaft_documents` and cite the BBl reference. For full text of a message use search_botschaft. A provision with nothing keyed to it is flagged `found: false` / `no_materialien: true` and lists `leading_cases`, a `doctrine` excerpt and `scholarship_citing_statute` instead — none of it is legislative history.
get_practiceFreeRetrieve a single federal administrative-practice document by its doc_id (e.g. 'estv_ks_ks_nr_28', 'sem_weisungen_weisungen-aug-d', 'bsv_weisungen_6930_v20_de', 'seco_alv_avig_ale_de'). Returns full body text, title, date, issuing authority, and PDF URL. Use search_practice first to discover the doc_id.
get_regesteFreeGet the official Regeste (head-note) of a Swiss court decision. The Regeste is the court's own formulation of the legal rule established — for BGEs especially, this is the canonical citation target. Often references specific Erwägungen via '(E. 5.2.1)' which can then be retrieved verbatim with get_erwaegung. USE THIS when the user asks 'what does this case stand for' or 'what is the rule from this decision'. Available for ~54% of federal decisions (100% of BGE).
get_scholarshipFreeFetch a single OA legal publication (article, dissertation, commentary, etc.) by its pub_id. Returns full metadata + abstract + full text if available + cross-citations to statutes and decisions.
get_scholarship_full_textFreeFetch the full text of an OA legal publication by pub_id, on demand. Cached after first fetch so subsequent calls are instant. License-gated: only records under CC-BY-* (except CC-BY-ND), OA-Swiss-federal, or OA-author-permitted-reuse are extracted. ND/all-rights-reserved records return the upstream URL only. Use this when search_scholarship or get_scholarship returns only abstract/title and you need the article body to verify a claim or quote a passage.
get_statisticsFreeGet aggregate statistics about the dataset. Optionally filter by court, canton, or year.
list_courtsFreeList all available courts with decision counts, date ranges, and language coverage. Use this to discover what data is available.
list_scholarship_sourcesFreeList the open-access legal scholarship sources currently indexed, with publication counts by source, type, and language. Use this to discover what corpora are available before searching.
searchFreeMinimal search tool following the deep-research search/fetch convention. Returns a ranked list of Swiss court decisions matching a query, each as {id, title, url, snippet}. Pair with `fetch` to retrieve a decision's full text by id. General (non-deep-research) clients should prefer `search_decisions`, which exposes filters (court, canton, date, language) and richer metadata.
search_botschaftFreeUse this tool to retrieve and quote the VERBATIM text of Federal Council Botschaften (legislative messages). Where get_article_purpose answers 'why does Art. X exist?', this tool answers 'show me every Botschaft passage about TOPIC X'. Useful when the caller doesn't know which SR/article to ask for — e.g. starting from a concept like 'Vaterschaftsurlaub' or 'Klimaschutz'. Returns ranked passages (FTS5 BM25) with bbl_citation, page, section path, and an article anchor where the parser could identify one. Quote verbatim; every snippet has a stable Fedlex ELI URI. When no paragraph carries every term, the page is relaxed to ranked OR and flagged `filters_relaxed: true` with a `note`.
search_commentariesFreeUse this tool ONLY for article-anchored commentary from OnlineKommentar.ch — doctrinal discussion tied to a specific statute article. For the full OA scholarship corpus (which includes OnlineKommentar) use search_scholarship. Searches commentary text, titles, and article numbers. Returns ranked results with snippets, authors, and links. Useful for finding doctrinal discussion of a legal concept across multiple laws.
search_decisionsFreeUse this tool to find COURT DECISIONS (Rechtsprechung): 1,050,000+ Swiss federal and cantonal decisions plus ~2,800 ECtHR decisions concerning Switzerland. Full-text search with keywords, phrases (in quotes), Boolean operators (AND, OR, NOT), prefix matching (word*), docket lookup (6B_1234/2025) and column-scoped search (regeste:keyword). Filter by court, canton, language, date range, chamber. Results are relevance-ranked and enriched with citation counts, statute references and is_leading_case. Use offset to page. Most recent decisions: empty query + sort='date_desc' + court filter. Not for statutes (search_laws), commentary (search_scholarship), or administrative guidance (search_practice).
search_lawsFreeUse this tool to find STATUTE ARTICLES by topic — full-text over every locally indexed article, federal (Fedlex mirror) AND cantonal (LexFind mirror, all 26 cantons), interleaved. Not for whole laws by name (search_legislation) or court decisions (search_decisions). BM25-ranked per corpus, merged by interleaving so each response surfaces both jurisdictions. Returns ranked snippets with article number, heading, law title, canton, and level ('federal' | 'cantonal'). Use this as the DEFAULT entry point when the user asks about any Swiss legal topic and you don't know which law or which jurisdiction applies. Filter with canton='ZH' (etc.) for cantonal-only, or jurisdiction='federal'/'cantonal' for explicit scoping. Examples: search_laws(query='Verjährung') — find statute-of-limitations provisions in federal + cantonal laws; search_laws(query='Hundehaltung', canton='ZH') — ZH dog-keeping rules; search_laws(query='Mietrecht', jurisdiction='federal') — federal-only tenancy law.
search_legislationFreeUse this tool to find WHOLE LAWS by name or subject — 33,000+ federal and cantonal enactments from LexFind.ch; the entry point for cantonal questions ('Hundegesetz Bern', 'loi sur l'énergie Vaud'). Not for article-level topic search (search_laws) or the core federal codes (get_law is instant there). All 26 cantons + federal, DE/FR/IT. Also the entry point for municipal regulations and federal ordinances outside the core Fedlex mirror. SINGLE-CALL MODE: set fetch_top_n_texts=1..3 and the top results are returned with the parsed full text + article list of the law itself — no follow-up get_legislation call needed. Ideal for 'what does cantonal law X say about Y' questions. For core federal codes (OR, ZGB, StGB, BV, StPO, ZPO, SchKG, BGG, DBG, IPRG, AIG, BVG, KVG etc.), prefer get_law / search_laws — they are instant and cover all three languages.
search_materialienFreeUse this tool for DIGESTED legislative history — per-article intent summaries and key arguments, not verbatim text. COVERAGE IS NARROW: BV and BGFA digests (167 articles) plus BV debate transcripts, and nothing else. For any other law this returns 0 hits, which means 'outside this index', not 'no materials exist'. Prefer search_botschaft, which covers all 6,154 Federal Council messages verbatim, or get_materialien(law_code) for the messages linked to one statute.
search_practiceFreeUse this tool when the question involves federal ADMINISTRATIVE PRACTICE (Verwaltungspraxis): Wegleitungen, Kreisschreiben, Weisungen, Rundschreiben — agency guidance, not court decisions. 9,900+ documents. Covered: BSV (AHV/IV/EL/EO/FamZ/BVG Wegleitungen, Kreisschreiben, Mitteilungen, every version), OAK BV (BVG Weisungen, Mitteilungen, drafts), WEKO (Bekanntmachungen, Erläuterungen, all versions), SECO (ArG commentary, AVIG-Praxis), BAG (KVG Kreisschreiben), SEM (Weisungen AIG/Asyl/BüG, Handbuch Asyl), BJ (SchKG Weisungen, Existenzminimum), FINMA, ESTV, BAFU; counts in the filter enums. Returns ranked excerpts with authority, number, date, PDF link. Superseded versions collapse to the newest per document; for past conduct pass include_superseded=true and take the version dated before the facts. NOT covered: cantonal administrations — Sozialhilfe (SKOS, cantonal Handbücher), Prämienverbilligung (IPV) — say so, do not imply absence of guidance. Pre-2017 federal decisions: search_decisions(court='ch_vb').
search_scholarshipFreeUse this tool for open-access SCHOLARSHIP (Lehre): OA journal articles (sui generis et al.), OA legal commentaries (OnlineKommentar, OpenLegalCommentary — this tool SUBSUMES search_commentaries), dissertations and theses from Swiss university repositories, and federal legal-policy reports. Returns ranked results with snippets, authors, DOI, and direct links. Filters by source, publication type, language, and year range. Sort by relevance or year; an author filter may be used on its own (no query) for a bibliographic browse, e.g. all works by a given author, newest first.
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 2312ms17/20
- Tool poisoning42 tool descriptions checked15/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancelast push 0 days ago15/15
- Maintainer identitynamespace and repository owner differ; GitHub account older than a year; website matches verified namespace7/10
How OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
- Tools
- 42
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 1,433 ms
- faster than 6% of 30,031 servers
- GitHub stars
- 71
- more than 95% of 28,688 servers
What its tools let an agent do: 41 read · 1 create
Install OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine in Claude Code, Cursor or VS Code
claude mcp add --transport http swiss-caselaw https://mcp.opencaselaw.ch/mcp
What the publisher says
From the OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine repository's README, as published. We do not edit it. Read it on GitHub
OpenCaseLaw
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
{
"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:
pipx install opencaselaw-cli # or: uv tool install opencaselaw-cli
ocl citations resolve 'BGE 136 III 513' '4A_747/2012' 'BGE 999 III 1'
ocl bundle create 'Rachekündigung Art. 336 OR' --max-results 10 --passage 2 --law OR:336 --out evidenceThe 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 — 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:
curl -sG https://mcp.opencaselaw.ch/api/decisions \
--data-urlencode "q=missbräuchliche Kündigung Rachekündigung" \
--data-urlencode "limit=3"Coverage
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine: common questions
- Is OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine safety report
- How do I install OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine?
- It runs remotely at mcp.opencaselaw.ch. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine maintained?
- The last commit was 41 days ago (2026-09-24). The latest release is v1.3.0.
- Is OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- What can I use instead of OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine?
- Servers from other publishers that do the same job: State Memory MCP server and Korean Law MCP server.
- How does OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,255 servers); tools 42 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine
Same job from other publishers: the closest match first, then the best rated.
State Memory MCPPersistent workflow graph server tracking tasks, decisions, spatial entities, and blockers.not reviewedEstablishedA- Korean Law MCPKorean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).not reviewedEstablishedA