bots.st/opencaselaw-swiss-caselaw-statutes-doctrine
OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine
Fetches and verifies Swiss legal sources
1184 ms
answered our call
- State
- Answered
- Protocol
- MCP 2025-06-18
- Tools listed
- 42
- Answered
- 4 of the last 4 calls
How to reach it
- MCP, HTTP
https://mcp.opencaselaw.ch/mcp - MCP, SSE
https://mcp.opencaselaw.ch/sse
What it can do
| Tool | What it says it does |
|---|---|
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. Years are decision years: the latest one or two keep rising as courts publish weeks to months after deciding, so a… |
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 to a real Erwägung; (2) every 'Art. X LAW' statute reference resolves; (3) quoted passages (60-400… |
browse_legislation_changes | Browse recent legislation changes for a canton or federal level. Shows new laws, amendments, and abrogations with dates. |
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 Regeste, else first portion of full text). Returns {supports: yes|partial|no|contradicts|unrelated… |
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 canonical URL) and a verbatim rule_statement. If the reference doesn't exist, returns exists=false plus… |
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: The tool may return clarification questions (high/medium priority). High-priority clarifications… |
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 decision_id like bger_6B_1234_2025; a docket number or BGE reference also resolves). General… |
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. Bezirksgericht → Obergericht → Bundesgericht. Uses the is_prior_instance flag from decision headers. |
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_leading_cases | Find the most-cited decisions for a topic or statute. Authority ranking based on citation graph, so recent decisions rank low (not yet cited); for the newest use search_decisions(sort='date_desc'). A free-text topic ranks decisions whose regeste carries the query terms first (`regeste_match`… |
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 matched sentence in <mark>…</mark> (quote it verbatim). When no_match=true or confidence=low, do NOT… |
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 open-access publications that cite it in their full text. Citations are extracted… |
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 open-access journal corpus (~90k statute references resolved from 9k full-text records). |
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 case, legal test, correct outcome). Workflow: present the fact_pattern and hint to the student… |
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 statutes.db, materialien.db, reference_graph.db, and ok_commentaries.db into one timeline. USE THIS… |
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 publications, Akoma Ntoso XML where available, PDF fallback otherwise) with the article-Botschaft link… |
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, decision_id, or docket. To pinpoint which Erwägung supports a specific claim, use find_relevant_erwaegung… |
get_commentary | Look up a commentary on a Swiss federal law article: OnlineKommentar.ch (CC-BY-4.0; BV, OR, ZGB, StGB, StPO, ZPO, DSG, SchKG and more) and, for the BV, OpenLegalCommentary.ch (CC BY-SA 4.0; AI-generated, de/fr/it), which yields to OnlineKommentar where both exist. Without article: lists available… |
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 very long decisions. Set full_text=false to get only metadata and regeste. |
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. Returns excerpts; for verbatim full text of one Erwägung, use get_erwaegung. PINPOINT POLICY… |
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 call. Prefer this whenever you are about to read more than one decision from a search result: it is… |
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 about the purpose, intent, or ratio legis of a provision — it returns the Botschaft (Materialien)… |
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 find_relevant_erwaegung — never guess. Returns text + sibling Erwägung numbers; a parent (E. 2.2)… |
get_law | AUTHORITATIVE LOOKUP for the text of any Swiss law article — federal OR cantonal. Federal (canton='CH', default): Fedlex mirror, all federal acts (OR, ZGB, StGB, ZPO, StPO, BV, SchKG, BGG, DBG, KVG …) in DE/FR/IT; names match in any language, case, dots or spaces (Cst, OPP2), treaties by common… |
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 cantonal laws, the law is downloaded from LexFind as PDF, parsed with PyMuPDF, and segmented into… |
get_materialien | Look up Materialien for a Swiss federal law article. Returns: `sources` = per-article digests of legislative intent (BV and BGFA only); `botschaft_documents` = the Bundesblatt documents that concern the article (Botschaften, Berichte, Stellungnahmen, committee reports, Erlassentwürfe; tagged… |
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', 'un_uhri_3f3a9db7-5e9a-416f-ad28-8c8f97a8322c_en'). Returns the body text, title, date, issuing authority, and… |
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. Often references specific Erwägungen via '(E. 5.2.1)' which can then be retrieved verbatim with… |
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. |
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-federal, or OA-author-permitted-reuse are extracted. ND/all-rights-reserved records return the… |
get_statistics | Get aggregate statistics about the dataset. Optionally filter by court, canton, or year. by_year counts decision years: the latest years keep rising for months as courts publish, so their lower counts are publication lag, not missing data. |
list_courts | List all available courts with decision counts, decision-date ranges, and language coverage. Use this to discover what data is available. A court's latest decision date is not its last update: courts publish weeks to months after deciding, and this corpus is updated daily. |
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. |
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 retrieve a decision's full text by id. General (non-deep-research) clients should prefer… |
search_botschaft | Retrieve and quote the VERBATIM text of federal Materialien: Federal Council Botschaften, Berichte and Stellungnahmen des Bundesrates, parliamentary committee reports, Erlassentwürfe — and the Vernehmlassung documents: Erläuternde Berichte, Vorlagen, Ergebnisberichte, Stellungnahmen (2,500+… |
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 Schaffhauser Verwaltungsrechtspflege (Schaffhausen VRG and JG; abbreviation 'VRG SH' / 'JG SH'). For the… |
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 quotes), Boolean operators (AND, OR, NOT), prefix matching (word*), docket lookup (6B_1234/2025)… |
search_laws | Use this tool to find STATUTE ARTICLES by topic — federal (Fedlex mirror) AND cantonal (all 26 cantons; LexFind with canton=, else a local copy), interleaved. Not for whole laws by name (search_legislation) or court decisions (search_decisions). BM25-ranked per corpus, merged by interleaving so… |
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'). Not for article-level topic search (search_laws) or the core federal codes (get_law is instant… |
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, and nothing else. For any other law this returns 0 hits, which means 'outside this index', not 'no… |
search_practice | Use this tool for federal ADMINISTRATIVE PRACTICE (Verwaltungspraxis): Wegleitungen, Kreisschreiben, Weisungen, Rundschreiben — agency guidance, not court decisions. 11,700+ documents: BSV (AHV/IV/EL/EO/FamZ/BVG Wegleitungen, Kreisschreiben, Mitteilungen, every version), OAK BV (BVG Weisungen… |
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), dissertations and theses from Swiss university repositories, and federal legal-policy reports. Returns… |
In its maker's words
1M+ Swiss court decisions, statutes & doctrine with citation graph (DE/FR/IT). CC0, free, 42 tools.
- Website
- opencaselaw.ch
- Source
- github.com/jonashertner/caselaw-repo-1
- Publisher
- opencaselaw.ch
- Listed from
- the official MCP Registry as
ch.opencaselaw/swiss-caselaw - Version
- 1.3.0, updated 30 Jul 2026
- Kinds of work
- Law, tax and government, Search and research, Documents and files
The domain it lives on
- opencaselaw.ch
- its home page is a working site
From our own crawl of domain names: registry records and the home page as our crawler last saw it.
Every call we made
| When | What happened | Time |
|---|---|---|
| Answered | 1184 ms | |
| Answered | 1340 ms | |
| Answered | 572 ms | |
| Answered | 572 ms |
Next door
Is this your bot? Claim its address to add a verified badge and keep the listing current.