MTA MCP. Track every train, bus, and rail movement across NYC.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
MTA connects your AI agent to real-time New York City public transit data. Track live GPS positions for every subway train, bus vehicle, LIRR, and Metro-North service across all boroughs.
You get instant arrivals, full route maps, and immediate alerts on any system disruption.
What your AI agents can do
Get bus estimated arrival
Returns predicted arrival times for buses at a stop, optionally filtering by specific route numbers.
Get bus predictions
Provides real-time estimates and delay status for the next arriving bus at a specified stop ID.
Get bus routes
Lists every official MTA bus route, including its name, operator, and service area within NYC.
Get the real-time GPS coordinates and operational status of every active MTA bus vehicle across New York City.
Calculate estimated arrival times for buses at any specific stop, supporting both single routes and multi-route queries.
Get live train positions and service updates for the LIRR and Metro-North Railroad lines into Manhattan.
Retrieve detailed information, including coordinates and station codes, for all 472 NYC Subway stations and every bus route in the system.
Check current alerts across the entire MTA system regarding delays, maintenance work, or incidents affecting any line or service.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
MTA MCP Server: 12 Tools for Transit Data
These tools give your AI agent access to live feeds, historical data points, station lists, and real-time vehicle positions across the entire MTA system.
019d75d9get bus estimated arrival
Returns predicted arrival times for buses at a stop, optionally filtering by specific route numbers.
019d75d9get bus predictions
Provides real-time estimates and delay status for the next arriving bus at a specified stop ID.
019d75d9get bus routes
Lists every official MTA bus route, including its name, operator, and service area within NYC.
019d75d9get bus stops
Finds all official bus stops in the network, returning their coordinates and unique stop IDs for tracking.
019d75d9get bus vehicle at stop
Tracks buses that are currently at or rapidly approaching a specific bus stop location.
019d75d9get bus vehicles
Gathers the real-time coordinates, speed, and route ID for every active MTA bus on the road system-wide.
019d75d9get lirr feed
Retrieves live train positions, trip updates, and delay information for the Long Island Rail Road.
019d75d9get metro north feed
Provides real-time train tracking data and service disruption status for Metro-North Railroad lines into NYC.
019d75d9get service alerts
Checks the current system status, listing active disruptions, affected lines, and recommended workarounds across all MTA modes.
019d75d9get stations
Lists every subway station in NYC with its coordinates, borough, and type of entrance structure.
019d75d9get subway feed
Delivers real-time train positions, trip updates, and arrival predictions for specific groups of NYC Subway lines (e.g., the 1/2/3 line).
019d75d9get system time
Returns a standardized timestamp from the MTA system to help sync clocks and validate API connectivity.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with MTA, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
MTA MCP Server - Real-time NYC Transit Tracking
Your agent connects directly to the MTA's live data feed, giving you real-time status for every major transit mode: subway trains, buses across all boroughs, and commuter rails like LIRR and Metro-North. You don't have to juggle five different websites to figure out your commute; your AI client asks one question and gets the immediate answer based on live vehicle positions and system disruptions.
Bus System Tracking
You can get a full list of every official MTA bus route, including its name, operator, and service area across NYC, using get_bus_routes. If you need to know where any bus is right now, you call get_bus_vehicles, which provides the real-time coordinates, speed, and route ID for every active MTA bus on the road system-wide.
To find all potential stops in the network, use get_bus_stops to retrieve their unique stop IDs and coordinates.
For predicting arrivals at a specific location, you've got two options: get_bus_predictions gives you the real-time estimate and delay status for the very next bus arriving at any specified stop ID. If you prefer filtering by route number, get_bus_estimated_arrival predicts arrival times for buses at a stop, letting you optionally narrow down the search to specific routes.
To pinpoint vehicles near your current location, get_bus_vehicle_at_stop tracks any buses that are currently stopped or rapidly approaching a particular bus stop spot.
Subway and Station Data
Your agent gets real-time train positions, trip updates, and arrival predictions for specific groups of subway lines—for instance, if you're tracking the 1/2/3 line, get_subway_feed delivers that info. To map out the system, get_stations lists every single subway station in NYC, giving you its coordinates, borough, and type of entrance structure.
For overall network awareness, get_bus_stops and get_stations both provide unique IDs and precise coordinates for thousands of locations across Manhattan, Brooklyn, and beyond.
Commuter Rail & System Status
When you're dealing with the rails, your agent monitors two key services. For the Long Island Rail Road, get_lirr_feed retrieves live train positions, trip updates, and delay information. Similarly, for Metro-North Railroad lines into NYC, get_metro_north_feed provides real-time tracking data and service disruption status. To check on any systemic problems across all modes—buses, subway, or commuter rail—you call get_service_alerts, which checks the current system status listing active disruptions, affected lines, and recommended workarounds for the entire MTA network.
Finally, if your client needs to sync up clocks or validate connectivity against the source data, you can use get_system_time to get a standardized timestamp directly from the MTA system.
How MTA MCP Works
- 1 Subscribe to the server and input your free MTA API key.
- 2 Your AI client sends a request (e.g., 'Where is the next M15 bus?').
- 3 The server executes the necessary tool call, pulls real-time data, and returns structured results directly to your agent.
The bottom line is: Your agent handles all the API calls and complex data parsing so you just get a clean answer in plain language.
Who Is MTA MCP For?
Anyone building an application or workflow that needs real-time, cross-modal transit intelligence. If your product is anything from logistics tracking to tourist navigation, this data feeds it. It's for the ops engineer who’s tired of stitching together Google Maps APIs with separate LIRR trackers.
Build journey planning features that show real-time bus and subway arrival estimates, handling multiple modes in one view.
Model fleet movements or delivery schedules dependent on accurate transit time estimates for pick-ups and drop-offs.
Research service patterns, track historical vehicle positions, and model system reliability across different MTA lines using the raw feed data.
What Changes When You Connect
- Real-time Tracking: Use
get_bus_vehiclesto map the precise GPS location of your entire bus fleet in real time. This is better than just knowing a route exists; you know where it is right now. - Cross-Modal Planning: Your agent combines feeds from
get_subway_feed,get_lirr_feed, and bus predictions into one itinerary, making multi-stage trips simple to calculate. - Predictive Accuracy: Instead of just knowing a line runs, use
get_bus_estimated_arrivalto tell passengers exactly when the next vehicle will pull up to their specific stop. - Disruption Awareness: Before running any trip calculation, call
get_service_alerts. This prevents your agent from giving outdated advice during unexpected signal failures or track work. - Deep Network Mapping: Use
get_stationsandget_bus_stopsto build a complete database of every point in the network before calculating routes. You never miss an entrance or stop ID.
Real-World Use Cases
Tracking a Complex Commute
A user asks, 'How do I get from Queens to Grand Central?' Your agent first calls get_service_alerts for major issues. It then uses the correct subway line feed (get_subway_feed) for the initial leg and combines that with get_lirr_feed data for the final rail segment, providing an accurate, end-to-end ETA.
Managing a Bus Hub
A bus company needs to know if buses are piling up. The agent runs get_bus_vehicles, filters by a specific terminal area, and reports back the count of active vehicles and their proximity to prevent bottlenecks.
Assisting Tourists
A tourist asks for nearby stations. The agent uses get_stations with geographic coordinates, listing all subway entrances within a 5-block radius and providing the nearest street-level bus stops via get_bus_stops.
System Health Check
An operations team wants to know which lines are running best. They run multiple get_subway_feed calls, comparing scheduled vs. real-time arrivals across various feed IDs to pinpoint systemic delays or areas of overperformance.
The Tradeoffs
Assuming a single API call is enough
Calling get_bus_predictions and assuming the result covers service disruptions. The prediction might show 'on time,' but the actual line could be shut down by construction.
→
Always check get_service_alerts first. If an alert exists for your route, use that information to override or temper any arrival predictions you get from get_bus_predictions. Never rely on prediction alone.
Using raw coordinates only
Trying to find a bus stop just by providing latitude/longitude. You'll get dozens of points, none of them labeled as an actual MTA stop.
→
First, run get_bus_stops using the general area details or route name. This gives you the official Stop ID (MonitoringRef), which is required for accurate predictions and tracking via get_bus_predictions.
Ignoring train lines
Calculating a commute that only uses buses, forgetting that a subway transfer might be much faster. This leads to recommending suboptimal routes.
→
When planning multi-modal trips, check both bus feeds (using get_bus_predictions) and the relevant subway feed (get_subway_feed). The agent must compare total travel times across modes.
When It Fits, When It Doesn't
Use this if your core requirement is real-time, cross-modal transit tracking. Specifically, you need to combine vehicle position data (e.g., get_bus_vehicles) with predictive arrival logic (get_bus_predictions), while also factoring in systemic failures via get_service_alerts. If your needs are confined only to listing static points of interest (like a simple map layer), then just using get_stations might suffice. But if you need live movement or operational status, this server is required. Don't use it if you only need general routing suggestions without knowing the current operational state of the system.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by MTA. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 12 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Checking NYC transit schedules used to feel like a scavenger hunt.
Before having an agent do this, you had to open three separate browser tabs: one for the subway status, one for buses, and another for LIRR delays. You'd spend five minutes copying route numbers, comparing times across different websites, and hoping nothing changed while you were assembling the perfect itinerary.
Now, your AI client does it in a single prompt. It uses multiple tools—like `get_subway_feed` alongside `get_bus_predictions`—to analyze all modes simultaneously. You ask for the trip, and you get the optimized path with real-time ETAs.
The MTA MCP Server gives you complete control over transit data.
You no longer have to wait for official APIs to publish their feeds. You can cross-reference raw vehicle positions using `get_bus_vehicles` against the full network map provided by `get_stations`. This level of granular detail was impossible before.
This means your application moves beyond being just a 'router' and becomes an active, intelligent operational tool that understands how the entire physical system works.
Common Questions About MTA MCP
How do I check if there are delays on specific subway lines using get_service_alerts? +
Call get_service_alerts first. This tool provides a summary of all active disruptions, including the affected line and severity level. If an alert is present for your route, use that information to temper any trip planning results.
Can get_bus_predictions tell me if a bus is delayed? +
Yes. get_bus_predictions returns whether the vehicle is running on schedule or delayed relative to its expected time, giving you immediate operational status.
Is it better to use get_bus_vehicles or get_bus_predictions? +
It depends. Use get_bus_predictions when a user asks for the 'next arrival' at a specific stop ID. Use get_bus_vehicles when you need to map the real-time, system-wide location of every bus vehicle on the road.
What are the best tools for mapping all NYC subway stations? +
get_stations is your primary tool. It lists all 472 station IDs, coordinates, and borough data. You should use this first to build a complete map layer.
Before I use any complex tracking tool like `get_bus_predictions`, how can I verify that my API key is working? +
Run get_system_time to check connectivity. This function returns the current MTA system timestamp in ISO 8601 format, confirming your client and server are synchronized. It’s a simple, low-impact call perfect for testing authentication and data alignment before running heavy queries.
If I need to plan a trip across several stops, which tool should I run first: `get_bus_routes` or `get_bus_stops`? +
get_bus_stops is the right starting point. It gives you specific stop IDs (MonitoringRef) and coordinates for any given route. While get_bus_routes lists all available routes, you need the granular stop data to make accurate arrival predictions.
What's the functional difference between running `get_bus_estimated_arrival` and `get_bus_predictions`? +
get_bus_predictions gives real-time awareness of all approaching buses at a stop, including delay status. In contrast, get_bus_estimated_arrival is better for targeted trip planning or checking multiple routes simultaneously with specific wait time estimations.
If I need to see the entire active bus fleet right now, do I use `get_bus_vehicles` or `get_bus_routes`? +
You must use get_bus_vehicles. This tool provides real-time coordinates and operational status for every vehicle currently in service. get_bus_routes, however, only lists the defined routes; it doesn't track where the buses actually are.
Can my AI check when the next subway train is arriving at my station? +
Yes! Use the get_subway_feed tool with the appropriate feed ID for your line. Feed IDs are grouped: "1" covers lines 1,2,3,4,5,6,S; "2" covers A,C,E; "3" covers B,D,F,M; "4" is G; "5" is J,Z; "6" covers N,Q,R,W; "7" is L; "11" is Staten Island Railway. This returns real-time GTFS-RT data with train positions, trip updates, scheduled vs. real-time arrivals, and delay information. For station-level predictions, combine with get_stations to find your station code first.
How do I check when the next MTA bus is arriving at a specific stop? +
First use get_bus_stops with a route ID to find the stop ID (MonitoringRef) for your location. Then use get_bus_predictions with that stop ID to get real-time estimated arrival times, route information, destinations, and delay indicators. For more targeted predictions, use get_bus_estimated_arrival which allows filtering by both stop ID and route ID. Stop IDs are numeric identifiers assigned by MTA to each physical bus stop across NYC.
Are there any service disruptions affecting my subway line or bus route right now? +
Use get_service_alerts to check all active service disruptions across the MTA system. This returns alerts with affected lines and stations, disruption descriptions, severity levels, cause types (maintenance, incident, weather, special events, construction), start and end timestamps, and alternative service recommendations. Covers NYC Subway, buses, LIRR, and Metro-North. Always check this before planning any journey to ensure you are aware of delays, planned work, or service changes.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Amberdata (Digital Asset & Crypto Market Data API)
Access institutional-grade crypto market data, on-chain metrics, and DeFi insights directly from your AI agent.
journy.io
Manage SaaS growth, users, and accounts via journy.io API.
RAWG Video Games Database
Universal video game intelligence — search 500,000+ games, platforms, and ratings via AI.
You might also like
Metorial
Enterprise observability and serverless scaling infrastructure directly mapping MCP agents logic.
Salsa Engage
Automate non-profit outreach via Salsa Engage — manage supporters, activities, and fundraising analytics with AI.
Mistral AI
Build with European open-weight language models that deliver strong reasoning, multilingual capability, and efficient inference.