Skip to main content
Glama

Where's My Train? — MCP Server (NYC Subway)

Smithery

NYC subway info for Claude and other AI assistants: train arrivals, delays, elevators, and stations, from MTA data feeds.

Data from MTA feeds, served from this project's own server. It may not be real time, and may be inaccurate or incomplete. Personal use only. Not affiliated with, endorsed, or licensed by the MTA. Provided “as is”.

Connect

No install, no API key. The server is hosted at:

https://whereismytrainmcp-production.up.railway.app/mcp

Related MCP server: NS Travel MCP Server

Ask it things like

  • "When's the next uptown 6 at Union Square?"

  • "Next Manhattan-bound L from Bedford?"

  • "Is the 2 train running OK right now?"

  • "Is the elevator working at 34th St?"

  • "Nearest accessible station to the Empire State Building?"

  • "Any weekend service changes on the L?"

If a name fits several stations ("23rd St"), it asks which one.

Tools

Tool

What it does

next_trains

Predicted arrivals by station or stop ID, filtered by line and direction

service_disruptions

Is service disrupted right now — by line, area, or system-wide

subway_alerts

Official MTA alerts, current or upcoming

service_status

Quick snapshot: trains running and top alerts

nearest_station

Stations near a location, with lines and accessibility

find_station

Station search by name

station_transfers

Every line reachable at a station

elevator_and_escalator_status

Current and upcoming outages, with MTA detours

Data

  • Arrivals: MTA GTFS-realtime feeds (protobuf), cached for 30 seconds, so predictions may lag the MTA. confirmed: true means the MTA has assigned a train to the trip. If a feed fails, predictions up to five minutes old may be returned with staleFeeds and a warning. Older feeds are rejected; canceled trips and skipped stops are excluded.

  • Alerts: MTA service alerts, with the MTA's own type and severity. Cached for 30 seconds.

  • Elevators: MTA elevator and escalator outage feeds, cached for 30 seconds. Equipment counts describe installed equipment, not a guarantee of an accessible route.

  • Stations: MTA static GTFS plus the MTA Subway Stations list for complexes, directions, and accessibility.

Run locally

Requires Node.js 22+.

git clone https://github.com/sasabasara/where_is_my_train_mcp.git
cd where_is_my_train_mcp
npm install
npm run build
npm start        # http://localhost:3000/mcp
npm test         # unit tests

Tests include local HTTP/MCP integration checks and require permission to listen on localhost. For an optional read-only audit against MTA data and the hosted server, run node scripts/audit-live.mjs after building. It checks every station, compares arrivals with independently decoded feeds, and writes its results to .dev_docs/audit-results.json.

The hosted server uses in-memory MCP sessions and currently requires a single instance. Request logs omit GPS coordinates from nearest_station calls.

License

MIT

Related MCP Connectors

Related MCP Servers