NestDaddy

OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine

ch.opencaselaw/swiss-caselaw · v1.3.0

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

Connect Remote server

Terminal
claude mcp add --transport http swiss-caselaw https://mcp.opencaselaw.ch/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "swiss-caselaw": {
      "url": "https://mcp.opencaselaw.ch/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "swiss-caselaw": {
      "type": "http",
      "url": "https://mcp.opencaselaw.ch/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://mcp.opencaselaw.ch/mcp

Tools 42 found in our last check

  • 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 pre…

  • 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 reso…

  • search_decisions

    Use this tool to find COURT DECISIONS (Rechtsprechung): 1,040,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 look…

  • 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_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 s…

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

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

  • 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. Bezirksgericht → Obergericht → Bundesgericht. Uses the is_prior_instance flag from decision…

  • 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 (`r…

  • 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 afte…

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

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

  • 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. PI…

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

  • 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 confid…

  • 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-B…

  • 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, Stellungna…

  • 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 ti…

  • 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 retrieve…

  • 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|con…

  • 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) quot…

  • 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 e…

  • 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 Botscha…

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

  • 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), tr…

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

  • 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 articl…

  • 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' / 'J…

  • 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-poli…

  • 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 open-access journal corpus (~90k statute references resolved from 9k full-text rec…

  • 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 extrac…

  • 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-federal, or OA-author-permitted-reuse are extracted. ND/all-rights-reserved record…

  • 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, Erlassent…

  • 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 th…

  • 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_l…

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

  • 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 for ADMINISTRATIVE PRACTICE (Verwaltungspraxis): Wegleitungen, Kreisschreiben, Weisungen, Rundschreiben, Empfehlungen — agency guidance, not court decisions. 13,000+ documents. Social insurance: BSV, OAK BV, BAG, SECO (ArG, AVIG). Tax and finance: ESTV, FINMA, MROS…

  • 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, issuin…

Details

Endpointhttps://mcp.opencaselaw.ch/mcp (Streamable HTTP)
Endpointhttps://mcp.opencaselaw.ch/sse (SSE)
First published30 Jul 2026
Last updated30 Jul 2026
Registry namech.opencaselaw/swiss-caselaw

More search and web servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.