内容
# 开放数据MCP柏林
Berlin开放数据生态系统中用于处理MCP(模型上下文协议)服务器和工具的集合。
## 结构
此存储库包含多个组件:
### `/berlin-open-data-mcp`
用于自然语言发现和获取柏林开放数据集的MCP服务器。连接到柏林开放数据门户(daten.berlin.de)并启用:
- 自然语言数据集搜索,智能查询扩展
- 大型数据集的智能采样数据获取
- 支持的格式:CSV,JSON,Excel(XLS/XLSX),GeoJSON,KML和WFS
- GeoJSON坐标转换(EPSG:25833→WGS84)
- ZIP存档检测(提供直接下载链接)
- 用于JavaScript渲染下载的浏览器自动化
详见 [berlin-open-data-mcp/README.md](berlin-open-data-mcp/README.md)。
### `/datawrapper-mcp`
用于使用Datawrapper API创建数据可视化的MCP服务器。通过对话式AI实现从柏林开放数据自动创建图表:
- 条形图(垂直/水平)
- 线形图(单系列和多系列)
- 地图(GeoJSON可视化,自动柏林边界)
- 标题,标签和轴的智能默认值
- 源数据集链接的出处跟踪
详见 [datawrapper-mcp/README.md](datawrapper-mcp/README.md)了解设置和API令牌配置。
### `/masterportal-mcp`
用于生成可托管的 [Masterportal](https://www.masterportal.org/) 地理数据门户的MCP服务器。从GeoJSON或WFS数据创建完整的zip包:
- 多层支持,配置样式
- 地图配置(标题,中心,缩放,底图)
- 完整的Masterportal v3运行时捆绑
- 作为zip下载,提取到任何Web服务器
详见 [masterportal-mcp/README.md](masterportal-mcp/README.md)。
### `/interface-prototype`
用于通过自然语言探索柏林开放数据的基于Web的聊天界面。将柏林开放数据MCP服务器与基于Mistral的聊天界面集成,以启用:
- 会话式数据集搜索和发现
- 数据获取和预览
- 通过沙盒JavaScript代码执行进行准确的数据分析
- 通过WebSocket进行实时流式传输响应
详见 [interface-prototype/README.md](interface-prototype/README.md)了解设置和使用。
## 使用MCP服务器
MCP服务器独立部署,可以通过多种方式使用:
### 已部署的服务
| 服务 | URL | 描述 |
|---------|-----|-------------|
| 柏林开放数据MCP | https://berlin-open-data-mcp.onrender.com/mcp | 数据集搜索和获取 |
| Datawrapper MCP | https://datawrapper-mcp.onrender.com/mcp | 图表创建 |
| Masterportal MCP | 暂未计划 | 地理数据门户生成 |
| 聊天界面 | 暂未计划 | 结合所有MCP的Web UI |
## 入门 — 设置
要使用 **Open-Data-MCP** 和 **Datawrapper-MCP** 代理,您至少需要:
1. **访问聊天平台** (例如Le Chat,ChatGPT,Claude)。
2. **互联网连接** (用于远程访问)。
### Mistral Le Chat
从 [Le Chat](https://chat.mistral.ai/) 使用自定义MCP连接器:
**要求:** Mistral账户,Le Chat Pro
1. 在左侧边栏中,点击 **智能**,然后选择 **连接器**
2. 点击 **+ 添加连接器**
3. 选择 **自定义MCP连接器** 选项卡并填写详细信息:
1. **柏林开放数据MCP**
- 名称:berlin-open-data
- MCP服务器URL:https://berlin-open-data-mcp.onrender.com/mcp
- 身份验证:无身份验证
2. **Datawrapper MCP**
- 名称:datawrapper
- MCP服务器URL:https://datawrapper-mcp.onrender.com/mcp
- 身份验证:无身份验证
4. 点击 **连接** 保存
5. 打开新的聊天,点击 **+**,然后 **连接器**,并启用您要使用的连接器

### ChatGPT
1. 打开配置文件菜单并进入 **设置 → 应用 → 高级设置**
2. 启用 **开发者模式**
3. 点击 **创建应用** (右上角)
4. 填写表单:
1. **柏林开放数据MCP**
- 名称:berlin-open-data
- 描述:柏林开放数据MCP
- MCP服务器URL:https://berlin-open-data-mcp.onrender.com/mcp
- 身份验证:无身份验证
2. **Datawrapper MCP**
- 名称:datawrapper
- 描述:Datawrapper MCP
- MCP服务器URL:https://datawrapper-mcp.onrender.com/mcp
- 身份验证:无身份验证
5. 勾选确认框,然后点击 **创建**
6. 在新的聊天中,点击 **+** → **更多** 并选择您要使用的应用

❗确保您在每个新会话中激活MCP。
### Claude Desktop
**要求:**
- Claude Pro,Team或Enterprise计划(远程MCP服务器在免费层级上不可用)
- 互联网连接
将以下内容添加到您的Claude Desktop配置文件中:
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**:`~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"berlin-data": {
"command": "npx",
"args": ["mcp-remote", "https://berlin-open-data-mcp.onrender.com/mcp"]
},
"datawrapper": {
"command": "npx",
"args": ["mcp-remote", "https://datawrapper-mcp.onrender.com/mcp"]
},
}
}
```
在更新配置后重启Claude Desktop。
### Claude.ai 网页
**要求:**
- Claude Pro,Max,Team或Enterprise计划
- 连接器功能访问
从 [Claude.ai](https://claude.ai/) 使用自定义连接器:
1. 进入 **设置** → **连接器**
2. 点击 **添加自定义连接器** 在底部
3. 添加每个服务器:
**柏林开放数据MCP:**
| 字段 | 值 |
|-------|-------|
| URL | `https://berlin-open-data-mcp.onrender.com/mcp` |
| OAuth | 留空 |
**Datawrapper MCP:**
| 字段 | 值 |
|-------|-------|
| URL | `https://datawrapper-mcp.onrender.com/mcp` |
| OAuth | 留空 |
4. 点击 **添加** 保存
5. 打开新的聊天,点击 **+**,选择 **连接器**,并启用您要使用的连接器
6. 当Claude要求使用工具时,点击 **允许** (或 **始终允许**)
### 🐻 BärGPT
正在评估与BärGPT的集成
### VS Code
**要求:**
- **VS Code** 已安装。
- **基本的JSON文件知识**
将以下内容添加到您的用户设置或 `.vscode/settings.json` 中:
**使用托管端点(无需安装):**
```
{
"mcpServers": {
"xxx": {
"url": "xxx",
"type": "http"
}
}
}
```
**使用本地安装:**
```
{
"mcpServers": {
"xxx": {
"command": "npx",
"args": ["xxx"]
}
}
}
```
## 遇到问题? — 常见问题和故障排除
- 我如何在我选择的LLM中激活MCP?
一些聊天平台(例如ChatGPT)要求您 **在每个新会话中重新激活MCP连接器**。以下是方法:
1. 开始新的聊天。
2. 点击 **+** (或“应用”/“连接器”)。
3. 启用 **柏林开放数据MCP** 和/或 **Datawrapper MCP** 连接器。
- AI代理从哪些数据源获取数据?
**开放数据MCP** 代理仅从 [柏林开放数据门户](https://daten.berlin.de/) 获取数据集,该门户包含超过2500个公共数据集,涵盖交通、环境、人口统计和城市规划等主题。
**Datawrapper-MCP** 代理使用您提供的数据(例如,从Open-Data-MCP或您自己的文件)创建可视化,不会拉取额外的外部数据。
- AI代理可以读取和分析哪些类型的数据集?
**开放数据MCP** 和 **Datawrapper-MCP** 代理支持多种常见数据格式,包括:
- **表格数据:** CSV,Excel(XLS/XLSX),JSON
- **地理空间数据:** GeoJSON,KML,WFS(Web Feature Service)层
- **结构化数据:** 具有清晰列和行的API或数据集
如果数据集太大(超过2000行),代理可能难以直接处理,需要手动下载和上传。
- 现有数据集的值可以聚合并生成新表吗?
**是的!** **开放数据MCP** 代理可以聚合数据集中的值-例如求和、平均值、计数或分组分解-并使用结果生成新表。
- 下载和处理数据集的最大限制是什么?
是的,**开放数据MCP** 代理可以直接处理最多 **1000行** 或 **5000个WFS要素** 的数据集。对于较大的数据集,您需要手动下载文件,并在必要时过滤或预处理后再上传进行进一步分析。此限制确保在处理大多数常见用例时快速可靠的性能。
- 可以分析和处理地理数据集吗?
是的,代理可以:
- 分析 **GeoJSON,KML和WFS** 数据(例如,学校位置,空气质量区)。
- 创建 **地图或摘要** (例如,“按区划分的树木数量”)。
如果您想查看更多有用的工具,请参阅:
- 预览GeoJSON: [geojson.io](https://geojson.io/next/)
- 探索WFS层: [WFS Explorer](https://wfsexplorer.netlify.app/)
- 下载链接不起作用。
尝试以下步骤:
1. **检查您的互联网连接**。
2. **刷新页面** 或重新启动聊天工具。
3. **手动下载** 数据集从 [daten.berlin.de](https://daten.berlin.de/) 并上传到代理。
*☝🏼 另外,尝试询问代理链接为何无法使用。*
**开放数据MCP**
- 如何搜索数据集?
使用 **自然语言** (例如,德语/英语):
- *“查找有关潘科公共交通的数据集。”*
- *“显示2023年空气质量数据为CSV。”提示:* 使用 **标签** (例如,“Luftqualität”)或 **组织** (例如,“SenUVK”)进行筛选。
- 为什么代理找不到我的数据集?
可能的原因:
- **查询中的拼写错误**:尝试使用更简单的术语(例如,“schools”而不是“教育机构”)。
- **数据集不可机器读取**:PDF或扫描文件无法处理。
- **门户延迟**:柏林的开放数据每周同步一次-请在 [daten.berlin.de](https://daten.berlin.de/) 上查看更新。
- 我可以使用开放数据MCP分析其他城市或国家的数据吗?
不可以。 **开放数据MCP** 仅访问 **柏林的开放数据门户** 。对于其他地区,您需要手动上传数据。
**数据包装MCP**
- 我需要做什么才能在Datawrapper中创建数据可视化?
确保您已完成API令牌的设置并选择了所需的权限(参见上文)。
完成设置后,您可以直接向代理请求可视化,例如“创建按区划分的幼儿园数量的条形图”
- 可以生成哪些类型的图形?
**Datawrapper-MCP** 支持:
- **条形图**:水平条形图,带有变体(基本,堆叠,分裂)
- **柱状图**:垂直柱状图,带有变体(基本,分组,堆叠)
- **折线图**:单系列和多系列折线图,用于时间序列数据
- **面积图**:填充面积图
- **散点图**:X/Y散点图,用于相关性分析
- **点图**:水平点图,带有图例
- **范围图**:显示最小/最大范围并带有标记端点
- **箭头图**:显示两个值之间的变化方向
- **饼图和甜甜圈图**:部分到整体的可视化
- **选举甜甜圈图**:议会风格的座位分布图
- **表格**:格式化的数据表格
- **地图**:GeoJSON可视化(符号地图, choropleth)
*需要帮助选择?* 询问: *“我的数据用什么图表最好?”*

- 为什么我无法访问datawrapper?
检查以下内容:
1. **API令牌**:
- 它是否正确输入到连接器设置中?
- 您是否在当前聊天会话中包含它?
2. **权限**:您的令牌需要以下权限:
- `chart:read`,`chart:write`,`theme:read`,`user:read`,`visualization:read`
3. **帐户状态**:确保您的 [Datawrapper帐户](https://app.datawrapper.de/) 是活跃的。
**新手有用的侧边事实**
- 什么是JSON和GeoJSON文件?
**JSON** (JavaScript Object Notation)是一种简单的格式,用于存储数据。
**GeoJSON** 是使用JSON(JavaScript Object Notation)编码地理数据的标准格式,使得存储和共享基于位置的信息(如点、线和多边形)变得容易。
像 [geojson.io](http://geojson.io) 这样的工具可以帮助您在地图上预览GeoJSON文件。
- 如何打开WFS文件?
要可视化、分析或导出AI代理找到的WFS文件, [WFS资源管理器](https://wfsexplorer.netlify.app/) 可能对您有帮助。
- 我可以在没有编码技能的情况下使用代理吗?
试试吧,代理设计给非技术用户使用:
1. 用普通语言(德语/英语)提问。
2. 遵循本FAQ中的逐步指南。
3. 另外,尝试向代理请求帮助。
## 限制
为了评估各个功能的品质,我们使用我们选择的AI程序进行了自动和手动测试。以下是我们在测试过程中遇到的代理的一些限制:
- 代理可能会生成 **不正确或不完整的答案**,尤其是在数据集太大而代理无法直接分析时。请务必始终仔细检查生成的答案。
- 如果数据集太大(约2000条记录),可能需要手动下载和上传文件,因为AI无法直接分析它们。
- 有时无法检索WFS要素。
- 在某些情况下,无法检索和聚合CSV数据,尤其是大数据集。
- 这不是MCP代理本身的限制,而是如果诸如 柏林开放数据门户 缺乏机器可读的数据集,即使AI也无法使用这些信息。这强调了提供机器可读数据的重要性。