MBTA MCP服务器
MBTA V3 API的MCP(模型上下文协议)服务器,提供对波士顿公共交通数据的访问。
特性
- 路线:获取MBTA路线信息(地铁、公共汽车、通勤铁路、渡轮)
- 停止:按位置、路线或ID查找中转站
- 预测:实时到达预测
- 日程表:预定服务时间
- 旅行:行程信息和详细信息
- 警报:服务警报和中断
- 车辆:实时车辆位置
- 行程计划:具有实时数据的智能多模式行程规划
- 路线备选方案:具有传输优化的替代路由选项
- 外部API:外部来源的车辆位置和警报
- 跟踪预测:基于机器学习的轨道分配预测
- 历史数据:访问历史轨迹分配和绩效指标
- 缓存:基于内存的缓存,具有可配置的TTL,可提高性能
安装
选项1:使用紫外线直接运行(最简单)
无需安装!直接运行:
uv tool run mbta-mcp将MBTA API密钥设置为环境变量:
export MBTA_API_KEY=your_api_key_here
uv tool run mbta-mcp选项2:作为工具安装
直接用uv工具安装:
uv tool install mbta-mcp设置MBTA API密钥:
export MBTA_API_KEY=your_api_key_here运行服务器:
mbta-mcp选项3:开发设置
- 克隆和安装依赖关系:
git clone https://github.com/cubismod/mbta-mcp.git
cd mbta-mcp
uv sync- 配置MBTA API密钥:
cp .env.example .env
# Edit .env and add your MBTA_API_KEY- 从获取API密钥
用法
MCP服务器(用于AI客户端)
运行MCP服务器,以便与Claude Desktop等AI客户端一起使用:
# Direct run (no installation needed)
uv tool run mbta-mcp
# If installed as a tool
mbta-mcp
# If using development setup
uv run mbta-mcpCLI界面(直接使用)
要直接通过命令行访问MBTA和Amtrak数据:
# Show available commands
uv run mbta-cli --help
# Get Amtrak trains
uv run mbta-cli trains --limit 5
# Get Amtrak trains in JSON format
uv run mbta-cli trains --json --limit 3
# Test MBTA routes
uv run mbta-cli routes
# Show available MCP tools
uv run mbta-cli tools可用工具
核心运输数据:
mbta_get_routes-获取MBTA路线(地铁、公共汽车、通勤铁路、渡轮)mbta_get_stops-按ID、路线或位置获取MBTA站点mbta_get_predictions-获取实时到达预测mbta_get_schedules-获取预定服务时间mbta_get_trips-获取行程信息和详细信息mbta_get_alerts-获取服务警报和中断mbta_get_vehicles-获取实时车辆位置
旅行计划:
mbta_plan_trip-利用实时数据和换乘优化规划多模式行程mbta_get_route_alternatives-寻找具有不同交通方式的替代路线
扩展功能:
mbta_get_services-获取服务定义和日历mbta_get_shapes-获取路线形状/路径信息以进行映射mbta_get_facilities-获取设施信息(电梯、自动扶梯、停车场)mbta_get_live_facilities-获取实时设施状态和停机情况mbta_search_stops-按名称或位置附近搜索站点mbta_get_nearby_stops-在特定位置附近停车mbta_get_predictions_for_stop-获取特定站点的所有预测
外部API工具:
mbta_get_vehicle_positions-从外部API获取实时车辆位置(GeoJSON格式)mbta_get_external_alerts-从外部API获取常规警报(延迟、中断、服务信息)
波士顿美铁追踪API:
mbta_get_amtrak_trains-从波士顿Amtrak Tracker API获取所有追踪的Amtrak列车mbta_get_amtrak_trains_geojson-获取Amtrak列车作为GeoJSON用于地图应用程序mbta_get_amtrak_health_status-获取波士顿Amtrak Tracker API的健康状况
IMT轨迹预测API:
mbta_get_track_prediction-预测列车将在车站使用哪条轨道mbta_get_chained_track_predictions-在单个请求中获取多个轨迹预测mbta_get_prediction_stats-获取预测统计数据和准确性指标mbta_get_historical_assignments-获取历史轨迹分配以供分析
工具参考
核心运输数据工具
mbta_get_routes
获取有关MBTA路线的信息,包括地铁、公共汽车、通勤铁路和渡轮服务。
- 参数:
route_id(可选),route_type(可选),page_limit(默认值:10) - 路线类型: 0=轻轨,1=地铁,2=通勤铁路,3=公共汽车,4=渡轮
mbta_get_stops
使用可选过滤功能按位置、路线或ID查找中转站。
- 参数:
stop_id(可选),route_id(可选),latitude/longitude(可选),radius(可选),page_limit(默认值:10)
mbta_get_predictions
获取MBTA服务的实时到达预测。
- 参数:
stop_id(可选),route_id(可选),trip_id(可选),page_limit(默认值:10)
mbta_get_schedules
获取预定的服务时间和出发信息。
- 参数:
stop_id(可选),route_id(可选),trip_id(可选),direction_id(可选),page_limit(默认值:10)
mbta_get_trips
获取MBTA服务的行程信息和详细信息。
- 参数:
trip_id(可选),route_id(可选),direction_id(可选),page_limit(默认值:10)
mbta_get_alerts
获取影响MBTA服务的服务警报和中断。
- 参数:
alert_id(可选),route_id(可选),stop_id(可选),page_limit(默认值:10)
mbta_get_vehicles
获取实时车辆位置和状态信息。
- 参数:
vehicle_id(可选),route_id(可选),trip_id(可选),page_limit(默认值:10)
扩展功能工具
mbta_get_services
获取MBTA操作的服务定义和日历。
- 参数:
service_id(可选),page_limit(默认值:10)
mbta_get_shapes
获取路线形状/路径信息以进行映射和可视化。
- 参数:
shape_id(可选),route_id(可选),page_limit(默认值:10)
mbta_get_facilities
获取设施信息,包括电梯、自动扶梯和停车区。
- 参数:
facility_id(可选),stop_id(可选),facility_type(可选),page_limit(默认值:10)
mbta_get_live_facilities
获取实时设施状态和停机信息。
- 参数:
facility_id(可选),page_limit(默认值:10)
mbta_search_stops
按名称或特定位置附近搜索站点。
- 参数:
query(必填),latitude/longitude(可选),radius(可选),page_limit(默认值:10)
mbta_get_nearby_stops
在指定半径内的特定位置附近停车。
- 参数:
latitude(必填),longitude(必填),radius(默认值:1000),page_limit(默认值:10)
mbta_get_predictions_for_stop
使用可选过滤功能获取特定站点的所有预测。
- 参数:
stop_id(必填),route_id(可选),direction_id(可选),page_limit(默认值:10)
外部API工具
mbta_get_vehicle_positions
以GeoJSON格式从外部API获取实时车辆位置。
- 参数: 无
- 退货: GeoJSON包含车辆位置、路线、状态、速度和方位信息
mbta_get_external_alerts
从外部API获取常规警报,包括延迟、中断和服务信息。
- 参数: 无
- 退货: JSON,包含警报详细信息、严重级别、受影响的路线/站点和活动时段
波士顿Amtrak Tracker API工具
mbta_get_amtrak_trains
从波士顿Amtrak Tracker API获取所有追踪的Amtrak列车。
- 参数: 无
- 退货: JSON,包含实时Amtrak列车位置、路线、状态、速度和其他信息
mbta_get_amtrak_trains_geojson
获取Amtrak列车作为GeoJSON用于地图应用程序。
- 参数: 无
- 退货: GeoJSON特征集合,包含适合映射的列车位置
mbta_get_amtrak_health_status
获取波士顿美铁追踪API的健康状况。
- 参数: 无
- 退货: 带有服务器健康状态和上次数据更新时间的JSON
IMT轨迹预测API工具
mbta_get_track_prediction
使用机器学习预测列车将在特定车站使用哪条轨道。
- 参数:
station_id(必填),route_id(必填),trip_id(必填),headsign(必填),direction_id(必填),scheduled_time(必填) - 退货: 基于置信度得分的轨迹预测及其预测方法
mbta_get_chained_track_predictions
在单个批处理请求中获取多个跟踪预测。
- 参数:
predictions(必填)-预测请求对象数组 - 退货: 带有置信度分数的轨迹预测数组
mbta_get_prediction_stats
获取车站和路线的预测统计数据和准确性指标。
- 参数:
station_id(必填),route_id(必填) - 退货: 统计数据,包括准确率、总预测、正确预测和平均置信度
mbta_get_historical_assignments
获取历史轨迹分配以进行分析和模式识别。
- 参数:
station_id(必填),route_id(必填),days(默认值:30) - 退货: 具有实际使用模式的历史轨迹分配数据
旅行计划工具
MBTA MCP服务器提供智能行程规划功能,将实时交通数据与多模式行程优化相结合。这些工具有助于规划MBTA网络中的高效行程,并支持无障碍要求和换乘偏好。
mbta_plan_trip
利用实时数据和换乘优化规划多模式行程。该工具根据步行距离、换乘限制和可达性要求,找到两个地点之间的最佳公交路线。
参数:
origin_lat(必填):原点纬度坐标origin_lon(必填):原点经度坐标dest_lat(必填):目的地纬度坐标dest_lon(必填):目的地经度坐标departure_time(可选):ISO 8601格式的出发时间(例如,“2025-01-01T10:00:00-05:00”)max_walk_distance(可选):最大步行距离(米)(默认值:800)max_transfers(可选):允许的最大传输次数(默认值:2)prefer_fewer_transfers(可选):优先考虑换乘次数较少的路线(默认值:true)wheelchair_accessible(可选):仅包括可访问的路线和车辆(默认值:false)
退货: JSON,带有行程选项,包括:
- 起点和终点与附近公交车站的坐标
- 具有详细路段的多条路线备选方案
- 步行路线和交通连接
- 实时出发预测和时间表信息
- 换乘点和车站之间的步行时间
- 每个路线选项的可达性信息
示例用法:
Plan a trip from MIT to Harvard Square:
- origin_lat: 42.3601
- origin_lon: -71.0942
- dest_lat: 42.3736
- dest_lon: -71.1190
- max_walk_distance: 600
- prefer_fewer_transfers: truembta_get_route_alternatives
寻找不同交通方式的替代路线。此工具排除指定的主路由类型以发现备份选项,这在主路由服务中断时非常有用。
参数:
origin_lat(必填):原点纬度坐标origin_lon(必填):原点经度坐标dest_lat(必填):目的地纬度坐标dest_lon(必填):目的地经度坐标primary_route_modes(可选):要排除的路线类型ID数组(例如,\[“1”\]排除地铁)departure_time(可选):ISO 8601格式的出发时间max_walk_distance(可选):最大步行距离(米)(默认值:800)max_transfers(可选):最大转账数(默认值:2)wheelchair_accessible(可选):要求可访问的路由(默认值:false)
路线类型ID:
"0"-轻轨(绿线支线)"1"-地铁(红线、橙线、蓝线)"2"-通勤铁路"3"-公交车"4"-渡船
退货: 除指定主要模式外的替代路线选项,其详细结构与 mbta_plan_trip.
示例用法:
Find bus alternatives when subway is disrupted:
- origin_lat: 42.3601
- origin_lon: -71.0942
- dest_lat: 42.3736
- dest_lon: -71.1190
- primary_route_modes: ["1", "0"] // Exclude subway and light rail
- max_walk_distance: 1000旅行计划用例
上午通勤计划: 使用 mbta_plan_trip 根据出发时间,考虑实时延误和服务提醒,为您的日常通勤找到最佳路线。
可访问性优先路由: 启用 wheelchair_accessible: true 确保所有建议的路线都完全无障碍,包括车站的电梯和坡道。
服务中断备份: 当警报显示地铁延误时,使用 mbta_get_route_alternatives 寻找避开受影响线路的公交线路。
活动策划: 对于大型活动,计划步行距离更长、换乘次数更多的行程,以在整个交通网络中分配乘客量。
旅游援助: 将旅行计划与附近的站点和预测相结合,帮助游客高效地浏览波士顿的交通系统。
与LLM集成
克劳德桌面
选项1:使用uv工具运行(最简单-无需安装)
添加到Claude桌面配置:
在macOS上,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mbta": {
"command": "uv",
"args": ["tool", "run", "mbta-mcp"],
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}在Windows上,编辑 %APPDATA%\Claude\claude_desktop_config.json 内容相同。
选项2:使用uv工具安装(建议常规使用)
- 安装MCP服务器:
uv tool install mbta-mcp- 添加到Claude桌面配置:
在macOS上,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mbta": {
"command": "mbta-mcp",
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}在Windows上,编辑 %APPDATA%\Claude\claude_desktop_config.json 内容相同。
选项3:使用开发设置
- 克隆并设置MCP服务器:
git clone https://github.com/cubismod/mbta-mcp.git
cd mbta-mcp
task install-dev
task verify # Ensure everything works- 配置MBTA API密钥:
cp .env.example .env
# Edit .env and add: MBTA_API_KEY=your_api_key_here- 添加到Claude桌面配置:
在macOS上,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mbta": {
"command": "uv",
"args": ["run", "mbta-mcp"],
"cwd": "/path/to/your/mbta-mcp",
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}在Windows上,编辑 %APPDATA%\Claude\claude_desktop_config.json 内容相同。
重新启动克劳德桌面 你会在里面看到“mbta”🔌 图标,表示MCP服务器已连接。
其他MCP兼容LLM
Continue.dev
使用uv工具运行(最简单):
{
"mcpServers": [
{
"name": "mbta",
"command": "uv",
"args": ["tool", "run", "mbta-mcp"],
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
]
}使用uv工具安装:
{
"mcpServers": [
{
"name": "mbta",
"command": "mbta-mcp",
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
]
}或者使用开发设置:
{
"mcpServers": [
{
"name": "mbta",
"command": "uv",
"args": ["run", "mbta-mcp"],
"cwd": "/path/to/your/mbta-mcp",
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
]
}可待因
使用uv工具运行(最简单):
{
"mcp": {
"servers": {
"mbta": {
"command": ["uv", "tool", "run", "mbta-mcp"],
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}
}使用uv工具安装:
{
"mcp": {
"servers": {
"mbta": {
"command": ["mbta-mcp"],
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}
}或者使用开发设置:
{
"mcp": {
"servers": {
"mbta": {
"command": ["uv", "run", "mbta-mcp"],
"cwd": "/path/to/your/mbta-mcp",
"env": {
"MBTA_API_KEY": "your_api_key_here"
}
}
}
}
}通用MCP客户端
使用uv工具运行(最简单):
- 命令:
uv tool run mbta-mcp - 环境:
MBTA_API_KEY=your_api_key_here
使用uv工具安装:
- 命令:
mbta-mcp - 环境:
MBTA_API_KEY=your_api_key_here
使用开发设置:
- 命令:
uv run mbta-mcp - 工作目录:
/path/to/your/mbta-mcp - 环境:
MBTA_API_KEY=your_api_key_here
使用示例
一旦连接,你可以问你的法学硕士问题,比如:
核心运输信息:
- “下一班从哈佛出发的红线列车是什么?”
- “绿线有任何服务警报吗?”
- “找到北纬42.3601°、西经71.0589°的最近T站”
- “肯德尔广场有哪些公交线路?”
- “给我看一路公交车的时刻表”
- “获取所有MBTA车辆的实时车辆位置”
- “当前的服务警报和延迟是什么?”
旅行计划:
- 计划一次从麻省理工学院(42.3601,-71.0942)到哈佛广场(42.3736,-71.1190)的旅行
- “我如何仅使用无障碍路线从后湾前往洛根机场?”
- “寻找从市中心十字路口到芬威的避开绿线的替代路线”
- “计划从南站到剑桥的轮椅无障碍旅程,步行最少”
- “明天上午8:30从肯德尔广场到科普利的最佳方式是什么?”
- “当红线关闭时,向我展示从哈佛到麻省理工学院的巴士替代方案”
- “计划一次行程,最多可步行1200米,最多可换乘3次”
高级功能:
- “预测下午3:30普罗维登斯列车将在南站使用哪条轨道”
- “显示南站的轨道预测精度统计数据”
- “获取过去30天的历史轨迹分配”
- “获取波士顿地区所有当前的Amtrak列车”
- “将Amtrak列车显示为GeoJSON进行映射”
- “检查Amtrak跟踪器API的健康状态”
故障排除
服务器未连接:
- 验证配置中的路径是否正确
- 确保
uv已安装并位于您的PATH中 - 检查MBTA API密钥是否有效
- 跑
task test-server验证服务器是否正常工作
API速率限制:
- MBTA API有费率限制;服务器包括分页功能来管理此内容
- 有些端点在没有API键的情况下工作,但有一个键会增加限制
配置问题:
- 确保您的
.env文件位于项目根目录中 - API密钥应设置为
MBTA_API_KEY=your_key_here - 如果服务器无法启动,请检查Claude Desktop日志
API关键要求
- 免费访问: 许多端点在没有API密钥的情况下工作(具有较低的速率限制)
- API的主要优势: 更高的速率限制和对所有功能的访问
- 获取密钥: 注册地址:
- 用途: 产生
.env文件或环境变量MBTA_API_KEY
外部API
此MCP服务器与其他外部API集成,以提供增强的功能:
车辆位置API
- 端点:
- 格式: 具有实时车辆位置、路线和状态的GeoJSON
- 不要求进行验证
- 数据: 车辆坐标、路线信息、速度、方位、占用状态
外部警报API
- 端点:
- 格式: 带有服务警报、延迟和中断的JSON
- 不要求进行验证
- 数据: 警报标题、影响、严重程度、受影响的路线/站点、活动时段
IMT轨道预测API
- 端点:
- 格式: 基于机器学习的JSON轨道预测
- 不要求进行验证
- 数据: 跟踪预测、置信度得分、历史任务、准确性指标
波士顿美铁追踪API
- 端点:
- 格式: JSON和GeoJSON与实时Amtrak列车跟踪
- 不要求进行验证
- 数据: 列车位置、路线、状态、速度和健康信息
发展
此项目使用 任务 用于构建自动化。安装并运行:
task --list # Show available tasks常见任务
task install-dev # Install dependencies including dev tools
task check # Run all checks (format, lint, typecheck)
task test-server # Test MCP server functionality
task run # Run the MBTA MCP server
task verify # Full project verification手动命令
安装开发依赖项:
uv sync --dev运行格式化程序和过梁程序:
task format # or: uv run ruff format mbta_mcp/
task lint # or: uv run ruff check mbta_mcp/
task typecheck # or: uv run mypy mbta_mcp/