Zh Education MCP logo

Zh Education MCP

Queries Zurich education statistics through eight MCP tools backed by the public BISTA REST/CSV API.

Install Zh Education MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "zh-education-mcp": {
      "command": "uvx",
      "args": [
        "zh-education-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 8 tools correctly (3d ago).

Overview

The zh-education-mcp MCP server connects AI assistants to official Bildungsstatistik Kanton Zürich (BISTA) data. It exposes eight read-only tools for school communities, learner trends, school levels, pupil nationalities, secondary schools, and gymnasium graduation rates. Data is retrieved from BISTA’s public REST/CSV API without authentication and is updated annually on 15 September. Use it when an agent needs aggregated education statistics for the Canton or City of Zurich.

Use cases

  • List school communities in Canton Zurich
  • Compare pupil trends across Zurich Schulkreise
  • Check Sek A, B, and C distributions
  • Find pupil nationality structures by community
  • Review gymnasium graduation rates

Key features

  • Eight read-only education statistics tools
  • BISTA REST/CSV API access
  • School district trends from 2000 onward
  • Secondary school and learner-level breakdowns
  • Stdio and Streamable HTTP transports
  • No API key required

Tools8

What Zh Education MCP lets your agent do. Expand a tool for its parameters.

Verified live~2.9k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

7/7 checks healthy over the last 41d

What it can do

From the 8 tools this server returned when we ran it; 8 declare their own safety hints.

Makes network requests · 8Read-only tools · 8
Network at startup2 connections
Files written at startup30

Observed 2026-10-20 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 13d ago via OSV.dev · zh-education-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

Last commit27d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed8Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Zh Education MCP works

What zh-education-mcp does

The zh-education-mcp MCP server gives AI assistants structured access to education statistics from the Bildungsstatistik Kanton Zürich (BISTA). Its coverage includes the Canton and City of Zurich, with learner data spanning Volksschule, Mittelschulen, and Maturität-related statistics. The data is aggregated and anonymized at school-community level; it does not expose individual pupil records.

The source covers statistics from 2000 to the present where available. Typical questions include how enrolment changed in a Schulkreis, how Sekundarstufe I pupils are distributed across Sek A, B, and C, or which pupil nationalities are most common in a school community.

How it works

An MCP client sends a request to one of the server’s tools. The server fetches the relevant records from the public BISTA API at bista.zh.ch/basicapi/ogd/, which provides REST/CSV data. No API key or other authentication is required. Results are returned as structured tool responses for the assistant to interpret.

The server supports two transports. Stdio is intended for local MCP hosts such as Claude Desktop, while Streamable HTTP can serve browser-based or hosted deployments. The HTTP example uses port 8000, and deployments can expose a /health endpoint for health checks. A 24-hour in-memory cache reduces repeated retrievals, although the underlying source is only refreshed annually.

Setup and configuration

Python 3.11 or newer is required. The repository can be installed with pip using editable installation, with uv, or run directly through uvx without a permanent installation. A local stdio launch uses:

bash
python -m zh_education_mcp.server

For Streamable HTTP, start the module with --http and specify a port, for example:

bash
python -m zh_education_mcp.server --http --port 8000

Claude Desktop can be configured with a server entry that invokes python -m zh_education_mcp.server, or with uvx zh-education-mcp. For a hosted deployment, the documented configuration uses MCP_TRANSPORT=streamable-http, binds to 0.0.0.0, sets a port, and configures permitted CORS origins such as https://claude.ai.

Tools and capabilities

The zh-education-mcp MCP server provides eight tools:

  • zh_edu_list_schulgemeinden lists school communities and Schulkreise in Canton Zurich.
  • zh_edu_schulkreis_trend returns pupil trends by Schulkreis from 2000 onward.
  • zh_edu_overview provides a canton-wide learner overview by school level.
  • zh_edu_sek1_profil breaks down Secondary I profiles, including Sek A, B, and C.
  • zh_edu_staatsangehoerigkeiten reports pupil nationality structures for school communities.
  • zh_edu_maturitaetsquote provides gymnasium graduation rates by municipality, district, or canton-level context.
  • zh_edu_wohnort_trend reports residence-based learner trends by Bezirk or Gemeinde.
  • zh_edu_mittelschulen covers statistics for Gymnasium, FMS, and HMS.

Use the school-community listing first when a query depends on an exact name. The API requires names to match the available BISTA values.

Limitations and notes

BISTA publishes the underlying data once per year, using 15 September as the reference date. The server therefore should not be treated as a source of current-year or real-time enrolment changes. Its cache lasts 24 hours, which is useful for repeated requests but does not create newer data.

The API is CSV-based, so larger datasets may require additional parsing time. All tools are read-only. The available figures are statistical aggregates rather than personal or student-level information. Data is provided under the CC BY 4.0 license, as stated by the project.

School community and location names must match BISTA’s naming. Querying zh_edu_list_schulgemeinden can help identify valid values before requesting trends or local breakdowns.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Zh Education MCP

zh-education-mcp is an MCP server that connects AI assistants to the Bildungsstatistik Kanton Zürich (BISTA) public education statistics API. Its main tools cover school communities, Schulkreis and residence trends, canton-wide learner overviews, Sek I profiles, pupil nationalities, Maturitätsquote, and Gymnasium, FMS, and HMS statistics.

Install it with Python 3.11+ using pip or uv, or run it with uvx. Clone the repository, enter its directory, and use `pip install -e .`; alternatively run `uvx zh-education-mcp` without a permanent installation.

No, zh-education-mcp does not require an API key. It reads data from the public BISTA REST/CSV API at `bista.zh.ch/basicapi/ogd/`.

Add a Claude Desktop MCP configuration that launches `python -m zh_education_mcp.server`, or use `uvx` with `zh-education-mcp` as the command argument. The local integration uses the server’s stdio transport.

Yes, zh-education-mcp supports Streamable HTTP. Start it with `python -m zh_education_mcp.server --http --port 8000`; hosted deployments can configure the transport, host, port, and CORS environment variables.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewZh Education MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/zh-education-mcp?style=directory)](https://allmcps.com/mcp/zh-education-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/zh-education-mcp"><img src="https://allmcps.com/api/badge/zh-education-mcp?style=directory" alt="Zh Education MCP on AllMCPs" /></a>