MCP server for the City of Zurich's open data (CKAN, Geoportal WFS, Gemeinderat/Paris, Zürich Tourismus, SPARQL, ParkenDD).
MCP endpoint: http://zurich-opendata-mcp.liipgpt.ch/mcp (streamable HTTP)
This page also registers the tools via WebMCP for browser-based AI agents (Chrome 146+). Details in the browser console.
This URL is a Model Context Protocol endpoint — meant for AI assistants, not for browsing. Added to an MCP client, the assistant queries the City of Zurich's open data directly.
claude mcp add --transport http zurich-opendata-mcp http://zurich-opendata-mcp.liipgpt.ch/mcp
{
"mcpServers": {
"zurich-opendata-mcp": {
"type": "http",
"url": "http://zurich-opendata-mcp.liipgpt.ch/mcp"
}
}
}
Server name: zurich-opendata-mcp · Transport: streamable HTTP
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.
departement (string) required – Kürzel oder Name des Departements. Beispiele: 'SSD' → Schul- und Sportdepartement, 'FD' → Finanzdepartement, 'PRD' → Präsidialdepartement, 'TED' → Tiefbau- und Entsorgungsdepartement, 'HBD' → Hochbaudepartement, 'GUD' → Gesundheits- und Umweltdepartement, 'SID' → Sicherheitsdepartement, 'SD' → Sozialdepartement, 'SKZ' → Stadtkanzlei, 'DIB' → Departement der Industriellen Betriebe, 'RK' → Rechtskonsulent.datum_bis (string) optional – Spätestes Beschlussdatum (YYYY-MM-DD).datum_von (string) optional – Frühestes Beschlussdatum (YYYY-MM-DD).format (string) optional – Ausgabeformat: 'markdown' oder 'json'.limit (integer) optional – Max. Anzahl zurückgegebener Beschlüsse (Standard: 50, max. 200).Deprecated: 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.
beschlussnummer (string) required – Beschlussnummer im Format 'NNNN/JJJJ', z.B. '1203/2025' oder '472/2026'. Die Nummer steht im Titel des Beschlussdokuments.Durchsucht die Wissensdatenbank der Stadt Zürich (zuericitygpt.ch).
query (string) required – Suchbegriffinclude_content (boolean) optional – Volltext der Treffer mitliefernlimit (integer) optional – Maximale Anzahl Treffermode (string) optional – Optionaler Suchmodus. 'strb': nur in Stadtratsbeschlüssen suchen. Für strukturierte STRB-Abfragen (Departement, Datum, Beschlussnummer) sind zurich_strb_search, zurich_strb_by_department und zurich_strb_detail die genauere Wahl — die fragen die Quelle direkt.offset (integer) optional – Anzahl zu überspringender Treffertags (array) optional – Nach Tags filternHolt die nächsten Abfallentsorgungs-Termine für einen Ort in Zürich.
location (string) required – Eine Adresse oder ein Kreis, z.B. 'Limmatstrasse 55' oder 'Kreis 4'type (string) required – Welche Abfallart: cardboard, paper, organic, cargotram, waste, garbage, müll, kehricht, kehrichtabfuhr, etram, müllabfuhrDeprecated: 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.
query (string) required – Suchbegriff im Beschlusstitel, z.B. 'Volksschule', 'Tagesschule', 'Baukredite'. Gross-/Kleinschreibung irrelevant. Teilstrings werden gefunden.datum_bis (string) optional – Spätestes Beschlussdatum (ISO-Format: YYYY-MM-DD), z.B. '2025-12-31'.datum_von (string) optional – Frühestes Beschlussdatum (ISO-Format: YYYY-MM-DD), z.B. '2025-01-01'.departement (string) optional – Optionaler Departement-Filter. Kürzel oder Teilname genügt, z.B. 'SSD', 'FD', 'PRD'. Vollständige Bezeichnungen: 'Schul- und Sportdepartement (SSD)', 'Finanzdepartement (FD)', 'Präsidialdepartement (PRD)', usw.format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Max. Anzahl zurückgegebener Beschlüsse (Standard: 20, max. 100).Liefert stündlich aktualisierte Luftqualitätsmessungen aus Zürich.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Anzahl Messwerte (max. 100)parameter (string) optional – Schadstoff: 'NO2' (Stickstoffdioxid), 'O3' (Ozon), 'PM10' (Feinstaub), 'PM2.5', 'NO', 'NOx'. Leer = alle.station (string) optional – Messstation filtern. Verfügbar: Zch_Heubeeribüel, Zch_Rosengartenstrasse, Zch_Schimmelstrasse, Zch_Stampfenbachstrasse. Leer = alle.Analysiert Datensätze umfassend: Relevanz, Aktualität und Datenstruktur.
query (string) required – Suchbegriff für die Analyse, z.B. 'Schule', 'Verkehr', 'Wohnen'include_freshness (boolean) optional – Aktualitäts-Analyse einschliesseninclude_structure (boolean) optional – Datenstruktur (Felder) einschliessenmax_datasets (integer) optional – Maximale Anzahl zu analysierender DatensätzeGibt einen Überblick über den gesamten Open-Data-Katalog der Stadt Zürich.
No parameters.
Fragt tabellarische Daten direkt aus dem CKAN DataStore ab.
resource_id (string) required – Resource-ID aus dem Datensatz (UUID-Format)filters (string) optional – JSON-Filter, z.B. {"Quartier": "Wiedikon"} oder {"Jahr": 2024}limit (integer) optional – Anzahl Datensätze (max. 100)offset (integer) optional – Offset für Paginierungquery (string) optional – Volltextsuche innerhalb der Ressourcesort (string) optional – Sortierung, z.B. 'Jahr desc'Führt eine SQL-Abfrage auf dem CKAN DataStore aus.
sql (string) required – SQL-Abfrage auf den DataStore. Tabellennamen in Anführungszeichen. Beispiel: SELECT * FROM "resource-uuid" WHERE "Jahr" = 2024 LIMIT 10Findet Datensätze, die für das Schulamt und die Volksschule relevant sind.
topic (string) optional – Spezifisches Schulthema, z.B. 'Schulanlagen', 'Ferien', 'Kreisschulbehörde', 'Musikschule', 'Schüler', 'Kindergarten'. Wenn leer, werden alle schulrelevanten Datensätze gesucht.Ruft Geodaten aus dem WFS-Geoportal der Stadt Zürich als GeoJSON ab.
layer_id (string) required – Layer-ID. Verfügbar: familienberatung, klimadaten, kreisbuero, lehrpfade, sammelstelle, schulanlagen, schulkreise, schulwege, sozialzentrum, spielplaetze, sport, stadtkreise, stimmlokale, velopruefstreckenformat (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar). Bei 'json' wird die rohe GeoJSON-FeatureCollection zurückgegeben.max_features (integer) optional – Maximale Anzahl Features (max. 500)property_filter (string) optional – CQL-Filter für Eigenschaften, z.B. "kategorie = 'Kindergarten'" oder "name LIKE '%Wasser%'". Feldnamen hängen vom Layer ab.Listet alle verfügbaren WFS-Layer des Geoportals der Stadt Zürich auf.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).Ruft vollständige Metadaten und Ressourcen eines Datensatzes ab.
dataset_id (string) required – ID oder Name des Datensatzes, z.B. 'geo_schulanlagen' oder 'ssd_schulferien'Listet alle Datenkategorien (Gruppen) im Katalog auf oder zeigt Details einer Kategorie.
group_id (string) optional – Gruppen-ID für Details. Verfügbar: arbeit-und-erwerb, basiskarten, bauen-und-wohnen, bevolkerung, bildung, energie, finanzen, freizeit, gesundheit, kriminalitat, kultur, mobilitat, politik, preise, soziales, tourismus, umwelt, verwaltung, volkswirtschaft. Wenn leer, werden alle Kategorien aufgelistet.Durchsucht verfügbare Tags im Open-Data-Katalog.
limit (integer) optional – Maximale Anzahl Tagsquery (string) optional – Suchbegriff für Tags, z.B. 'schul', 'verkehr', 'wohn'Ruft Echtzeit-Parkplatz-Belegungsdaten für die Stadt Zürich ab.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).Sucht Mitglieder des Gemeinderats der Stadt Zürich.
active_only (boolean) optional – Nur aktive Ratsmitglieder anzeigencommission (string) optional – Kommissionsname, z.B. 'GPK', 'RPK', 'Bildungsrat'. Sucht aktive Mitglieder der genannten Kommission.format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).max_results (integer) optional – Maximale Anzahl Ergebnissename (string) optional – Name oder Teilname des Ratsmitglieds, z.B. 'Marti' oder 'Peter'party (string) optional – Parteiname, z.B. 'SP', 'SVP', 'Grüne', 'FDP', 'GLP', 'AL', 'Mitte'Durchsucht die Geschäfte des Gemeinderats der Stadt Zürich (Paris API).
query (string) required – Suchbegriff für Gemeinderatsgeschäfte. Wird im Titel gesucht. Beispiele: 'Schule', 'Digitalisierung', 'Klimaschutz', 'Budget'department (string) optional – Nach zuständigem Departement filtern. Beispiele: 'Schul- und Sportdepartement', 'Finanzdepartement'format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).max_results (integer) optional – Maximale Anzahl Ergebnisseyear_from (integer) optional – Geschäfte ab diesem Jahr filtern, z.B. 2020year_to (integer) optional – Geschäfte bis zu diesem Jahr filtern, z.B. 2025Liefert stündliche Passantenfrequenzen an der Zürcher Bahnhofstrasse.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Anzahl Stundenwerte (max. 168)Durchsucht den Open-Data-Katalog der Stadt Zürich nach Datensätzen.
query (string) required – Suchbegriff(e), z.B. 'Schule', 'Verkehr', 'Bevölkerung'. Unterstützt Solr-Syntax: AND, OR, NOT, Wildcards (*), Fuzzy (~).filter_group (string) optional – Nach Kategorie filtern. Verfügbar: arbeit-und-erwerb, basiskarten, bauen-und-wohnen, bevolkerung, bildung, energie, finanzen, freizeit, gesundheit, kriminalitat, kultur, mobilitat, politik, preise, soziales, tourismus, umwelt, verwaltung, volkswirtschaftoffset (integer) optional – Offset für Paginierungrows (integer) optional – Anzahl Ergebnisse (max. 50)sort (string) optional – Sortierung, z.B. 'metadata_modified desc', 'title asc', 'score desc'Gibt alle öffentlichen Stadtratsbeschlüsse eines Departements zurück.
departement (string) required – Kürzel oder Name des Departements. Beispiele: 'SSD' → Schul- und Sportdepartement, 'FD' → Finanzdepartement, 'PRD' → Präsidialdepartement, 'TED' → Tiefbau- und Entsorgungsdepartement, 'HBD' → Hochbaudepartement, 'GUD' → Gesundheits- und Umweltdepartement, 'SID' → Sicherheitsdepartement, 'SD' → Sozialdepartement, 'SKZ' → Stadtkanzlei, 'DIB' → Departement der Industriellen Betriebe, 'RK' → Rechtskonsulent.datum_bis (string) optional – Spätestes Beschlussdatum (YYYY-MM-DD).datum_von (string) optional – Frühestes Beschlussdatum (YYYY-MM-DD).format (string) optional – Ausgabeformat: 'markdown' oder 'json'.limit (integer) optional – Max. Anzahl zurückgegebener Beschlüsse (Standard: 50, max. 200).Gibt die Metadaten eines einzelnen Stadtratsbeschlusses anhand der Beschlussnummer zurück.
beschlussnummer (string) required – Beschlussnummer im Format 'NNNN/JJJJ', z.B. '1203/2025' oder '472/2026'. Die Nummer steht im Titel des Beschlussdokuments.Durchsucht die öffentlichen Stadtratsbeschlüsse (STRB) der Stadt Zürich per Volltext.
query (string) required – Suchbegriff im Beschlusstitel, z.B. 'Volksschule', 'Tagesschule', 'Baukredite'. Gross-/Kleinschreibung irrelevant. Teilstrings werden gefunden.datum_bis (string) optional – Spätestes Beschlussdatum (ISO-Format: YYYY-MM-DD), z.B. '2025-12-31'.datum_von (string) optional – Frühestes Beschlussdatum (ISO-Format: YYYY-MM-DD), z.B. '2025-01-01'.departement (string) optional – Optionaler Departement-Filter. Kürzel oder Teilname genügt, z.B. 'SSD', 'FD', 'PRD'. Vollständige Bezeichnungen: 'Schul- und Sportdepartement (SSD)', 'Finanzdepartement (FD)', 'Präsidialdepartement (PRD)', usw.format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Max. Anzahl zurückgegebener Beschlüsse (Standard: 20, max. 100).Sucht Attraktionen, Restaurants, Hotels und Events über die Zürich Tourismus API.
category (string) required – Tourismus-Kategorie. Verfügbar: 'aktivitaeten', 'events', 'familien', 'kultur', 'museen', 'nachtleben', 'natur', 'restaurants', 'shopping', 'sport', 'touren', 'uebernachten'. Oder eine numerische Kategorie-ID.format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).language (string) optional – Sprache der Ergebnisse: 'de', 'en', 'fr', 'it'max_results (integer) optional – Maximale Anzahl Ergebnissesearch_text (string) optional – Optionaler Suchtext zur Filterung der Ergebnisse, z.B. 'Altstadt' oder 'vegan'Fragt Fahrgastzahlen der Verkehrsbetriebe Zürich (VBZ) ab.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Anzahl Ergebnisse (max. 100)line (string) optional – Liniennummer filtern (exakter Linienname), z.B. '4' (Tram 4), '33' (Bus 33). Leer = alle Linien.query (string) optional – Volltextsuche über alle Felderstop (string) optional – Haltestelle filtern (Name oder Teilname), z.B. 'Paradeplatz', 'Central', 'Bellevue'. Wird über das Haltestellenverzeichnis aufgelöst. Leer = alle.Liefert Echtzeit-Wetterdaten der Wasserschutzpolizei Zürich.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Anzahl Messwerte (max. 50)station (string) optional – Messstation: 'tiefenbrunnen' oder 'mythenquai'Liefert stündlich aktualisierte Wetterdaten der UGZ-Messstationen Zürich.
format (string) optional – Ausgabeformat: 'markdown' (Standard, lesbar) oder 'json' (maschinenlesbar).limit (integer) optional – Anzahl Messwerte (max. 100)parameter (string) optional – Messparameter filtern: 'T' (Temperatur °C), 'Hr' (Luftfeuchte %), 'p' (Luftdruck hPa), 'RainDur' (Regendauer min), 'StrGlo' (Globalstrahlung W/m²), 'WD' (Windrichtung °), 'WVs'/'WVv' (Windgeschwindigkeit m/s). Leer = alle.station (string) optional – Messstation filtern. Verfügbar: Zch_Heubeeribüel, Zch_Rosengartenstrasse, Zch_Schimmelstrasse, Zch_Stampfenbachstrasse. Leer = alle Stationen.