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
関連サーバー
MCP Oracle Server
A server that provides tools to interact with an Oracle database.
Directus MCP Server
An MCP server for Directus CMS, enabling AI clients to interact with the Directus API.
Exact Online MCP Server by CData
A read-only MCP server by CData that enables LLMs to query live data from Exact Online.
Trino MCP Server
Securely interact with Trino databases to list tables, read data, and execute SQL queries.
MCP Vertica
A server for managing and querying Vertica databases, including connection, schema, and security management.
AnalyticDB for MySQL
An interface for AI agents to interact with AnalyticDB for MySQL databases, allowing them to retrieve metadata and execute SQL operations.
ClickHouse
An MCP server for interacting with a ClickHouse database.
MCP Oracle Database Server
A server for full integration with Oracle Database. Requires Oracle Instant Client libraries.
CData SAP Netweaver Gateway
Connect to SAP Netweaver Gateway data using CData's MCP Server. Requires a separately licensed CData JDBC Driver.
OracleDB MCP Server
An MCP server for interacting with Oracle Database, enabling SQL generation and data retrieval via LLM prompts.