Zurich Open Data MCP Server
Enables Claude, ChatGPT, and other MCP-compatible AI assistants to directly query 900+ datasets, geodata, parliamentary proceedings, tourism data, linked data, and real-time environmental and mobility information from the City of Zurich. 20 Tools, 6 Resources, 6 APIs.
🏙️ Zurich Open Data MCP Server
🌐 English | Deutsch
MCP (Model Context Protocol) Server für den KI-gestützten Zugriff auf Open Data der Stadt Zürich.
Ermöglicht Claude, ChatGPT und anderen MCP-kompatiblen KI-Assistenten den direkten Zugriff auf 900+ Datensätze, Geodaten, Parlamentsgeschäfte, Tourismusdaten, Linked Data und Echtzeit-Umwelt-/Mobilitätsinformationen der Stadt Zürich. 20 Tools, 6 Resources, 6 APIs.
✨ Features
CKAN Open Data (data.stadt-zuerich.ch)
zurich_search_datasets– Volltextsuche mit Solr-Syntax über 900+ Datensätzezurich_get_dataset– Vollständige Metadaten und Download-URLs eines Datensatzeszurich_datastore_query– Tabellarische Daten direkt abfragen (Filter, Sortierung)zurich_datastore_sql– SQL-Abfragen auf dem DataStorezurich_list_categories– 19 thematische Kategorien durchsuchenzurich_list_tags– Tags für thematische Suche
Echtzeit-Umweltdaten
zurich_weather_live– 🌤️ Aktuelle Wetterdaten (Temperatur, Feuchte, Druck, Regen) von 5 UGZ-Stationenzurich_air_quality– 🌬️ Live-Luftqualität (NO₂, O₃, PM10, PM2.5) mit WHO-Grenzwertenzurich_water_weather– 🌊 Zürichsee-Daten (Wassertemperatur, Pegel, Wind) alle 10 Min.
Echtzeit-Mobilitätsdaten
zurich_pedestrian_traffic– 🚶 Passantenfrequenzen Bahnhofstrasse (3 Standorte, stündlich)zurich_vbz_passengers– 🚊 VBZ-Fahrgastzahlen (800'000+ Datensätze, alle Linien/Haltestellen)zurich_parking_live– 🅿️ Echtzeit-Belegung von 36 Parkhäusern (ParkenDD)
Geoportal (WFS Geodaten)
zurich_geo_layers– 📍 14 verfügbare Geodaten-Layer auflistenzurich_geo_features– 📍 GeoJSON-Features abrufen (Schulanlagen, Quartiere, Spielplätze, Klimadaten u.v.m.)
Gemeinderat (Paris API)
zurich_parliament_search– 🏛️ Gemeinderatsgeschäfte durchsuchen (Interpellationen, Motionen, Postulate)zurich_parliament_members– 🏛️ Ratsmitglieder suchen (Partei, Kommissionen, Mandate)
Zürich Tourismus
zurich_tourism– 🏨 Attraktionen, Restaurants, Hotels, Events (Schema.org-Daten, 4 Sprachen)
Linked Data (SPARQL)
zurich_sparql– 📊 SPARQL-Abfragen auf dem statistischen Linked Data Endpoint
Analyse-Tools
zurich_analyze_datasets– Umfassende Analyse: Relevanz, Aktualität, Datenstrukturzurich_catalog_stats– Katalog-Übersicht mit Statistikenzurich_find_school_data– Kuratierte Suche nach schulrelevanten Datensätzen
MCP Resources
zurich://dataset/{name}– Datensatz-Metadatenzurich://category/{group_id}– Kategorie-Detailszurich://parking– Aktuelle Parkplatzdatenzurich://geo/{layer_id}– GeoJSON-Geodaten (14 Layer)zurich://tourism/categories– Tourismus-Kategorien
🚀 Installation
Voraussetzungen
- Python 3.11+
- pip oder uv
Installation
# Klonen
git clone https://github.com/schulamt-zuerich/zurich-opendata-mcp.git
cd zurich-opendata-mcp
# Installieren
pip install -e .
# Oder mit uv
uv pip install -e .
⚙️ Konfiguration
Claude Desktop
Editiere ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"zurich-opendata": {
"command": "python",
"args": ["-m", "zurich_opendata_mcp.server"],
"env": {}
}
}
}
Alternativ mit dem installierten Kommando:
{
"mcpServers": {
"zurich-opendata": {
"command": "zurich-opendata-mcp"
}
}
}
Claude Code (CLI)
claude mcp add zurich-opendata -- python -m zurich_opendata_mcp.server
Cursor / VS Code
Füge zu .vscode/settings.json hinzu:
{
"mcpServers": {
"zurich-opendata": {
"command": "python",
"args": ["-m", "zurich_opendata_mcp.server"]
}
}
}
💬 Beispiel-Abfragen
Nach der Konfiguration kannst du in Claude fragen:
Open Data
- «Welche Datensätze gibt es zu Schulen in Zürich?»
- «Zeig mir die Schulferien der Volksschule»
- «Analysiere die verfügbaren Geodaten»
Echtzeit-Daten
- «Wie warm ist es gerade in Zürich?» →
zurich_weather_live - «Wie ist die Luftqualität heute?» →
zurich_air_quality - «Was ist die aktuelle Wassertemperatur im Zürichsee?» →
zurich_water_weather - «Wie viele freie Parkplätze gibt es gerade?» →
zurich_parking_live - «Wie viele Leute sind gerade auf der Bahnhofstrasse?» →
zurich_pedestrian_traffic
Geodaten
- «Zeig mir alle Schulanlagen in Zürich als GeoJSON» →
zurich_geo_features - «Welche Geodaten-Layer gibt es?» →
zurich_geo_layers - «Wo sind die Spielplätze in Zürich?»
Gemeinderat
- «Welche Vorstösse zum Thema Schule gab es im Gemeinderat?» →
zurich_parliament_search - «Welche Ratsmitglieder gehören der SP an?» →
zurich_parliament_members
Tourismus & Statistik
- «Welche Restaurants empfiehlt Zürich Tourismus?» →
zurich_tourism - «Wie hat sich die Bevölkerung Zürichs entwickelt?» →
zurich_sparql
🔗 Datenquellen
| API | Endpoint | Daten |
|---|---|---|
| CKAN | data.stadt-zuerich.ch/api/3/ | 900+ Open Data Datensätze |
| Geoportal WFS | ogd.stadt-zuerich.ch/wfs/geoportal | 14 Geodaten-Layer (GeoJSON) |
| Paris API | gemeinderat-zuerich.ch/api | Parlamentsgeschäfte & Mitglieder |
| Zürich Tourismus | zuerich.com/en/api/v2/data | Attraktionen, Restaurants, Hotels |
| SPARQL | ld.stadt-zuerich.ch/query | Linked Open Data / Statistiken |
| ParkenDD | api.parkendd.de/Zuerich | Echtzeit-Parkplatzbelegung |
📊 Verfügbare Datenkategorien
| Kategorie | ID |
|---|---|
| Arbeit und Erwerb | arbeit-und-erwerb |
| Basiskarten | basiskarten |
| Bauen und Wohnen | bauen-und-wohnen |
| Bevölkerung | bevolkerung |
| Bildung | bildung |
| Energie | energie |
| Finanzen | finanzen |
| Freizeit | freizeit |
| Gesundheit | gesundheit |
| Kriminalität | kriminalitat |
| Kultur | kultur |
| Mobilität | mobilitat |
| Politik | politik |
| Preise | preise |
| Soziales | soziales |
| Tourismus | tourismus |
| Umwelt | umwelt |
| Verwaltung | verwaltung |
| Volkswirtschaft | volkswirtschaft |
📍 Verfügbare Geo-Layer
| Layer-ID | Beschreibung |
|---|---|
schulanlagen | Schulstandorte (Kindergärten, Schulhäuser, Horte) |
schulkreise | Schulkreis-Grenzen |
schulwege | Schulwege und sichere Routen |
stadtkreise | Stadtkreis-Grenzen |
quartiere | Statistische Quartiere |
spielplaetze | Spielplätze und Spielanlagen |
sportanlagen | Sportanlagen und Schwimmbäder |
klimadaten | Klimadaten (Temperaturen, Hitzeinseln) |
veloparkierung | Veloparkierungs-Anlagen |
lehrpfade | Lehrpfade und Bildungswege |
familienberatung | Familienberatungs-Treffpunkte |
kreisbuero | Kreisbüros der Stadt Zürich |
sammelstelle | Abfall-Sammelstellen |
zweiradparkierung | Zweiradparkierung |
🏗️ Projektstruktur
zurich-opendata-mcp/
├── src/zurich_opendata_mcp/
│ ├── __init__.py # Package
│ ├── server.py # MCP Server mit 20 Tools & 6 Resources
│ └── api_client.py # HTTP-Client für 6 APIs
├── tests/
│ └── test_integration.py # 20 Integrationstests
├── .github/workflows/ci.yml # GitHub Actions CI
├── pyproject.toml # Projekt-Konfiguration
├── README.md / README_EN.md # Dokumentation (DE/EN)
├── CONTRIBUTING.md / _EN.md # Beitragsrichtlinien (DE/EN)
├── CHANGELOG.md # Änderungsprotokoll
├── LICENSE # MIT
└── claude_desktop_config.json
🧪 Entwicklung
# Dev-Dependencies installieren
pip install -e ".[dev]"
# Integrationstests (gegen Live-APIs)
python tests/test_integration.py
# Linting
ruff check src/
📜 Lizenz
MIT License
🤝 Kontext
Alle genutzten Daten stehen unter offenen Lizenzen (CC0 / Open by Default seit 2021).
Powered by Model Context Protocol • 6 APIs • 20 Tools • 6 Resources
เซิร์ฟเวอร์ที่เกี่ยวข้อง
MongoDB Mongoose MCP
An MCP server for MongoDB with optional Mongoose schema support.
MCP Iceberg Catalog
An MCP server for interacting with Apache Iceberg catalogs and data lakes.
Open Census MCP Server
Access and query U.S. Census demographic data using natural language.
MCP Data Visualization Server
Generate interactive data visualizations from natural language queries on a DuckDB database.
Zero-Vector MCP
A high-performance vector database server for AI persona memory management.
Chroma
A vector database server powered by Chroma, enabling semantic document search, metadata filtering, and document management.
MCP-MySQL-Ops
You are working with the MCP MySQL Operations Server, a powerful tool that provides comprehensive MySQL database monitoring and analysis capabilities through natural language queries. This server offers 19 specialized tools for database administration, performance monitoring, and system analysis.
SolanaBot
Interact with the Solana blockchain to check balances, send SOL, and airdrop SOL.
COTI Blockchain MCP
Interact with the COTI blockchain for private token and NFT operations, including ERC20 and ERC721, with privacy features.
Pylar
Build custom MCP tools on any datasource and ship them to any agent builder from one control plane—using only SQL and a secure link.