🇨🇭 部分 瑞士公共数据MCP投资组合
📊 zh-教育mcp
   
苏黎世州和市教育统计MCP服务器(BISTA)
______________________________________________________________________
概述
zh-education-mcp 将AI助手连接到 苏黎世州教育统计局(BISTA) --苏黎世州的官方教育统计数据。它提供了对学生人数、学区趋势、中学概况、国籍分类和体育馆毕业率的结构化访问。
| 来源 | 数据 | API |
|---|---|---|
| BISTA 苏黎世 州 | 学习者统计(小学、中学、成熟度) | REST/CSV |
所有数据均从 BISTA公共API (bista.zh.ch/basicapi/ogd/)-不需要API密钥。每年9月15日(参考日期)更新数据。
锚点演示查询: *“在过去的5年里,莱茨学区的学生人数是如何发展的?”*
______________________________________________________________________
演示
______________________________________________________________________
特性
- 📊 8工具 用于所有学校级别的教育数据
- 🔍 学区趋势 --2000年至今,所有Schulkreise(莱茨、格拉塔尔、施瓦门丁根、欧瑞康、乌托、魏德伯格、苏黎世)的学生人数
- 🏫 中学简介 --按需求类型细分(Sek A/B/C、Mittelschule、特殊类别)
- 🌐 国籍结构 --每个学校社区学生的主要国籍
- 🎓 体育馆毕业率 --按市、区和州分列的Maturitätsquote
- 📈 全国概况 --按学校级别、类型、性别和国籍列出的所有学习者
- 🏠 基于住宅的趋势 --按居住地统计的学生人数(Bezirk/Gemeinde)
- 🏛️ 中学 --体育馆、FMS、HMS统计
- 🔓 不需要API密钥 --CC BY 4.0下的所有数据
- ☁️ 双重运输 --stdio(克劳德桌面)+流式HTTP(云)
______________________________________________________________________
先决条件
- Python 3.11+
- 紫外线 (推荐)或pip
______________________________________________________________________
安装
# Clone the repository
git clone https://github.com/malkreide/zh-education-mcp.git
cd zh-education-mcp
# Install
pip install -e .
# or with uv:
uv pip install -e .或与 uvx (无永久性安装):
uvx zh-education-mcp______________________________________________________________________
快速入门
# stdio (for Claude Desktop)
python -m zh_education_mcp.server
# Streamable HTTP (port 8000)
python -m zh_education_mcp.server --http --port 8000立即在Claude Desktop中尝试:
*“莱齐学区的学生人数如何发展?”* *“显示苏黎世市的成熟率”* *“哪些民族在阿德利斯维尔最常见?”*
→ 按受众划分的更多用例 →
______________________________________________________________________
配置
克劳德桌面版
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"zh-education": {
"command": "python",
"args": ["-m", "zh_education_mcp.server"]
}
}
}或与 uvx:
{
"mcpServers": {
"zh-education": {
"command": "uvx",
"args": ["zh-education-mcp"]
}
}
}配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
云部署(SSE用于浏览器访问)
通过以下方式使用 浏览器中的claude.ai (例如,在没有本地软件的受管工作站上):
Render.com(推荐):
- 将存储库推/叉到GitHub
- 开 render.com:新Web服务→ 连接GitHub仓库
- 设置启动命令:
python -m zh_education_mcp.server --http --port 8000 - 在claude.ai的设置下→ MCP服务器,添加:
https://your-app.onrender.com/sse
💡 *“stdio用于开发人员笔记本电脑,SSE用于浏览器。”*
______________________________________________________________________
可用工具
| 工具 | 说明 |
|---|---|
zh_edu_list_schulgemeinden | 列出苏黎世州的所有学校社区/Schulkreise |
zh_edu_schulkreis_trend | Schulkreis的学生趋势(2000年至今) |
zh_edu_overview | 按学校级别划分的全国学生概况 |
zh_edu_sek1_profil | 中学一年级概况(Sek A/B/C细分) |
zh_edu_staatsangehoerigkeiten | 每个学校社区学生的国籍结构 |
zh_edu_maturitaetsquote | 按市/区分列的体育馆毕业率 |
zh_edu_wohnort_trend 基于居住地的学习趋势(地区/社区) | |
zh_edu_mittelschulen | 中学统计(体育馆、FMS、HMS) |
示例用例
| 查询 | 工具 |
|---|---|
| *“列出苏黎世的所有Schulkreise”* | zh_edu_list_schulgemeinden |
| *“乐子5年来的学生趋势”* | zh_edu_schulkreis_trend |
| *“温特图尔有多少Sek A vs Sek B?”* | zh_edu_sek1_profil |
| *“苏黎世莱茨的顶级民族”* | zh_edu_staatsangehoerigkeiten |
| *“苏黎世市的成熟率”* | zh_edu_maturitaetsquote |
______________________________________________________________________
建筑
┌─────────────────┐ ┌──────────────────────────────┐ ┌──────────────────────────┐
│ Claude / AI │────▶│ zh-education-mcp │────▶│ BISTA Kanton Zürich │
│ (MCP Host) │◀────│ (MCP Server) │◀────│ REST/CSV (Public API) │
└─────────────────┘ │ │ └──────────────────────────┘
│ 8 Tools │
│ Stdio | Streamable HTTP │
│ 24h Cache │
│ No authentication required │
└──────────────────────────────┘数据源特征
| 来源 | 协议 | 覆盖范围 | 授权 | 更新 |
|---|---|---|---|---|
| BISTA Kanton ZH | REST/CSV | 2000年至今的学习者统计数据 | 无 | 年度(9月15日) |
______________________________________________________________________
项目结构
zh-education-mcp/
├── src/zh_education_mcp/
│ ├── __init__.py # Package
│ └── server.py # 8 tools, cache, dual transport
├── tests/
│ └── test_server.py # Unit tests (mocked HTTP with respx)
├── .github/workflows/ci.yml # GitHub Actions (Python 3.11/3.12/3.13)
├── pyproject.toml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md # This file (English)
└── README.de.md # German version______________________________________________________________________
已知限制
- 仅限年度更新: BISTA数据每年更新一次(参考日期:9月15日)。24小时内存缓存与此周期匹配。
- 基于CSV的API: BISTA API返回CSV数据;大型数据集可能需要一些时间来解析。
- 学校社区名称: 名称必须完全匹配(使用
zh_edu_list_schulgemeinden查找有效名称)。
______________________________________________________________________
安全与限制
| 主题 | 详细信息 |
|---|---|
| 无个人数据 | BISTA统计数据是汇总的,没有单独的学生数据被公开或访问。所有数据在学校社区层面都是匿名的。 |
| 只读 | 所有工具都是只读的(readOnlyHint: true).服务器无法修改、删除或写入任何数据。 |
| 无身份验证 | BISTA API是完全公开的。没有存储或传输API密钥、令牌或凭证。 |
| 费率限制 | BISTA API没有记录速率限制,但服务器使用24小时内存缓存来最大限度地减少请求。请负责任地使用。 |
| 数据授权 | 所有数据均发布在 CC 4.0 苏黎世州。归因: *苏黎世州教育统计局(BISTA)*. |
| 服务条款 | 使用受 BISTA使用条款MCP服务器是一个独立的开源项目,不隶属于苏黎世州。 |
| AI输出免责声明 | 统计数据通过BISTA API的as-is传递。人工智能生成的解释或总结应与 BISTA官方门户. |
______________________________________________________________________
测试
# Unit tests (no API calls)
PYTHONPATH=src pytest tests/ -m "not live"
# Integration tests (live API calls)
pytest tests/ -m "live"______________________________________________________________________
更新日志
看 更改日志.md
______________________________________________________________________
贡献
看 贡献.md
______________________________________________________________________
许可证
MIT许可证——见 许可证
______________________________________________________________________
作者
Hayal Oezkan· 马尔克雷德
______________________________________________________________________
学分及相关项目
- BISTA: pub.bista.zh.ch — 苏黎世州教育统计 (CC BY 4.0)
- 协议: 模型上下文协议 --Anthropic/Linux基金会
- 相关: 苏黎世开放数据mcp --苏黎世市开放数据(停车、天气、议会)
- 相关: 瑞士文化遗产 --瑞士文化遗产数据
- 相关: fedlex mcp --瑞士联邦法律
- 文件夹: 瑞士公共数据MCP投资组合
