Skip to content
Back to search
100
MCP live v1.0.0 MCP 2025-11-25 streamable-http

OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine

ch.opencaselaw/swiss-caselaw

1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.

Uptime
100.0%
5 direct probes · 30d
Response
216ms
last probe
Tools
42
callable
Resources
0
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
why this score
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
42 tools, 0 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
42 items in total; 3 or more earns these points.
pass Describes itself 10/10
99 characters; more than 30 earns these points.

Tools · 42

search

Minimal 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 retrie…

fetch

Minimal 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…

search_decisions

Use 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 …

get_decision

Fetch 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 v…

get_decisions

Use 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 c…

list_courts

List all available courts with decision counts, date ranges, and language coverage. Use this to discover what data is available.

get_statistics

Get aggregate statistics about the dataset. Optionally filter by court, canton, or year.

find_citations

Given 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_appeal_chain

Trace 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. Bezirksgeric…

find_leading_cases

Find the most-cited decisions for a topic or statute. Authority ranking based on citation graph; a free-text topic ranks decisions whose regeste carries the query terms first (`regeste_match`: share o…

analyze_legal_trend

Year-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.

draft_mock_decision

Build 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: Th…

get_case_brief

Structured 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, decisio…

get_decision_structure

Structured 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. …

get_erwaegung

Verbatim 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 fi…

find_relevant_erwaegung

Find 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 match…

get_article_purpose

Return 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 publicatio…

search_botschaft

Use 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 ever…

get_article_history

Chronological story of a single statute article: current text + every linked Botschaft (enacted + amendments) + leading court interpretations + doctrinal commentary, all ordered by date. Combines stat…

get_regeste

Get 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. O…

check_claim_support

Verify 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 R…

attest_response

MANDATORY 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 …

cite

Get 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 canonica…

get_doctrine

Get 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 ab…

generate_exam_question

Generate 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 c…

get_law

AUTHORITATIVE 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…

search_laws

Use 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 b…

get_commentary

Look 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 com…

search_commentaries

Use this tool ONLY for article-anchored commentary — doctrinal discussion tied to a specific statute article: OnlineKommentar.ch / OpenLegalCommentary.ch (federal law) and the Kommentar zur Schaffhaus…

search_scholarship

Use this tool for open-access SCHOLARSHIP (Lehre): OA journal articles (sui generis et al.), OA legal commentaries (OnlineKommentar, OpenLegalCommentary — this tool SUBSUMES search_commentaries), diss…

get_scholarship

Fetch 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.

find_scholarship_citing_statute

Find OA legal scholarship that cites a given Swiss statute article. Sourced from article-anchored commentaries (OnlineKommentar / OpenLegalCommentary) PLUS full-text citation extraction across the ope…

find_scholarship_citing_decision

Find 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…

list_scholarship_sources

List 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.

get_scholarship_full_text

Fetch 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-fed…

get_materialien

Look 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 Fe…

search_materialien

Use 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, a…

search_legislation

Use 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'). No…

get_legislation

Retrieve 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 c…

browse_legislation_changes

Browse recent legislation changes for a canton or federal level. Shows new laws, amendments, and abrogations with dates.

search_practice

Use this tool when the question involves federal ADMINISTRATIVE PRACTICE (Verwaltungspraxis): Wegleitungen, Kreisschreiben, Weisungen, Rundschreiben — agency guidance, not court decisions. 9,900+ docu…

get_practice

Retrieve 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 b…

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "opencaselaw_\u2014_swiss_caselaw,_statutes_\u0026_doctrine": {
      "url": "https://mcp.opencaselaw.ch/mcp",
      "transport": "streamable-http"
    }
  }
}