Skip to main content
Glama
README.md
# Switzerland Legal Research MCP Server (`ch-legal-mcp`)

Model Context Protocol (MCP) server providing direct, read-only access to **Switzerland (CH)** legislation, multi-tier judicial decisions (First Instance, Regional/Cantonal/Appellate, and Supreme/Constitutional courts), and statutory citation verification for Claude Desktop, Cursor, and Antigravity.

---

## Quick Desktop Setup (No Command Line Required)

This package includes a graphical installer for legal practitioners who prefer not to use terminal commands or edit JSON configuration files manually.

1. **Download:** Click **`<> Code`** at the top right of this repository, select **`Download ZIP`**, and extract the folder to your computer.
2. **Run the Setup Utility:**
   - **Windows:** Double-click `Click_Here_To_Install_Windows.bat`
   - **macOS:** Double-click `Click_Here_To_Install_Mac.command`
3. **Connect:** Click **Install & Connect Automatically** in the setup window and restart Claude Desktop.

**System Integrity Note:** The setup utility operates strictly in read-only mode with respect to your personal files and documents. It installs an isolated Python environment inside the extracted folder and registers the server entry in your AI client configuration.

---

## Multi-Tier Judicial Hierarchy & Official Sources

This server indexes and queries decisions across the full judicial hierarchy of **Switzerland**, allowing practitioners to filter research by procedural stage:

| Judicial Tier | Covered Courts & Tribunals |
|:---|:---|
| **Tier 1 — First Instance** | Bezirksgerichte / Tribunaux de district / Preture & First-Instance Administrative Authorities across 26 Cantons |
| **Tier 2 — Regional / Cantonal / Appellate** | 26 Cantonal Supreme & Appellate Courts (Obergerichte / Kantonsgerichte / Tribunaux cantonaux) & Federal Courts (BVGer, BStGer, BPatGer) |
| **Tier 3 — Supreme & Constitutional** | Schweizerisches Bundesgericht / Tribunal fédéral / Tribunale federale (BGer / TF — bger.ch) |

### Primary Legal Portals

- **National Legislation Registry:** Fedlex - Swiss Federal Legislation API (fedlex.admin.ch) (`https://fedlex.data.admin.ch/sparqlendpoint`)
- **Multi-Tier Case Law Database:** Entscheidsuche.ch Unified Federal & 26-Canton Case Law Aggregator + BGer Eurospider (`https://entscheidsuche.ch`)
- **Supported Citation Format Example:** `BGE 149 III 12 or SR 220 (OR/CO)`

### Indexed Court & Regional Sub-Portals

| Sub-Portal Identifier (`sub_court`) | Official Endpoint / Registry |
|:---|:---|
| `entscheidsuche_26_cantons` | `https://entscheidsuche.ch` |
| `bundesgericht_bger` | `https://www.bger.ch` |
| `bvger_admin` | `https://www.bvger.ch` |

---

## Available MCP Tools

| Tool | Description |
|:---|:---|
| `search_legislation` | Searches enacted statutes, codes, decrees, and official gazette publications in Switzerland. |
| `search_case_law` | Searches national jurisprudence and European/ECLI-linked judgments for Switzerland. |
| `search_tiered_court_decisions` | Filters case law specifically by judicial instance (`first_instance`, `appellate_regional`, `supreme_constitutional`) or regional/cantonal court key (`sub_court`). |
| `list_court_hierarchy` | Returns the complete 3-tier court structure and registered sub-portal endpoints for Switzerland. |
| `get_legal_document_markdown` | Retrieves full statutory or judicial texts and converts them into clean Markdown. |
| `verify_citation` | Validates statutory and case law citations against official registries. |

---

<details>
<summary><b>Manual Configuration for Developers (Optional)</b></summary>

```json
{
  "mcpServers": {
    "ch-legal-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/jurisatlas/ch-legal-mcp",
        "ch-legal-mcp"
      ]
    }
  }
}
```
</details>