🇨🇭 部分 瑞士公共数据MCP投资组合
🏙️ 苏黎世开放数据MCP服务器
   
🌐 英语 | 德语
MCP(模型上下文协议)服务器提供AI驱动的访问 瑞士苏黎世市的开放数据.
使Claude、ChatGPT和其他兼容MCP的人工智能助手能够直接查询苏黎世市的900多个数据集、地理数据、议会程序、旅游数据、链接数据以及实时环境和交通信息。 20个工具,6个资源,6个API。
演示
Demo: Claude using zurich_parking_live and zurich_air_quality
✨ 特性
CKAN 开放数据(data.stadt-zuerich.ch)
zurich_search_datasets–在900多个数据集中使用Solr语法进行全文搜索zurich_get_dataset–数据集的完整元数据和下载URLzurich_datastore_query–直接查询表格数据(过滤器、排序)zurich_datastore_sql–DataStore上的SQL查询zurich_list_categories–浏览19个主题类别zurich_list_tags–基于标签的主题搜索
实时环境数据
zurich_weather_live– 🌤️ 来自5个UGZ站的当前天气(温度、湿度、压力、降雨)zurich_air_quality– 🌬️ 实时空气质量(否₂, O₃,PM10、PM2.5)与世界卫生组织阈值zurich_water_weather– 🌊 苏黎世湖数据(水温、水位、风)每10分钟一次
实时移动数据
zurich_pedestrian_traffic– 🚶 班霍夫大街的行人数量(3个地点,每小时一次)zurich_vbz_passengers– 🚊 VBZ公共交通客流量(800000+记录,所有线路/站点)zurich_parking_live– 🅿️ 36个停车场的实时占用率(ParkenDD)
地理门户网站(WFS Geodata)
zurich_geo_layers– 📍 列出14个可用的地理数据层zurich_geo_features– 📍 获取GeoJSON功能(学校、地区、游乐场、气候数据等)
市议会(巴黎API)
zurich_parliament_search– 🏛️ 搜索议会程序(质询、动议、公设)zurich_parliament_members– 🏛️ 搜索理事会成员(政党、委员会、授权)
苏黎世旅游
zurich_tourism– 🏨 景点、餐厅、酒店、活动(Schema.org数据,4种语言)
链接数据(SPARQL)
zurich_sparql– 📊 统计链接数据端点上的SPARQL查询
分析工具
zurich_analyze_datasets–综合分析:相关性、时效性、数据结构zurich_catalog_stats–包含统计信息的目录概述zurich_find_school_data–精心搜索与教育相关的数据集
MCP资源
zurich://dataset/{name}–数据集元数据zurich://category/{group_id}–类别详细信息zurich://parking–当前停车数据zurich://geo/{layer_id}–GeoJSON地理数据(14层)zurich://tourism/categories–旅游类别
🚀 安装
先决条件
- Python 3.11+
- pip或uv
安装
# Clone
git clone https://github.com/malkreide/zurich-opendata-mcp.git
cd zurich-opendata-mcp
# Install
pip install -e .
# Or with uv
uv pip install -e .⚙️ 配置
克劳德桌面版
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"zurich-opendata": {
"command": "python",
"args": ["-m", "zurich_opendata_mcp.server"],
"env": {}
}
}
}或者,使用installed命令:
{
"mcpServers": {
"zurich-opendata": {
"command": "zurich-opendata-mcp"
}
}
}克劳德代码(CLI)
claude mcp add zurich-opendata -- python -m zurich_opendata_mcp.server光标/VS代码
添加 .vscode/settings.json:
{
"mcpServers": {
"zurich-opendata": {
"command": "python",
"args": ["-m", "zurich_opendata_mcp.server"]
}
}
}💬 查询示例
配置后,您可以询问Claude:
开放数据
- *“苏黎世学校有哪些可用的数据集?”*
- *“显示公立学校的学校假期”*
- *“分析可用的地理数据”*
实时数据
- *“苏黎世现在的温度是多少?”* →
zurich_weather_live - *“今天的空气质量怎么样?”* →
zurich_air_quality - *“苏黎世湖的水温是多少?”* →
zurich_water_weather - *“现在有多少免费停车位?”* →
zurich_parking_live - *“现在班霍夫大街上有多少人?”* →
zurich_pedestrian_traffic
地理数据
- *“以GeoJSON的形式向我展示苏黎世的所有学校设施”* →
zurich_geo_features - *“有哪些地理数据层可用?”* →
zurich_geo_layers - *“苏黎世的游乐场在哪里?”*
市议会
- *“议会提出了哪些关于学校的动议?”* →
zurich_parliament_search - *“哪些议员属于SP党?”* →
zurich_parliament_members
旅游与统计
- *“苏黎世旅游推荐哪些餐厅?”* →
zurich_tourism - *“苏黎世的人口是如何演变的?”* →
zurich_sparql
🔗 数据源
| API | 端点 | 数据 |
|---|---|---|
| CKAN | data.stadt-zuerich.ch/api/3/ | 900+ 开放数据集 |
| 地理门户WFS | ogd.stadt-zuerich.ch/wfs/geoportal | 14个地理数据层(GeoJSON) |
| API巴黎 | gemeinderat-zuerich.ch/api | 议会程序和成员 |
| 苏黎世旅游 | zuerich.com/en/api/v2/data | 景点、餐厅、酒店 |
| SPARQL | ld.stadt-zuerich.ch/query | 链接开放数据 / 统计 |
| ParkenDD | api.parkendd.de/Zuerich | 实时停车位占用率 |
📊 可用数据类别
| 类别 | ID |
|---|---|
| 就业 | arbeit-und-erwerb |
| 基础地图 | basiskarten |
| 建筑与住房 | bauen-und-wohnen |
| 人口 | bevolkerung |
| 教育 | bildung |
| 能源 | energie |
| 财务 | finanzen |
| 休闲娱乐 | freizeit |
| 健康 | gesundheit |
| 犯罪 | kriminalitat |
| 企业文化 | kultur |
| 移动性 | mobilitat |
| 政治 | politik |
| 价格 | preise |
| 社会事务 | soziales |
| 旅游业 | tourismus |
| 环境 | umwelt |
| 行政管理 | verwaltung |
| 经济 | volkswirtschaft |
📍 可用地理图层
| 图层ID | 描述 |
|---|---|
schulanlagen | 学校设施(幼儿园、学校、课后看护) |
schulkreise | 学区边界 |
schulwege | 学校路线和安全路径 |
stadtkreise | 城区边界 |
quartiere | 统计季度 |
spielplaetze | 游乐场 |
sportanlagen | 体育设施和游泳池 |
klimadaten | 气候数据(温度、热岛) |
veloparkierung | 自行车停车设施 |
lehrpfade | 教育路径 |
familienberatung | 家庭咨询会议要点 |
kreisbuero | 市区办事处 |
sammelstelle | 废物收集点 |
zweiradparkierung | 两轮车停车场 |
🏗️ 项目结构
zurich-opendata-mcp/
├── src/zurich_opendata_mcp/
│ ├── __init__.py # Package
│ ├── server.py # MCP Server with 20 tools & 6 resources
│ └── api_client.py # HTTP client for 6 APIs
├── tests/
│ └── test_integration.py # 20 integration tests
├── .github/workflows/ci.yml # GitHub Actions CI
├── pyproject.toml # Project configuration
├── README.md / README.de.md # Documentation (EN/DE)
├── CONTRIBUTING.md / .de.md # Contribution guide (EN/DE)
├── CHANGELOG.md # Changelog
├── LICENSE # MIT
└── claude_desktop_config.json🧪 发展
# Install dev dependencies
pip install -e ".[dev]"
# Integration tests (against live APIs)
python tests/test_integration.py
# Linting
ruff check src/安全与限制
- 只读: 所有工具仅执行HTTP GET请求,不写入、修改或删除任何数据。
- 无个人数据: API返回开放的公民数据集(停车位占用率、天气读数、议会程序)。此服务器不会处理或存储任何个人身份信息(PII)。
- 费率限制: CKAN Solr搜索和ParkenDD是没有记录速率限制的公共API;使用
rows和limit参数保守。服务器强制每个请求超时30秒。 - 数据新鲜度: 实时工具(停车、天气、空气质量)反映查询时的上游来源。此服务器不执行缓存。
- 不保证: 此服务器是一个社区项目,不隶属于苏黎世市或任何API提供商。可用性取决于上游API。
______________________________________________________________________
📜 许可证
MIT许可证
🤝 上下文
所有使用的数据都是在开放许可证下发布的(自2021年以来默认为CC0/open)。
______________________________________________________________________
*由...驱动 模型上下文协议 •6个API•20个工具•6个资源*
