Suche in Schweizer Gerichtsentscheiden aller Instanzen (Bund, Kantone) in DE/FR/IT.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch a single Swiss court decision, judgment or Federal Supreme Court decision by its document ID (`_id`). Returns the indexed full text of the decision together with metadata, title, abstract and links. Use this when the full decision should be read or processed after a search. Note: for very long decisions the indexed text is capped at 100,000 characters; if `text_truncated` is true, the complete document is available at `document_url`.
Document ID (e.g. 'CH_BGer_001_5A_123_2024_2024-06-15').
Optional preferred language for title/abstract. If omitted, the first available language field is returned.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Fetch a single Swiss court decision, judgment or Federal Supreme Court decision by its document ID (`_id`). Returns the indexed full text of the decision together with metadata, title, abstract and links. Use this when the full decision should be read or processed after a search. Note: for very long decisions the indexed text is capped at 100,000 characters; if `text_truncated` is true, the complete document is available at `document_url`.
| Argument | Type | Description |
|---|---|---|
| id* | string | Document ID (e.g. 'CH_BGer_001_5A_123_2024_2024-06-15'). |
| language | any | Optional preferred language for title/abstract. If omitted, the first available language field is returned. |
{
"type": "object",
"$defs": {
"Language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"title": "Language",
"description": "Verfügbare Sprachen der Entscheide."
}
},
"title": "fetch_documentArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id",
"description": "Document ID (e.g. 'CH_BGer_001_5A_123_2024_2024-06-15')."
},
"language": {
"anyOf": [
{
"$ref": "#/$defs/Language"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional preferred language for title/abstract. If omitted, the first available language field is returned."
}
}
}Hierarchical facet tree with localized labels for cantons, courts and chambers. The `id` fields can be used in the `hierarchy` filter of the search.
No arguments.
{
"type": "object",
"title": "list_facetsArguments",
"properties": {}
}Returns the available hierarchy IDs for Swiss cantons, courts and chambers together with document counts. Useful for narrowing subsequent searches to the Federal Supreme Court, cantonal courts, Obergerichte or Verwaltungsgerichte.
| Argument | Type | Description |
|---|---|---|
| size | integer | Maximum number of entries. |
| query | string | Optional full-text query. |
{
"type": "object",
"title": "list_hierarchyArguments",
"properties": {
"size": {
"type": "integer",
"title": "Size",
"default": 1000,
"maximum": 10000,
"minimum": 1,
"description": "Maximum number of entries."
},
"query": {
"type": "string",
"title": "Query",
"default": "*",
"description": "Optional full-text query."
}
}
}Full-text search across Swiss court judgments, court decisions and case law from entscheidsuche.ch. Covers decisions of the Federal Supreme Court (BGer, BGE) and cantonal courts such as Kantonsgericht, Obergericht or Verwaltungsgericht. Typical use cases: - Search Federal Supreme Court judgments, BGE or rulings by topic - Find Swiss case law on tenancy law, ZGB, OR, StGB or BV - Verify case numbers, judgment numbers or citations - Related tools: fetch_document, search_by_case_number, list_hierarchy, list_facets Search syntax (Lucene query string): - Phrase / case-number search: "BGE 142 III 1" (in quotes) - Boolean operators: AND, OR, NOT (or +, -) - Wildcards: * and ? - The default operator between terms is AND. Filters are combined with AND. Use hierarchy IDs from `list_hierarchy` or `list_facets`. Pagination: after the first call, pass the `next_cursor` value from the response as `search_after` in the next call.
| Argument | Type | Description |
|---|---|---|
| size | integer | Results per page (1–100). |
| sort | string | Optional sort order: 'relevance' | 'date' (decision date) | 'scrapedate'. Default is 'relevance'. |
| query | string | Full-text query. "..." for phrases, AND/OR/NOT for Boolean operators, * and ? for wildcards. "*" matches everything. |
| language | any | Optional preferred language for highlighting/display (de, fr, it). If omitted, the first available language field is returned — this does NOT filter; use `language_filter` for that. |
| hierarchy | any | List of hierarchy IDs (canton/court/chamber). Multiple IDs are combined with OR; with other filters, AND. |
Specialized search for case numbers, judgment numbers and BGE citations in Swiss court judgments. This tool automatically wraps the given case number in quotes and runs an exact phrase search, for example for 'BGE 142 III 1', '5A_396/2015' or similar references from the Federal Supreme Court (BGer, BGE) and cantonal case law.
| Argument | Type | Description |
|---|---|---|
| size | integer | Results per page (1–100). |
| sort | string | Optional sort order: 'relevance' | 'date' (decision date) | 'scrapedate'. Default is 'relevance'. |
| language | any | Optional preferred language for highlighting/display (de, fr, it). If omitted, the first available language field is returned — this does NOT filter; use `language_filter` for that. |
| hierarchy | any | Optional hierarchy IDs for canton/court/chamber. |
| case_number* | string | Case number (docket reference), BGE citation or judgment number, e.g. 'BGE 142 III 1' or '5A_396/2015'. |
| search_after | any | Cursor from `next_cursor` of the previous response. |
| scrape_date_to | any | Optional upper bound for the scrape date (YYYY-MM-DD). |
| language_filter |
Version info and configured endpoint URLs of the MCP server for Swiss case law and court decisions.
No arguments.
{
"type": "object",
"title": "server_infoArguments",
"properties": {}
}| search_after | any | Cursor from `next_cursor` of the previous response. |
| scrape_date_to | any | Upper bound for the scrape date (YYYY-MM-DD, inclusive). |
| language_filter | any | Filter by document language(s). |
| decision_date_to | any | Upper bound for the decision date (YYYY-MM-DD, inclusive). |
| scrape_date_from | any | Lower bound for the scrape date (YYYY-MM-DD, inclusive). |
| decision_date_from | any | Lower bound for the decision date (YYYY-MM-DD, inclusive). |
| include_aggregations | boolean | Include aggregations (distributions over the results). |
{
"type": "object",
"$defs": {
"Language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"title": "Language",
"description": "Verfügbare Sprachen der Entscheide."
}
},
"title": "searchArguments",
"properties": {
"size": {
"type": "integer",
"title": "Size",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Results per page (1–100)."
},
"sort": {
"enum": [
"relevance",
"date",
"scrapedate"
],
"type": "string",
"title": "Sort",
"default": "relevance",
"description": "Optional sort order: 'relevance' | 'date' (decision date) | 'scrapedate'. Default is 'relevance'."
},
"query": {
"type": "string",
"title": "Query",
"default": "*",
"description": "Full-text query. \"...\" for phrases, AND/OR/NOT for Boolean operators, * and ? for wildcards. \"*\" matches everything."
},
"language": {
"anyOf": [
{
"$ref": "#/$defs/Language"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional preferred language for highlighting/display (de, fr, it). If omitted, the first available language field is returned — this does NOT filter; use `language_filter` for that."
},
"hierarchy": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Hierarchy",
"default": null,
"description": "List of hierarchy IDs (canton/court/chamber). Multiple IDs are combined with OR; with other filters, AND."
},
"search_after": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"title": "Search After",
"default": null,
"description": "Cursor from `next_cursor` of the previous response."
},
"scrape_date_to": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Scrape Date To",
"default": null,
"description": "Upper bound for the scrape date (YYYY-MM-DD, inclusive)."
},
"language_filter": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/Language"
}
},
{
"type": "null"
}
],
"title": "Language Filter",
"default": null,
"description": "Filter by document language(s)."
},
"decision_date_to": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Decision Date To",
"default": null,
"description": "Upper bound for the decision date (YYYY-MM-DD, inclusive)."
},
"scrape_date_from": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Scrape Date From",
"default": null,
"description": "Lower bound for the scrape date (YYYY-MM-DD, inclusive)."
},
"decision_date_from": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Decision Date From",
"default": null,
"description": "Lower bound for the decision date (YYYY-MM-DD, inclusive)."
},
"include_aggregations": {
"type": "boolean",
"title": "Include Aggregations",
"default": false,
"description": "Include aggregations (distributions over the results)."
}
}
}| any |
| Optional filter by document language(s). |
| decision_date_to | any | Optional upper bound for the decision date (YYYY-MM-DD). |
| scrape_date_from | any | Optional lower bound for the scrape date (YYYY-MM-DD). |
| decision_date_from | any | Optional lower bound for the decision date (YYYY-MM-DD). |
| include_aggregations | boolean | Optionally include aggregations. |
{
"type": "object",
"$defs": {
"Language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"title": "Language",
"description": "Verfügbare Sprachen der Entscheide."
}
},
"title": "search_by_case_numberArguments",
"required": [
"case_number"
],
"properties": {
"size": {
"type": "integer",
"title": "Size",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Results per page (1–100)."
},
"sort": {
"enum": [
"relevance",
"date",
"scrapedate"
],
"type": "string",
"title": "Sort",
"default": "relevance",
"description": "Optional sort order: 'relevance' | 'date' (decision date) | 'scrapedate'. Default is 'relevance'."
},
"language": {
"anyOf": [
{
"$ref": "#/$defs/Language"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional preferred language for highlighting/display (de, fr, it). If omitted, the first available language field is returned — this does NOT filter; use `language_filter` for that."
},
"hierarchy": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Hierarchy",
"default": null,
"description": "Optional hierarchy IDs for canton/court/chamber."
},
"case_number": {
"type": "string",
"title": "Case Number",
"description": "Case number (docket reference), BGE citation or judgment number, e.g. 'BGE 142 III 1' or '5A_396/2015'."
},
"search_after": {
"anyOf": [
{
"type": "array",
"items": {}
},
{
"type": "null"
}
],
"title": "Search After",
"default": null,
"description": "Cursor from `next_cursor` of the previous response."
},
"scrape_date_to": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Scrape Date To",
"default": null,
"description": "Optional upper bound for the scrape date (YYYY-MM-DD)."
},
"language_filter": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/Language"
}
},
{
"type": "null"
}
],
"title": "Language Filter",
"default": null,
"description": "Optional filter by document language(s)."
},
"decision_date_to": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Decision Date To",
"default": null,
"description": "Optional upper bound for the decision date (YYYY-MM-DD)."
},
"scrape_date_from": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Scrape Date From",
"default": null,
"description": "Optional lower bound for the scrape date (YYYY-MM-DD)."
},
"decision_date_from": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Decision Date From",
"default": null,
"description": "Optional lower bound for the decision date (YYYY-MM-DD)."
},
"include_aggregations": {
"type": "boolean",
"title": "Include Aggregations",
"default": false,
"description": "Optionally include aggregations."
}
}
}