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 文件。
微信扫一扫