Back to MCP directory
publicPublicdnsLocal runtime

where_is_my_train_mcp

一个提供纽约地铁实时信息的MCP服务器,包括列车到站时间、车站搜索、服务状态和实时警报等功能,利用AI智能处理地理位置查询。

article

README

🚀 我的列车在哪里?MCP 服务器

这是一个用于获取纽约市地铁实时信息的 MCP 服务器。它借助人工智能/大语言模型(AI/LLM)的地理知识实现智能位置处理,并结合纽约大都会运输署(MTA)的实时数据,为车站、列车到站信息、警报和服务状态等提供结构化的 JSON 数据。

数据来自纽约大都会运输署(MTA) • 仅供个人使用 • 未得到 MTA 的认可 • 数据“按原样”提供

🚀 快速开始

快速示例

  • “我的列车在哪里?我在德卡尔布大道站找 Q 线列车”

✨ 主要特性

  • 实时列车到站信息:包含拥挤程度信息
  • 车站搜索:支持模糊匹配,并提供无障碍设施信息
  • 服务警报:提供服务中断分析
  • 智能位置处理:人工智能可将位置名称转换为坐标
  • 附近车站查找:支持使用 GPS 坐标或位置名称查找
  • 换乘信息:提供复杂线路的换乘信息
  • 实时 MTA GTFS - RT 数据:涵盖所有地铁线路

📦 安装指南

选项 1:在 Smithery 上使用(推荐)

即时访问:访问 smithery.ai/server/@sasabasara/where_is_my_train_mcp,点击“安装”,将其添加到您的 AI 客户端。 无需设置,可立即与 Claude、ChatGPT、Cursor 等支持 MCP 的客户端配合使用。

选项 2:本地运行

前提条件

  • Node.js 18+

快速启动

# 克隆并安装
git clone <your-repo>
cd whereismytrain-mcp
npm install

# 启动开发服务器(推荐)
npm run dev

# 或者启动传统 MCP 服务器
npm start

就这么简单! 服务器在首次运行时会自动下载并缓存 MTA GTFS 数据。

💻 使用示例

基础用法

可执行的操作

基于车站的查询

  • 查找车站:"查找时代广场站"
  • 查询下一班列车:"联合广场站的下一班列车"
  • 查询换乘信息:"大西洋大道站的换乘信息"

系统信息查询

  • 服务状态和警报
  • 实时服务中断情况
  • 列车拥挤数据

基于位置的搜索

  • 查找最近的车站:"时代广场附近的车站""苏豪区附近的车站"
  • 使用 GPS 坐标:lat: 40.7589, lon: -73.9851
  • 人工智能会自动将位置名称转换为坐标

无法执行的操作(受 MTA 数据限制)

复杂行程规划

  • ❌ 多模式交通(公交 + 地铁组合)
  • ❌ 考虑实时交通状况的路线规划
  • ❌ 拼车服务集成
  • ✅ 人工智能可链接工具进行基本的地铁行程规划

非地铁交通

  • ❌ 公交线路和时刻表
  • ❌ 长岛铁路(LIRR)、大都会北方铁路(Metro - North)、新泽西交通局(NJ Transit)
  • ❌ 渡轮、出租车、拼车信息
  • ✅ 仅支持纽约市地铁(所有线路:1 - 7、A - Z、区间车)

历史/未来数据

  • ❌ 过去的服务表现
  • ❌ 超过约 2 小时的时刻表
  • ❌ 计划中的服务变更(当前警报之外)
  • ✅ 仅提供实时数据(当前状况)

代码示例

// 核心功能
next_trains("Union Square", "N")  // 联合广场站的 N 线列车
find_station("herald", true)      // 查找有无障碍设施的先驱广场站
nearest_station({lat: 40.7589, lon: -73.9851})  // 使用 GPS 坐标查找最近的车站
station_transfers("Atlantic Ave") // 大西洋大道站的换乘选项
service_status("Q")              // Q 线的服务状态

// 人工智能增强查询
"stations near Times Square"      // 人工智能将位置名称转换为坐标
"how to get from SoHo to Brooklyn" // 人工智能链接多个工具进行行程规划
"any service alerts for my commute?" // 人工智能进行上下文理解

📚 详细文档

工具介绍

核心工具

  • next_trains:提供实时列车到站信息及拥挤程度指标
  • find_station:支持模糊车站搜索,并提供无障碍设施信息
  • nearest_station:查找最近的车站(人工智能可将位置名称转换为坐标)
  • station_transfers:提供车站的换乘选项

系统工具

  • service_status:提供全系统或特定线路的服务状态
  • subway_alerts:提供详细的服务警报,并支持过滤功能
  • service_disruptions:进行服务中断分析,并提供替代方案

🔧 技术细节

MTA 合规与使用条款

仅用于个人用途:此服务器专为个人非商业用途设计。

关键要求

  • 个人开发:允许直接访问 MTA 数据馈送
  • 公开分发:需要数据缓存服务器和 MTA 许可证
  • 📋 需要注明来源:输出中需包含“数据来自 MTA”
  • 🚫 禁止重新分发原始数据馈送

数据免责声明

  • 数据“按原样”提供,不保证准确性
  • 由于处理原因,数据可能存在延迟或不完整
  • 与 MTA 无关联,也未得到其认可

对于生产/公开使用,您必须实施适当的数据缓存基础设施并获得 MTA 许可。

部署方式

Smithery(推荐)

npx @smithery/cli deploy

传统 MCP

使用 npm start 通过标准输入输出协议与任何 MCP 客户端配合使用。

数据来源

  • 实时数据馈送:通过 MTA GTFS - RT 获取纽约市所有地铁线路的实时数据
  • 静态数据:车站、线路、换乘信息(自动下载)
  • 服务警报:实时服务中断和延误信息
  • 更新频率:每 30 秒更新一次(实时数据)

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client