Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
Entscheidsuche — Schweizer Gerichtsentscheide logo

Entscheidsuche — Schweizer Gerichtsentscheide

entscheidsuche/entscheidsuche-mcp
2 starsUpdated 2026-06-15Community

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Suche in Schweizer Gerichtsentscheiden aller Instanzen (Bund, Kantone) in DE/FR/IT.

README.md

entscheidsuche-mcp

MCP-Server für die offene Schweizer Rechtsprechung (Beta) — Volltextsuche und Volltextzugriff auf publizierte Gerichtsentscheide aller Schweizer Instanzen (Bundesgerichte, kantonale Gerichte, Verwaltungsbehörden, Strafbefehle) in Deutsch, Französisch und Italienisch — über das Model Context Protocol.

MCP Server for Swiss case law (beta). Search and retrieve published court decisions from all Swiss instances (federal courts, all 26 cantons, administrative authorities, penal orders) in German, French, and Italian. Operated as open Swiss legal data infrastructure by the non-profit association entscheidsuche.ch, tax-exempt in Switzerland since 2020.

Öffentlicher Endpunkt: https://mcp.entscheidsuche.ch/mcp (Streamable HTTP, ohne Authentifizierung)

Landing Page für Endnutzer: mcp.entscheidsuche.ch — dort steht alles Nötige zur Einrichtung in Claude.ai, ChatGPT, Cursor, VS Code, Claude Desktop und anderen Clients. Dieses Repository richtet sich primär an Entwickler, Drittanwendungen und Selbst-Betreiber.

![Lizenz Code](#lizenz) ![Daten](https://entscheidsuche.ch) ![Status](https://mcp.entscheidsuche.ch) ![Betrieb](https://entscheidsuche.ch)

---

Inhalt

Über den MCP-Server

Schweizer Gerichtsentscheide sind formal öffentlich, faktisch aber über mehr als 26 kantonale Portale, mehrere Bundesgerichte und unterschiedlich strukturierte Veröffentlichungsformate verteilt. Der Verein entscheidsuche.ch sammelt diese Entscheide seit 2017 ein, indexiert sie volltextlich und macht sie zugänglich. Eine Lizenz gibt es nicht, da Gerichtsentscheide nicht dem Urheberrecht unterstehen. Dieser MCP-Server bringt diesen Bestand zu KI-Assistenten und programmatischen Clients.

Was den Server unterscheidet

  • Betrieben vom gemeinnützigen Verein entscheidsuche.ch (gegründet

2017 in Landquart GR, seit 2020 in Bern als gemeinnütziger Zweck steuerbefreit) — kollektiv getragene Schweizer Rechtsdaten-Infrastruktur, kein Bastelprojekt

  • Eigener Datenbestand: tägliche Scrapes direkt aus den

Originalquellen aller Schweizer Gerichte. Enthält auch Entscheide, die von Behörden nicht oder nicht in geeigneter Form publiziert werden und über die Upload-Funktion (seit 2021) eingereicht wurden, darunter Strafbefehle

  • Drei Amtssprachen (DE / FR / IT) mit gezieltem Sprachfilter und

sprachübergreifender Suche

  • Offen — keine Authentifizierung, kein API-Key, lizenzfrei

Tools

| Tool | Zweck | | --- | --- | | search | Volltextsuche mit Lucene-Syntax. Filter nach Entscheiddatum, Scrape-Datum, Hierarchie (Kanton / Gericht / Kammer) und Sprache. Sortierung nach Relevanz, Entscheiddatum oder Scrape-Datum. Paginierung über next_cursor / search_after. Aggregationen für Facetten-Auswertung. | | search_by_case_number | Exakte Phrasensuche nach Geschäftsnummern, Aktenzeichen und BGE-Zitaten (z.B. BGE 142 III 1, 6B_1234/2025, 5A_396/2015). Setzt die Nummer automatisch in Anführungszeichen. | | fetch_document | Vollständigen Entscheid samt Volltext anhand der ID abrufen. | | list_hierarchy | Hierarchie-IDs (Bund / Kanton / Gericht / Kammer) mit Trefferzahlen. | | list_facets | Hierarchischer Facetten-Baum mit lokalisierten Labels in DE/FR/IT. | | server_info | Versions- und Konfigurationsinformationen. |

Vollständige Schnittstellenbeschreibung mit allen Parametern, Filtern, Rückgabe-Schemata und Beispielen: docs/API.md.

Suchsyntax — Cheatsheet

| Aufgabe | Beispiel | | --- | --- | | Volltext, alle Begriffe (AND) | Mietzins Kündigung | | Phrase, exakte Reihenfolge | "fristlose Kündigung" | | Geschäftsnummer | "BGE 142 III 1" | | OR | Mietzins OR Pachtzins | | Negation | Mietzins NOT Erhöhung | | Wildcard | Mietz* | | Feld-Suche | title.de:"Kündigung" |

Standardverknüpfung zwischen Wörtern ist AND. Gesucht wird in title, abstract, meta, attachment.content und reference.

language und sort sind optional. Ohne language erfolgt keine Spracheinschränkung — der Server liefert das erste vorhandene Sprachfeld zurück (de → fr → it). Ohne sort wird nach Relevanz sortiert. Zur expliziten Sprachfilterung dient language_filter. Erlaubte Sprachen: de, fr, it.

Schnelleinbindung in MCP-Clients

Ausführliche, client-spezifische Anleitungen mit Voraussetzungen (Tarif-Anforderungen für claude.ai und ChatGPT, Konfigurations-Pfade) stehen auf der Landing Page und in docs/CLIENTS.md. Im Wesentlichen:

Claude Code (CLI)

claude mcp add --transport http entscheidsuche https://mcp.entscheidsuche.ch/mcp

Cursor / Windsurf / VS Code / Generisch (mcp.json)

{
  "mcpServers": {
    "entscheidsuche": {
      "url": "https://mcp.entscheidsuche.ch/mcp"
    }
  }
}

Claude Desktop (stdio-only, daher über die mcp-remote-Bridge):

{
  "mcpServers": {
    "entscheidsuche": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.entscheidsuche.ch/mcp"]
    }
  }
}

