MCP server for education statistics of the Canton and City of Zurich (BISTA)
8 tools with complete input schemas and descriptions. All tools follow verb_noun naming (zh_edu_list_*, zh_edu_*_trend, zh_edu_*_profil). Descriptions are 80-180 chars, within the 10-1024 baseline. Parameters have types and descriptions. However, output schemas are not documented in the visible code, only input schemas are defined via Pydantic models. No error handling guidance in descriptions (e.g., what happens if schulgemeinde not found). Response format parameter is present but not constrained to enum. Tools are read-only (good for idempotency) but lack explicit documentation of this safety property.
Listet alle Schulgemeinden und Schulkreise im Kanton Zürich auf. Extrahiert die eindeutigen Schulgemeinden aus den Sekundarstufe-I-Daten. Nützlich als Einstieg, um gültige Namen für andere Tools zu finden.
Maturitätsquoten nach Gemeinde, Bezirk oder Kanton. Zeigt den Anteil der Lernenden, die eine Maturität erwerben, aufgeschlüsselt nach Region und Geschlecht.
Statistiken der Mittelschulen (Gymnasium, FMS, HMS) im Kanton Zürich. Zeigt Lernendenzahlen und Trends nach Schultyp und Standort.
Überblick über die Lernendenzahlen im gesamten Kanton Zürich. Zeigt Gesamtzahlen nach Stufe, Anforderungstyp und Geschlecht.
Zeigt den Lernenden-Trend für eine Schulgemeinde / einen Schulkreis. Liefert die Entwicklung der Lernendenzahlen (Sek I) über die letzten N Jahre, aufgeschlüsselt nach Anforderungstyp (Sek A, Sek B, Sek C etc.).
Detailliertes Profil einer Schulgemeinde auf Sekundarstufe I. Zeigt die Verteilung der Lernenden nach Anforderungstyp, Geschlecht und ggf. Staatsangehörigkeit.
Output schemas not documented. Tools return structured data but LLMs cannot see what fields to expect. Visible code shows input Pydantic models but no return type annotations or response schema documentation.
response_format parameter accepts free-form string ('markdown' or 'json') instead of enum constraint. LLMs may hallucinate invalid formats like 'csv' or 'xml'.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Lernende nach Staatsangehörigkeit im Kanton Zürich. Zeigt die Verteilung nach Schweizer und ausländischen Staatsangehörigkeiten, aufgeschlüsselt nach Stufe und Region.
Trend der Lernendenzahlen nach Wohnort. Zeigt die Entwicklung der Lernendenzahlen nach Gemeinde oder Bezirk über mehrere Jahre.
No error recovery guidance in descriptions. If schulgemeinde not found, descriptions do not explain what the LLM should do next (e.g., 'Call zh_edu_list_schulgemeinden first to find valid names').
letzte_n_jahre and jahr parameters lack explicit range constraints in descriptions. LLMs may pass negative years, year 9999, or unreasonable lookback periods.
Tool descriptions do not state that all tools are read-only and safe to retry. This is a safety property that should be explicit for agent planning.