Swiss Law Local Search
README.md
# Swiss Law Local Search — MCP Server
Offline full-text search across **35,000+ Swiss laws** from all 26 cantons + federal level.
Built on the [rcds/swiss_legislation](https://huggingface.co/datasets/rcds/swiss_legislation) HuggingFace dataset (sourced from LexFind.ch), indexed locally with SQLite FTS5.
## Architecture
```
HuggingFace dataset (35k laws)
│
▼ build_index.py (run once)
swiss_law.db (SQLite + FTS5 full-text index)
│
▼ search_client.py
server.py (MCP tools)
│
▼ stdio / SSE
Claude Desktop / Cowork
```
## Setup
```bash
cd lexfind-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Build the index (downloads ~2-3 GB, takes 5-10 min)
python build_index.py
```
## Add to Claude Desktop
```json
{
"mcpServers": {
"swiss-law": {
"command": "/ABSOLUTE/PATH/TO/lexfind-mcp/.venv/bin/python3",
"args": ["/ABSOLUTE/PATH/TO/lexfind-mcp/server.py"]
}
}
}
```
## Tools
| Tool | What | Example |
|---|---|---|
| `search_laws` | Full-text search | `search_laws("Raumplanung", canton="zh")` |
| `get_law` | Metadata by ID | `get_law(1234)` |
| `get_law_text` | Full text | `get_law_text(1234)` |
| `get_article` | Single article | `get_article(1234, "22")` |
| `list_cantons` | Canton overview | `list_cantons()` |
## FTS5 query syntax
The search supports SQLite FTS5 syntax:
- `Raumplanung` — simple term match
- `Planungs- und Baugesetz` — implicit AND
- `"öffentliches Recht"` — exact phrase
- `title:Baugesetz` — search only in title column
- `Raumplan*` — prefix match
- `Baugesetz OR Planungsgesetz` — boolean OR
- `canton:zh AND Bauordnung` — combine with column filter
## Combining with the Fedlex MCP
This server and the Fedlex MCP server complement each other:
- **This server**: fast offline search, covers all cantons, has full text
- **Fedlex MCP**: live data, amendment history, FRBR versioning, legal taxonomy
You can run both in Claude Desktop simultaneously.
## Updating the data
The HuggingFace dataset is a snapshot. To refresh:
```bash
python build_index.py # will ask to rebuild if DB exists
```
## License
Data: CC-BY-SA-4.0 (from HuggingFace dataset)
Code: MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues