返回市场
MBTA-MCP服务器

MBTA-MCP服务器

作者:cubismod0 星标更新:2025-11-21

项目介绍

MBTA MCP 服务器

PyPI - 版本

MBTA MCP 服务器是一个用于 MBTA V3 API 的 Model Context Protocol (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: 开发环境设置

  1. 克隆并安装依赖项:

    git clone https://github.com/cubismod/mbta-mcp.git
    cd mbta-mcp
    uv sync
    
  2. 配置您的 MBTA API 密钥:

    cp .env.example .env
    # 编辑 .env 并添加您的 MBTA_API_KEY
    
  3. https://api-v3.mbta.com 获取 API 密钥。

使用

MCP 服务器(用于 AI 客户端)

运行 MCP 服务器以供像 Claude Desktop 这样的 AI 客户端使用:

# 直接运行(无需安装)
uv tool run mbta-mcp

# 如果已作为工具安装
mbta-mcp

# 如果使用开发环境设置
uv run mbta-mcp

命令行界面(直接使用)

直接通过命令行访问 MBTA 和 Amtrak 数据:

# 显示可用命令
uv run mbta-cli --help

# 获取 Amtrak 列车
uv run mbta-cli trains --limit 5

# 以 JSON 格式获取 Amtrak 列车
uv run mbta-cli trains --json --limit 3

# 测试 MBTA 路线
uv run mbta-cli routes

# 显示可用 MCP 工具
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 获取一般警报(延误、中断、服务信息)

波士顿 Amtrak 跟踪器 API:

  • mbta_get_amtrak_trains - 从波士顿 Amtrak 跟踪器 API 获取所有跟踪的 Amtrak 列车
  • mbta_get_amtrak_trains_geojson - 将 Amtrak 列车作为 GeoJSON 提供给映射应用程序
  • mbta_get_amtrak_health_status - 获取波士顿 Amtrak 跟踪器 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(默认:110)

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

从外部 API 获取实时车辆位置,以 GeoJSON 格式返回。

  • 参数:
  • 返回: 包含车辆位置、路线、状态、速度和航向信息的 GeoJSON

mbta_get_external_alerts

从外部 API 获取一般警报,包括延误、中断和服务信息。

  • 参数:
  • 返回: 包含警报详情、严重程度级别、受影响的路线/站点和活动期间的 JSON

波士顿 Amtrak 跟踪器 API 工具

mbta_get_amtrak_trains

从波士顿 Amtrak 跟踪器 API 获取所有跟踪的 Amtrak 列车。

  • 参数:
  • 返回: 包含实时 Amtrak 列车位置、路线、状态、速度和其他信息的 JSON

mbta_get_amtrak_trains_geojson

将 Amtrak 列车作为 GeoJSON 提供给映射应用程序。

  • 参数:
  • 返回: 适合映射的 GeoJSON 特征集合,包含列车位置

mbta_get_amtrak_health_status

获取波士顿 Amtrak 跟踪器 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:

  • 起点和终点坐标及其附近的交通站点
  • 多条路线备选方案及其详细分段
  • 步行方向和交通连接
  • 实时出发预测和时刻表信息
  • 换乘点和站间步行时间
  • 每条路线选项的无障碍信息

示例用法:

从 MIT 规划到哈佛广场的行程:
- origin_lat: 42.3601
- origin_lon: -71.0942
- dest_lat:  42.3736
- dest_lon:  -71.1190
- max_walk_distance: 600
- prefer_fewer_transfers: true

mbta_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 相同的详细结构。

示例用法:

当地铁延误时寻找公交替代路线:
- origin_lat: 42.3601
- origin_lon: -71.0942
- dest_lat:  42.3736
- dest_lon:  -71.1190
- primary_route_modes: ["1", "0"]  // 排除地铁和轻轨
- max_walk_distance: 1000

行程规划用例

早晨通勤规划: 使用 mbta_plan_trip 和出发时间来找到每天通勤的最佳路线,考虑实时延误和服务警报。

无障碍优先路由: 启用 wheelchair_accessible: true 以确保所有建议的路线都是完全无障碍的,包括车站的电梯和坡道。

服务中断备份: 当警报显示地铁延误时,使用 mbta_get_route_alternatives 查找避开受影响线路的公交路线。

大型活动规划: 对于大型活动,规划更长步行距离和更多换乘的行程,以分散乘客负载。

游客协助: 结合行程规划、附近站点和预测,帮助游客高效地导航波士顿的交通系统。

与 LLM 的集成

Claude Desktop

方案 1: 使用 uv 工具运行(最简单 - 不需要安装)

添加到 Claude Desktop 配置:

在 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 工具安装(推荐用于常规使用)

  1. 安装 MCP 服务器:

    uv tool install mbta-mcp
    
  2. 添加到 Claude Desktop 配置:

    在 macOS 上,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

    {
      "mcpServers": {
        "mbta": {
          "command": "mbta-mcp",
          "env": {
            "MBTA_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

    在 Windows 上,编辑