关于 Berlin Transport MCP Server
Berlin Transport MCP Server 通过 VBB API 将 MCP 客户端接入柏林公共交通数据。其双工具 Code Mode 可供模型发现 API 操作,并在沙盒中运行可串联请求的 JavaScript 代码。
主要功能
- 01搜索 VBB 站点和地点
- 02查询出发班次和行程
- 03发现 OpenAPI 操作
- 04执行沙盒 JavaScript
- 05串联多个 API 请求
适用场景
- 01查找柏林站点或兴趣点
- 02查看即将出发的班次
- 03规划地点间的行程
MCP 相关
向 MCP 客户端提供 `search` 和 `execute` 工具。服务通过 OpenAPI 规范描述 VBB 操作,并代理沙盒代码发出的请求。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
柏林交通 MCP 服务
一个 MCP 服务,可通过 VBB(Verkehrsverbund Berlin-Brandenburg)API 访问柏林公共交通数据。此服务封装了 v6.vbb.transport.rest API。
此服务使用 Code Mode:它不会为每个 API 操作单独提供一个 MCP 工具,而是将 VBB API 描述为 OpenAPI 规范,并且仅提供 search 和 execute 两个工具。模型读取规范后,会在沙盒化的 Dynamic Worker 中编写并运行一段简短的 JavaScript 代码来调用 API。与将每个工具的架构都塞进模型的上下文窗口相比,这种方式的扩展性要好得多,还能让模型在一次沙盒运行中串联多个调用(例如,搜索一个站点,然后获取该站点的出发信息)。
开始使用
npm install
npm run dev
这会在 http://localhost:8787/mcp 启动本地服务。
npm run deploy
这会将 Worker 部署到类似 berlin-transport-mcp.<your-account>.workers.dev/mcp 的 URL。
可用工具
search— 搜索 OpenAPI 规范(codemode.spec()),以便在调用 API 前了解可用操作、参数和响应结构。execute— 运行一段简短的异步 JavaScript 代码,通过codemode.request({ method, path, query })调用 VBB API。实际的 HTTP 请求由主机代理;沙盒无法直接访问网络。
底层 API 操作
向模型公开的 OpenAPI 规范涵盖以下操作:
getLocations(GET /locations)— 搜索站点、车站、地址和兴趣点。getDepartures(GET /stops/{id}/departures)— 获取站点即将出发的交通班次。getJourneys(GET /journeys)— 获取出发地和目的地之间的行程选项。
有关底层 API 的更多详情,请访问 v6.vbb.transport.rest/getting-started.html。
自定义 MCP 服务
传递给 openApiMcpServer 的 OpenAPI 规范和 request 代理函数都位于 src/index.ts 中。如需封装其他 API:
- 使用新 API 的路径和操作更新
API_ORIGIN和openApiSpec。 - 如果上游 API 需要不同的方法、身份验证标头或响应处理方式,请调整
request函数。
连接到 Cloudflare AI Playground
你可以从 Cloudflare AI Playground 连接到 MCP 服务;它是一个远程 MCP 客户端:
- 前往 https://playground.ai.cloudflare.com/
- 输入已部署的 MCP 服务 URL(
berlin-transport-mcp.<your-account>.workers.dev/mcp) - 现在,你可以直接在 Playground 中使用
search和execute工具了!
将 Claude Desktop 连接到 MCP 服务
你也可以使用 mcp-remote proxy,从本地 MCP 客户端连接到远程 MCP 服务。
如需从 Claude Desktop 连接到 MCP 服务,请按照 Anthropic 的快速入门指南 操作,并在 Claude Desktop 中前往 Settings > Developer > Edit Config。
使用以下配置更新:
{
"mcpServers": {
"berlin-transport": {
"command": "npx",
"args": [
"mcp-remote",
"https://berlin-transport.mcp-tools.app/mcp" // or if local http://localhost:8787/mcp
]
}
}
}
重启 Claude 后,你应该会看到 search 和 execute 工具已可用。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。