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
相关服务器
KnowledgeGraph MCP Server
Enables persistent knowledge storage for Claude using a knowledge graph with multiple database backends like PostgreSQL and SQLite.
Qdrant
Implement semantic memory layer on top of the Qdrant vector search engine
DX MCP Server
Query your organizational data in DX Data Cloud using natural language.
Simple Loki MCP Server
Query Grafana Loki logs using logcli with an automatic fallback to the HTTP API.
Tabular MCP Server
An MCP server for local Tabular Models like PowerBI. It allows LLM clients to debug, analyze, and compose DAX queries by connecting to a local Tabular model instance.
Simple PostgreSQL MCP Server
An MCP server for interacting with PostgreSQL databases using tools, resources, and prompts.
MCP OpenDART
Access financial data from Korea's OpenDART (Data Analysis, Retrieval and Transfer System) for AI language models.
CData Avalara AvaTax
A read-only MCP server for querying live Avalara AvaTax data. Powered by the CData JDBC Driver.
Google Analytics MCP Server by CData
A read-only MCP server for querying live Google Analytics data using LLMs. Powered by CData.
SCB MCP
Connect LLMs or AI-chatbots to let them query and interact with official data and statistics from SCB (Sweden Statistics)