MCP Inspector zum Testen

npx @modelcontextprotocol/inspector https://mcp.entscheidsuche.ch/mcp

Hinweis: Nicht jede Client-Anleitung ist vollständig durchgespielt; Tarife, Tool-Listen und Konfigurations-Pfade ändern sich bei Anthropic, OpenAI und anderen Anbietern regelmässig. Bei Abweichungen gilt die offizielle Doku des jeweiligen Clients — Rückmeldungen bitte als Issue oder PR.

Lokale Entwicklung

git clone https://github.com/entscheidsuche/entscheidsuche-mcp.git
cd entscheidsuche-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'

# Server starten — Streamable HTTP auf 127.0.0.1:8765/mcp
python -m entscheidsuche_mcp

# Alternative: stdio (für lokale CLI-Clients)
python -m entscheidsuche_mcp --transport stdio

Konfiguration (Umgebungsvariablen)

Vollständige Liste in .env.example. Die wichtigsten:

| Variable | Default | Bedeutung | | --- | --- | --- | | ENTSCHEIDSUCHE_ES_URL | https://entscheidsuche.pansoft.de:9200/entscheidsuche.v2-*/_search | Elasticsearch-Endpoint | | ENTSCHEIDSUCHE_FACETS_URL | https://www.recherche.histoirerurale.ch/Facetten.json | Facetten-Hierarchie | | HOST / PORT | 127.0.0.1 / 8765 | Listen-Adresse | | MCP_PATH | /mcp | HTTP-Pfad | | MCP_STATELESS_HTTP | true | Streamable HTTP ohne Session-Pflicht | | MCP_DNS_REBINDING_PROTECTION | true | Host-/Origin-Prüfung | | PUBLIC_BASE_URL | https://mcp.entscheidsuche.ch | Öffentliche Basis-URL | | LOG_LEVEL | INFO | Loglevel |

Schnelltest mit curl

# initialize
curl -N -H 'Content-Type: application/json' \
     -H 'Accept: application/json, text/event-stream' \
     http://localhost:8765/mcp \
     -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'

# tools/list
curl -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
     http://localhost:8765/mcp \
     -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# search
curl -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
     http://localhost:8765/mcp \
     -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search","arguments":{"query":"\"BGE 142 III 1\"","language":"de","size":3}}}'

Komfortabler ist ein echter MCP-Client (MCP Inspector, Claude Code) — der übernimmt die Streamable-HTTP-Session-Verwaltung automatisch.

Eigene Instanz deployen (Debian)

Das Repository enthält eine systemd-Unit, einen nginx-vHost und ein Installations-Script. Damit kann jeder einen eigenen MCP-Endpoint gegen den gleichen Elasticsearch-Index betreiben.

ssh root@your-server.example
git clone https://github.com/entscheidsuche/entscheidsuche-mcp.git /opt/entscheidsuche-mcp
sudo bash /opt/entscheidsuche-mcp/deploy/install.sh

# TLS-Zertifikat
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d mcp.example.org

