MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine

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

Checks passed
15 / 22

0 failed · 7 not measured

Median response
164 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
42

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 147 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name swiss-caselaw.

  • Pass
    Lists tools

    tools/list returned 42 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 164 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 178 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    158 of 159 parameters have a description (99%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-07-30T23:19:08.32699Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using OpenCaseLaw — Swiss Caselaw, Statutes & Doctrine

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http opencaselaw-swiss-caselaw-statutes-doctrine https://mcp.opencaselaw.ch/mcp

Capabilities

Tools 42

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 dip at the end is publication lag, not a trend or a gap.

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

Discovered
browse_legislation_changes

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

Discovered
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, 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.

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

Discovered
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 must be answered (via the clarifications parameter) before the tool will provide a conclusion. Call again with clarifications to get the full analysis.

Discovered
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 clients should prefer `get_decision`.

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

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

Discovered
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`: share of terms found, null without a regeste). 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.

Discovered
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 cite any Erwägung — report no_match. Federal decisions only. Replaces the 'always-E.-3.1' guessing pattern.

Discovered
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 deterministically by regex + lookup against the canonical decision corpus, so resolved citations are always to decisions we hold.

Discovered
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).

Discovered
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, 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.

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

Discovered
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 table. Returns one entry per source — original Botschaft + any amendment Botschaften. All paragraphs are verbatim text to quote with `bbl_citation, S. {printed_page}`; printed_page null = cite without a pinpoint. Draft statute text comes apart in `draft_texts` and is not an explanation. 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.

Discovered
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 — never guess from key_erwaegungen alone.

Discovered
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 commentaries. With article: full text, authors, citation. Cantonal: the Kommentar zur Schaffhauser Verwaltungsrechtspflege (Meyer/Herrmann/Bilger, 2021; CC BY-SA text) for the Schaffhausen VRG (SHR 172.200) and JG (SHR 173.200), article by article with margin numbers — pass canton='SH' and abbreviation 'VRG' or 'JG' (or 'SH/VRG'). 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.

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

Discovered
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: 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.

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

Discovered
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) 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.

Discovered
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) includes its sub-Erwägungen in order, each also under `parts`. e_number: '1', '4.1', '5.2.1', …

Discovered
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 name (IPBPR, KRK, CISG) and former names (OG → BGG; as_of gives the old edition). Cantonal: live from LexFind, all 26 cantons, canton's language; `mirror_notice` marks an older local copy (say so), `lookup_failed` means unchecked, not absent. 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 Fedlex edition in force on that date (snapshot_date, link); always tell the user the edition date. PDF-only editions carry `text_status` 'heading_only'/'empty' = no article text; say so and give the Fedlex link. Examples: get_law(abbreviation='BV', article='8'); get_law(canton='ZH', sr_number='554.5', article='1').

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

Discovered
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 `doc_type`, with BBl citation, title, publication_date from Fedlex where available — `publication_date_source` 'bbl_year' means only the year — and Fedlex link); `vernehmlassungen` = the consultation procedures Fedlex links to the act, each with its Erläuternder Bericht, Vorlage, Ergebnisbericht and Stellungnahmen (with an article: the Erläuternder-Bericht passages on it); `amendment_refs` = the AS/BBl locators from the statute's footnotes. Empty `sources` means no digest, NOT that the law has no legislative history. Full text: search_botschaft. Nothing keyed to a provision: flagged `found: false` and lists `leading_cases`, a `doctrine` excerpt and `scholarship_citing_statute` instead — none of it legislative history.

Discovered
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 PDF URL. Long documents (circulars run to 140 pages) come in parts of 50,000 characters: when has_more is true, call again with offset=next_offset. Use search_practice first to discover the doc_id.

Discovered
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_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).

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

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

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

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

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

Discovered
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_decisions`, which exposes filters (court, canton, date, language) and richer metadata. Relevance-ranked, so not the way to the newest rulings: use search_decisions with sort='date_desc' or published_from, and expect the newest decision dates to trail today, since courts publish weeks to months after deciding.

Discovered
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+ procedures from Fedlex). Each hit is tagged `doc_type`; filter with doc_type, default all. Bundesblatt hits come in `results` (bbl_citation, title, publication_date from Fedlex where available — `publication_date_source` says whether it is Fedlex's date or only the BBl year — page, section, article anchor); Vernehmlassung passages come in `vernehmlassung_results` (or in `results` when doc_type is a Vernehmlassung type), with the whole paragraph `text`, PDF page, procedure title, dates, office and Fedlex ELI link. Use it when starting from a concept rather than an SR/article (get_article_purpose answers 'why does Art. X exist?'). Quote verbatim. No paragraph with every term: ranked OR, flagged `filters_relaxed`.

Discovered
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 full OA scholarship corpus (which includes all of these) use search_scholarship. Searches commentary text, titles, and article numbers. Returns ranked results with snippets, authors, links and each hit's source. Useful for finding doctrinal discussion of a legal concept across multiple laws.

Discovered
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 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. Newest decision dates: empty query + sort='date_desc' + court filter; they trail today by weeks or months because courts publish after they decide, which is the courts' lag, not this corpus's. Newly PUBLISHED decisions (alerts): published_from + sort='published_desc'. Not for statutes (search_laws), commentary (search_scholarship), or administrative guidance (search_practice).

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

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

Discovered
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 materials exist'. Each hit names its source message (bbl_ref, title, publication_date from Fedlex where available, with `publication_date_source`). Prefer search_botschaft, which covers all 14,600+ Federal Council messages plus Berichte, Stellungnahmen, committee reports, Erlassentwürfe and the Vernehmlassung documents (Erläuternde Berichte, Ergebnisberichte) verbatim (filter by doc_type), or get_materialien(law_code) for the documents linked to one statute.

Discovered
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, SIF. Company law and competition: WEKO, UEK, RAB, EHRA, Stiftungsaufsicht. Asylum: SEM. Environment: BAFU. SchKG: BJ + cantons. Criminal law: WOSTA, SSK-CPS, cantonal prosecutors, BA, BJ Rechtshilfe, concordats, NKVF. Land register and tenancy: EGBA, cantonal land registers, BWO tenancy decisions. Cantonal documents: canton=. UN: recommendations to Switzerland (un_uhri), General Comments (un_gc). Returns ranked excerpts; superseded versions collapse to the newest, for past conduct pass include_superseded=true. NOT covered: cantonal Sozialhilfe/SKOS, Prämienverbilligung — say so. UN complaint decisions: search_decisions(court='untb_*'). VPB/JAAC 1987–2017: search_decisions(court='ch_vb').

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

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected147 ms42
Connected180 ms42