4,500+ servers built on MCP Fusion
Vinkius

MTA MCP. Track every train, bus, and rail movement across NYC.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

MTA MCP on Cursor AI Code Editor MCP Client MTA MCP on Claude Desktop App MCP Integration MTA MCP on OpenAI Agents SDK MCP Compatible MTA MCP on Visual Studio Code MCP Extension Client MTA MCP on GitHub Copilot AI Agent MCP Integration MTA MCP on Google Gemini AI MCP Integration MTA MCP on Lovable AI Development MCP Client MTA MCP on Mistral AI Agents MCP Compatible MTA MCP on Amazon AWS Bedrock MCP Support

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.

+ 9 more capabilities included
Track Live Bus Positions

Get the real-time GPS coordinates and operational status of every active MTA bus vehicle across New York City.

Predict Next Arrivals

Calculate estimated arrival times for buses at any specific stop, supporting both single routes and multi-route queries.

Monitor Commuter Rail Status

Get live train positions and service updates for the LIRR and Metro-North Railroad lines into Manhattan.

List Full Network Details

Retrieve detailed information, including coordinates and station codes, for all 472 NYC Subway stations and every bus route in the system.

Identify Service Disruptions

Check current alerts across the entire MTA system regarding delays, maintenance work, or incidents affecting any line or service.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

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.

get019d75d9

get bus estimated arrival

Returns predicted arrival times for buses at a stop, optionally filtering by specific route numbers.

get019d75d9

get bus predictions

Provides real-time estimates and delay status for the next arriving bus at a specified stop ID.

get019d75d9

get bus routes

Lists every official MTA bus route, including its name, operator, and service area within NYC.

get019d75d9

get bus stops

Finds all official bus stops in the network, returning their coordinates and unique stop IDs for tracking.

get019d75d9

get bus vehicle at stop

Tracks buses that are currently at or rapidly approaching a specific bus stop location.

get019d75d9

get bus vehicles

Gathers the real-time coordinates, speed, and route ID for every active MTA bus on the road system-wide.

get019d75d9

get lirr feed

Retrieves live train positions, trip updates, and delay information for the Long Island Rail Road.

get019d75d9

get metro north feed

Provides real-time train tracking data and service disruption status for Metro-North Railroad lines into NYC.

get019d75d9

get service alerts

Checks the current system status, listing active disruptions, affected lines, and recommended workarounds across all MTA modes.

get019d75d9

get stations

Lists every subway station in NYC with its coordinates, borough, and type of entrance structure.

get019d75d9

get 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).

get019d75d9

get 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
Start building

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. 1 Subscribe to the server and input your free MTA API key.
  2. 2 Your AI client sends a request (e.g., 'Where is the next M15 bus?').
  3. 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.

Mobile App Developer

Build journey planning features that show real-time bus and subway arrival estimates, handling multiple modes in one view.

Logistics Planner

Model fleet movements or delivery schedules dependent on accurate transit time estimates for pick-ups and drop-offs.

Data Analyst

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_vehicles to 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_arrival to 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_stations and get_bus_stops to 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

01

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.

02

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.

03

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.

04

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

How we secure it →

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

get_bus_estimated_arrival get_bus_predictions get_bus_routes get_bus_stops get_bus_vehicle_at_stop get_bus_vehicles get_lirr_feed get_metro_north_feed get_service_alerts get_stations get_subway_feed get_system_time

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.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 12 tools

We've already built the connector for MTA. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 12 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.