Das Script legt den Systemnutzer entscheidsuche an, baut ein venv, kopiert .env.example nach /etc/entscheidsuche-mcp.env, installiert die systemd-Unit und den nginx-vHost.

Status prüfen:

systemctl status entscheidsuche-mcp
journalctl -u entscheidsuche-mcp -f

Nutzungsstatistik (/statistik)

Der MCP-Server liefert unter /statistik eine selbst-enthaltene HTML-Seite mit Tageszahlen, Top-Tools, KI-Client-Klassifizierung (clientInfo.name), Stunden-Sparklines und Methoden-Verteilung. Wird bei jedem Aufruf live generiert; Vortage werden in einem JSON-Cache (/var/lib/entscheidsuche-mcp/stats-cache.json) fixiert.

Basic Auth via Env-Variablen (in /etc/entscheidsuche-mcp.env):

ESC_STATS_USER=admin
ESC_STATS_PASS=DEIN_PASSWORT

Sind beide leer, ist /statistik ungeschützt zugänglich (Dev-Modus). Der Authorization-Header wird vom nginx-vHost unverändert an den Python-Server durchgereicht; die Prüfung passiert dort per hmac.compare_digest gegen die Env-Variablen.

Inhalte sind reine Aggregate. Mit ESC_ACCESS_LOG_ARGS_MAX=0 (Default im .env.example) werden Tool-Argumente — also die Suchqueries der Nutzer — gar nicht erst geloggt.

Datenquelle: /var/log/entscheidsuche-mcp/access.log (geschrieben von der entscheidsuche_mcp.access-Middleware). Logrotation z. B. via /etc/logrotate.d/entscheidsuche-mcp einrichten:

/var/log/entscheidsuche-mcp/access.log {
    weekly
    rotate 12
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}

copytruncate ist wichtig, damit der Logger weiter in die rotierte Datei schreibt, ohne dass der Server neu gestartet werden muss.

Architektur

MCP-Client (Claude, ChatGPT, Cursor, ...)
       │  Streamable HTTP (JSON-RPC)
       ▼
mcp.entscheidsuche.ch
       │  TLS, nginx Reverse Proxy
       ▼
127.0.0.1:8765/mcp  ← uvicorn + FastMCP
       │  HTTPS
       ▼
Elasticsearch (entscheidsuche.v2-*)

Implementierung: Python + FastMCP.

Trägerverein

Der MCP-Server, die zugrundeliegende Plattform und der Datenbestand werden vom Verein entscheidsuche.ch betrieben.

  • Gegründet: 2017 in Landquart (GR)
  • Vereinszweck: Die Rechtsprechung schweizerischer Gerichte für

jedermann durchsuchbar und zugreifbar machen (Statuten)

  • Gemeinnützigkeit: Seit 2020 vom Kanton Bern wegen Verfolgung

gemeinnütziger Zwecke von der Steuerpflicht befreit

  • Vorstand: Jörn Erbguth, Daniel Kettiger, Claudia Schreiber
  • Kontakt: info@entscheidsuche.ch
  • Postadresse: Verein entscheidsuche.ch, 3000 Bern
  • Spendenkonto: Postfinance IBAN CH04 0900 0000 1412 0685 4,

Verein entscheidsuche.ch, 8000 Zürich (Spendenquittung auf Anfrage)

  • Mitgliedschaft: 100 CHF/Jahr für natürliche Personen,

1'000 CHF/Jahr für institutionelle Mitglieder

Die Plattform wurde 2018–2020 durch eine Crowdfunding-Aktion auf wemakeit finanziert. Eine kurze Vorstellung des Projekts erschien im Juli 2021 in der Zeitschrift für Zivilprozess- und Zwangsvollstreckungsrecht (ZZZ).

Die Scraper, mit denen die Entscheide aus den Originalquellen geholt werden, sind ebenfalls open source — siehe Repositories des Vereins auf GitHub.

Beitragen

Issues, Pull Requests und Vorschläge sind willkommen, insbesondere:

  • Fehlerberichte zur Suche oder zur API
  • Erweiterungen der MCP-Tools (z.B. Aggregations-/Statistik-Tools,

Zitationsgraph)

Bei Datenfehlern oder fehlenden Entscheiden bitte direkt an info@entscheidsuche.ch — der Datenbestand wird zentral gepflegt, nicht in diesem Repo.

Lizenz

Code: MIT

Daten: Die zugrundeliegenden Gerichtsentscheide sind amtliche Werke und stehen gemäss URG Art. 5 nicht unter Urheberrechtsschutz. Die strukturierten Aufbereitungen des Vereins entscheidsuche.ch sind frei nutzbar — Details unter entscheidsuche.ch.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.