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Ă€tze
  • zurich_get_dataset – VollstĂ€ndige Metadaten und Download-URLs eines Datensatzes
  • zurich_datastore_query – Tabellarische Daten direkt abfragen (Filter, Sortierung)
  • zurich_datastore_sql – SQL-Abfragen auf dem DataStore
  • zurich_list_categories – 19 thematische Kategorien durchsuchen
  • zurich_list_tags – Tags fĂŒr thematische Suche

Echtzeit-Umweltdaten

  • zurich_weather_live – đŸŒ€ïž Aktuelle Wetterdaten (Temperatur, Feuchte, Druck, Regen) von 5 UGZ-Stationen
  • zurich_air_quality – đŸŒŹïž Live-LuftqualitĂ€t (NO₂, O₃, PM10, PM2.5) mit WHO-Grenzwerten
  • zurich_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 auflisten
  • zurich_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, Datenstruktur
  • zurich_catalog_stats – Katalog-Übersicht mit Statistiken
  • zurich_find_school_data – Kuratierte Suche nach schulrelevanten DatensĂ€tzen

MCP Resources

  • zurich://dataset/{name} – Datensatz-Metadaten
  • zurich://category/{group_id} – Kategorie-Details
  • zurich://parking – Aktuelle Parkplatzdaten
  • zurich://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

APIEndpointDaten
CKANdata.stadt-zuerich.ch/api/3/900+ Open Data DatensÀtze
Geoportal WFSogd.stadt-zuerich.ch/wfs/geoportal14 Geodaten-Layer (GeoJSON)
Paris APIgemeinderat-zuerich.ch/apiParlamentsgeschÀfte & Mitglieder
ZĂŒrich Tourismuszuerich.com/en/api/v2/dataAttraktionen, Restaurants, Hotels
SPARQLld.stadt-zuerich.ch/queryLinked Open Data / Statistiken
ParkenDDapi.parkendd.de/ZuerichEchtzeit-Parkplatzbelegung

📊 VerfĂŒgbare Datenkategorien

KategorieID
Arbeit und Erwerbarbeit-und-erwerb
Basiskartenbasiskarten
Bauen und Wohnenbauen-und-wohnen
Bevölkerungbevolkerung
Bildungbildung
Energieenergie
Finanzenfinanzen
Freizeitfreizeit
Gesundheitgesundheit
KriminalitÀtkriminalitat
Kulturkultur
MobilitÀtmobilitat
Politikpolitik
Preisepreise
Sozialessoziales
Tourismustourismus
Umweltumwelt
Verwaltungverwaltung
Volkswirtschaftvolkswirtschaft

📍 VerfĂŒgbare Geo-Layer

Layer-IDBeschreibung
schulanlagenSchulstandorte (KindergÀrten, SchulhÀuser, Horte)
schulkreiseSchulkreis-Grenzen
schulwegeSchulwege und sichere Routen
stadtkreiseStadtkreis-Grenzen
quartiereStatistische Quartiere
spielplaetzeSpielplÀtze und Spielanlagen
sportanlagenSportanlagen und SchwimmbÀder
klimadatenKlimadaten (Temperaturen, Hitzeinseln)
veloparkierungVeloparkierungs-Anlagen
lehrpfadeLehrpfade und Bildungswege
familienberatungFamilienberatungs-Treffpunkte
kreisbueroKreisbĂŒros der Stadt ZĂŒrich
sammelstelleAbfall-Sammelstellen
zweiradparkierungZweiradparkierung

đŸ—ïž 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

Related Servers