get_beschluesse_by_departement
Deprecated: alter Name von `zurich_strb_by_department` — bitte das
neue Tool verwenden. Dieser Alias verhält sich identisch und wird mit der
nächsten Major-Version entfernt.
Search the City of Zurich's open-data catalogue, run SELECT queries straight against its DataStore, and read live parking, weather, air-quality and pedestrian feeds.
LABSCO SUMMARY
The catalogue tools chain into the data tools: a search returns resource IDs and the SQL tool runs a SELECT straight against them, so nothing has to land on disk first. Live feeds sit beside the archive, each on its own cadence — ten-minute lake readings, hourly air quality, yearly VBZ passenger counts — and the tool descriptions are written in German while the interface works in either language. Three tool names are deprecated aliases of the council-resolution tools and go away at the next major release; use the zurich_strb_ names.
A client for the City of Zurich's public data across six APIs: the CKAN catalogue and DataStore, the WFS geoportal, city council and parliament records, the tourism API, and several live measurement feeds. 23 tools plus three deprecated aliases, and five URI-templated resources.
No account and no key — all six APIs are public. Python 3.11 or newer, and mcp[cli] 2.x specifically: the server uses the 2.x API and cannot run on 1.x. Install from the repository with pip or uv and launch it as python -m zurich_opendata_mcp.server or through the installed zurich-opendata-mcp command. Use 0.6.0 or newer; 0.5.1 has no working dependency resolution left. The SPARQL tool is not registered unless you set ZURICH_OPENDATA_ENABLE_SPARQL=1, because its endpoint is not in production yet.
One command — uvx zurich-opendata-mcp
USE CASES
Find the dataset, then query its rows directly instead of downloading and opening a CSV.
Read current free spaces across the 36 garages alongside the weather.
Hourly station readings come back with the WHO thresholds beside them, so the number means something.
List the geoportal layers, then pull the features as GeoJSON with their properties attached.
Search the public council resolutions by title and department, then open a specific one by its number.
The analysis pass reports update frequency and field structure alongside relevance.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
get_beschluesse_by_departementDeprecated: alter Name von `zurich_strb_by_department` — bitte das
neue Tool verwenden. Dieser Alias verhält sich identisch und wird mit der
nächsten Major-Version entfernt.
get_stadtratsbeschluss_detailDeprecated: alter Name von `zurich_strb_detail` — bitte das neue Tool
verwenden. Dieser Alias verhält sich identisch und wird mit der nächsten
Major-Version entfernt.
search_stadtratsbeschluesseDeprecated: alter Name von `zurich_strb_search` — bitte das neue Tool
verwenden. Dieser Alias verhält sich identisch und wird mit der nächsten
Major-Version entfernt.
zurich_air_qualityLiefert stündlich aktualisierte Luftqualitätsmessungen aus Zürich.
Datenquelle: Umwelt- und Gesundheitsschutz Stadt Zürich (UGZ). Parameter: NO, NO2, NOx, O3, PM10, PM2.5.
Returns: Aktuelle Schadstoffwerte je Station mit Einheiten
zurich_analyze_datasetsAnalysiert Datensätze umfassend: Relevanz, Aktualität und Datenstruktur.
Kombiniert Suche mit Analyse der Update-Frequenz und Feld-Schemas. Besonders nützlich um herauszufinden, welche Daten verfügbar sind und wie aktuell/vollständig sie sind.
Returns: Strukturiertes `AnalysisResult` (JSON mit Feldern, Ressourcen-IDs und DataStore-Zählungen) plus lesbarer Markdown-Report.
zurich_catalog_statsGibt einen Überblick über den gesamten Open-Data-Katalog der Stadt Zürich.
Zeigt Gesamtzahl der Datensätze, Verteilung nach Kategorien, häufigste Formate und Tags.
Returns: Statistik-Übersicht des Katalogs
zurich_datastore_queryFragt tabellarische Daten direkt aus dem CKAN DataStore ab.
Ermöglicht gefilterte Abfragen auf Ressourcen, die im DataStore gespeichert sind (CSV-Daten werden automatisch indexiert).
Returns: Markdown-Tabelle mit Daten und Feld-Informationen
zurich_datastore_sqlFührt eine SQL-Abfrage auf dem CKAN DataStore aus.
Ermöglicht komplexe Abfragen mit JOINs, GROUP BY, Aggregationen etc. Nur SELECT-Abfragen sind erlaubt.
Returns: JSON-Ergebnisse der SQL-Abfrage
zurich_find_school_dataFindet Datensätze, die für das Schulamt und die Volksschule relevant sind.
Durchsucht gezielt nach Schulanlagen, Bildungsdaten, Kreisschulbehörden, Schülerstatistiken, Schulwegen und verwandten Themen. Nutzt eine kuratierte Kombination von Suchbegriffen.
Returns: Markdown-Liste schulrelevanter Datensätze
zurich_geo_featuresRuft Geodaten aus dem WFS-Geoportal der Stadt Zürich als GeoJSON ab.
Liefert geografische Features (Punkte, Polygone) mit Eigenschaften wie Name, Adresse, Kategorie etc. Nützlich für Schulanlagen, Stadtkreise, Spielplätze, Veloprüfstrecken und mehr.
Returns: GeoJSON FeatureCollection mit Features und ihren Eigenschaften
zurich_geo_layersListet alle verfügbaren WFS-Layer des Geoportals der Stadt Zürich auf.
Zeigt Layer-ID, WFS-Service-Name, Typename und Beschreibung für jeden verfügbaren Geodatensatz. Die IDs können mit dem Tool zurich_geo_features verwendet werden.
Returns: Markdown-formatierte Liste aller Geodaten-Layer (oder JSON bei format='json')
zurich_get_datasetRuft vollständige Metadaten und Ressourcen eines Datensatzes ab.
Gibt Titel, Beschreibung, Autor, Lizenz, Aktualisierungsintervall, alle verfügbaren Dateiformate und Download-URLs zurück.
Returns: Strukturiertes `GetDatasetResult (JSON mit Ressourcen-IDs zum Verketten mit zurich_datastore_query`) plus lesbares Markdown.
zurich_list_categoriesListet alle Datenkategorien (Gruppen) im Katalog auf oder zeigt Details einer Kategorie.
Die Stadt Zürich organisiert ihre Datensätze in 19 thematische Kategorien wie Bildung, Bevölkerung, Mobilität, Umwelt etc.
Returns: Markdown-Liste der Kategorien mit Datensatz-Anzahl
zurich_list_tagsDurchsucht verfügbare Tags im Open-Data-Katalog.
Tags helfen, thematisch verwandte Datensätze zu finden. Z.B. 'volksschule', 'kindergarten', 'schulweg' für Bildungsdaten.
Returns: Liste passender Tags
zurich_parking_liveRuft Echtzeit-Parkplatz-Belegungsdaten für die Stadt Zürich ab.
Liefert aktuelle Daten von 36 Parkhäusern und Parkplätzen: freie Plätze, Gesamtkapazität, Standort und Status. Datenquelle: ParkenDD API.
Returns: Markdown-Tabelle mit aktuellen Parkhaus-Belegungen (oder JSON bei format='json')
zurich_parliament_membersSucht Mitglieder des Gemeinderats der Stadt Zürich.
Ermöglicht die Suche nach Name, Partei und Kommissionszugehörigkeit. Zeigt aktuelle Mandate und Funktionen.
Returns: Markdown-Liste der gefundenen Ratsmitglieder
zurich_parliament_searchDurchsucht die Geschäfte des Gemeinderats der Stadt Zürich (Paris API).
Findet Interpellationen, Motionen, Postulate, Anfragen und weitere parlamentarische Vorstösse. Besonders nützlich für Schulthemen, da viele Geschäfte das SSD (Schul- und Sportdepartement) betreffen.
Returns: Markdown-Liste der gefundenen Gemeinderatsgeschäfte
zurich_pedestrian_trafficLiefert stündliche Passantenfrequenzen an der Zürcher Bahnhofstrasse.
Datenquelle: hystreet.com Sensoren an 3 Standorten (Nord, Mitte, Süd). Misst die Anzahl Fussgänger:innen pro Stunde inkl. Richtung und Wetter.
Returns: Stundenwerte der Passantenfrequenz (neueste zuerst)
zurich_search_datasetsDurchsucht den Open-Data-Katalog der Stadt Zürich nach Datensätzen.
Nutzt die CKAN-Suchmaschine (Solr) für Volltextsuche über Titel, Beschreibung, Tags und Metadaten aller 900+ Datensätze.
Returns: Strukturiertes `SearchResult (JSON, IDs maschinenlesbar zum Verketten mit zurich_get_dataset`) plus lesbares Markdown.
zurich_strb_by_departmentGibt alle öffentlichen Stadtratsbeschlüsse eines Departements zurück.
Ideal für institutionelle Analysen, z.B. alle Beschlüsse des Schul- und Sportdepartements (SSD) in einem bestimmten Quartal oder Jahr.
Args: params (BeschluesseDepartementInput): Parameter mit:
Returns: str: Liste aller Beschlüsse des Departements. Jeder Eintrag enthält:
zurich_strb_detailGibt die Metadaten eines einzelnen Stadtratsbeschlusses anhand der Beschlussnummer zurück.
Liefert Titel, Datum, Departement und den direkten Link zum vollständigen Beschluss auf der offiziellen Website der Stadt Zürich (stadt-zuerich.ch).
Args: params (GetSTRBDetailInput): Parameter mit:
Returns: str: Markdown-Detailansicht mit beschlussnummer, titel, datum, departement, link. Fehlermeldung wenn Beschluss nicht gefunden oder ausserhalb des Archivs (vor Feb 2025).
zurich_strb_searchDurchsucht die öffentlichen Stadtratsbeschlüsse (STRB) der Stadt Zürich per Volltext.
Nutzt den CKAN Datastore SQL-Endpoint für flexible ILIKE-Suche im Beschlusstitel mit optionalen Filtern nach Departement und/oder Datumsbereich.
Datenverfügbarkeit: öffentliche Beschlüsse ab Februar 2025, laufend aktualisiert. Lizenz: CC0 (gemeinfrei, keine Einschränkungen).
Args: params (SearchSTRBInput): Suchparameter mit:
Returns: str: Formatierte Liste der Beschlüsse. Jeder Eintrag enthält:
zurich_tourismSucht Attraktionen, Restaurants, Hotels und Events über die Zürich Tourismus API.
Liefert Informationen zu Sehenswürdigkeiten, gastronomischen Angeboten, Unterkünften, Aktivitäten und Veranstaltungen in Zürich. Daten basieren auf Schema.org-Formaten.
Returns: Markdown-formatierte Liste der Tourismus-Einträge
zurich_vbz_passengersFragt Fahrgastzahlen der Verkehrsbetriebe Zürich (VBZ) ab.
Jährlich aktualisierte Ein-/Aussteiger-Zahlen pro Linie und Haltestelle. Die Daten umfassen Tram, Bus, Trolleybus und Seilbahnen.
Returns: Fahrgastzahlen mit Linien- und Haltestellendetails
zurich_water_weatherLiefert Echtzeit-Wetterdaten der Wasserschutzpolizei Zürich.
Stationen am Zürichsee: Tiefenbrunnen und Mythenquai. 10-Minuten-Intervall mit See- und Lufttemperatur, Wind, Wasserstand, Niederschlag, Luftdruck, Taupunkt, Globalstrahlung.
Returns: Aktuelle See-Messwerte mit Wasser- und Lufttemperatur, Wind, Pegel
zurich_weather_liveLiefert stündlich aktualisierte Wetterdaten der UGZ-Messstationen Zürich.
Datenquelle: Umwelt- und Gesundheitsschutz Stadt Zürich (UGZ). Messstationen: Stampfenbachstrasse, Schimmelstrasse, Rosengartenstrasse, Heubeeribüel.
Returns: Aktuelle Temperatur, Luftfeuchte, Luftdruck, Regendauer je Station
BEFORE YOU INSTALL
26 tools when we connected; the project documents 27. zurich_sparql registers only with ZURICH_OPENDATA_ENABLE_SPARQL=1. Three of the 26 are deprecated aliases (search_stadtratsbeschluesse, get_beschluesse_by_departement, get_stadtratsbeschluss_detail) kept until the next major release.
INSTALLATION
uvx zurich-opendata-mcp{
"mcpServers": {
"zurich-opendata-mcp": {
"command": "uvx",
"args": [
"zurich-opendata-mcp"
]
}
}
}{
"servers": {
"zurich-opendata-mcp": {
"command": "uvx",
"args": [
"zurich-opendata-mcp"
]
}
}
}Install the package from a clone, into the Python on your PATH:
git clone https://github.com/malkreide/zurich-opendata-mcp.git
cd zurich-opendata-mcp
pip install -e .Then add the server with the command below.
claude mcp add zurich-opendata -- python -m zurich_opendata_mcp.server