内容
# 湾区交通MCP服务器
两个Cloudflare Workers提供MCP(模型上下文协议)访问湾区交通(BART)和旧金山公共交通(SF Muni)实时交通数据。与Claude、ChatGPT、Poke、Cursor等任何MCP兼容的客户端配合使用。
**您不需要部署任何内容。** 只需将您的MCP客户端指向下面托管的端点。
## 直播端点
- **BART**: `https://bart-mcp.srivastsh.workers.dev/mcp` — 无需认证,直接连接
- **Muni**: `https://muni-mcp.srivastsh.workers.dev/mcp` — 通过`x-api-key-511`头部传递您的免费511.org API密钥
这些运行在Cloudflare Workers的免费层(每天100k请求)。由于Muni服务器使用BYOK认证,每个用户的511速率限制都与其自己的密钥隔离。
## 快速入门
### BART(无需认证)
只需将URL添加到您的MCP客户端。无需API密钥。
### Muni(BYOK)
1. 在https://511.org/open-data/token获取免费的511.org API密钥
2. 在MCP配置中通过`x-api-key-511`头部传递
---
## 客户端配置
### Claude Desktop / Claude Code
```json
{
"mcpServers": {
"bart": {
"url": "https://bart-mcp.srivastsh.workers.dev/mcp"
},
"muni": {
"url": "https://muni-mcp.srivastsh.workers.dev/mcp",
"headers": {
"x-api-key-511": "您的511 API密钥"
}
}
}
}
```
### Poke
一键设置: [BART配方](https://poke.com/refer/vFEH7FR-kPn) | [Muni配方](https://poke.com/r/rqHQjgDqSzT)
或手动添加为远程MCP服务器:
- **URL**: `https://bart-mcp.srivastsh.workers.dev/mcp` 或 `https://muni-mcp.srivastsh.workers.dev/mcp`
- 对于Muni,设置自定义头部 `x-api-key-511` 为您的511密钥
### Cursor / Windsurf / stdio-only 客户端
使用 `mcp-remote` 作为桥梁:
```json
{
"mcpServers": {
"bart": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-remote", "https://bart-mcp.srivastsh.workers.dev/mcp"]
},
"muni": {
"command": "npx",
"args": [
"-y", "@anthropic-ai/mcp-remote",
"https://muni-mcp.srivastsh.workers.dev/mcp",
"--header", "x-api-key-511:您的511 API密钥"
]
}
}
}
```
---
## 可用工具
### BART(5种工具)
| 工具 | 描述 |
|------|-------------|
| `bart_stations` | 列出所有BART车站及其代码 |
| `bart_departures` | 车站的实时出发信息 |
| `bart_trip` | 规划两个车站之间的行程 |
| `bart_advisories` | 当前服务公告 |
| `bart_fare` | 两个车站之间的票价查询 |
### Muni(7种工具)
| 工具 | 描述 |
|------|-------------|
| `transit_operators` | 列出所有511交通运营商 |
| `muni_routes` | 列出所有Muni线路 |
| `muni_departures` | 车站的实时出发信息 |
| `muni_line` | 线路详情及车站列表 |
| `muni_alerts` | 当前服务警报 |
| `muni_vehicles` | 实时车辆GPS位置 |
| `muni_schedule` | 线路的时间表 |
---
## 部署您自己的
大多数用户不需要部署 — 只需使用上面的托管端点。但如果您想要自己的实例:
### 先决条件
- Node.js 18+
- Cloudflare账户(免费层有效)
- `wrangler` CLI: `npm install -g wrangler`
### BART Worker
```bash
cd bart-mcp
npm install
wrangler login
wrangler deploy
```
公共BART演示密钥(`MW9S-E7SL-26DU-VV8V`)已内置于 `wrangler.toml`。无需密钥。
### Muni Worker
```bash
cd muni-mcp
npm install
wrangler deploy
```
可选地设置一个备用511密钥(用于没有头部密钥时):
```bash
wrangler secret put API_511_KEY
```
---
## 架构
- **运行时**: Cloudflare Workers(V8隔离)
- **传输**: `WebStandardStreamableHTTPServerTransport`(无状态,每个请求一个服务器)
- **认证**: 通过请求头BYOK,可选环境密钥备用
- **验证**: 所有工具输入的Zod模式
- **CORS**: 启用所有来源
- **API来源**: api.bart.gov(BART),api.511.org(Muni/511)