CTA MCP for AI. Know Chicago's Transit Status Instantly
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
CTA gives your AI agent full control of Chicago's public transit data. Track L trains and buses in real-time, check arrival predictions at any stop, and monitor service alerts immediately.
You get an accurate view of the entire system—from bus routes to train positions—all through natural conversation.
What your AI can do
Get bus predictions
Gets predicted arrival times for buses at specific CTA stops.
Get bus routes
Lists all official bus routes serving Chicago, giving their names and colors.
Get bus stops
Retrieves detailed information and IDs for every CTA bus stop location.
The MCP predicts when the next L train will arrive at any specified station.
It provides the current location and direction for every running CTA train line.
The MCP estimates when a specific bus will arrive at your selected stop.
It lists every official bus route and retrieves detailed information for any bus stop location.
The MCP pulls active alerts, showing the cause, severity, and affected lines or routes.
Ask an AI about this
Waiting for input…
CTA: 11 Transit Tools
Use these tools to get precise arrival times, track vehicles live, and check all current CTA routes in one conversation.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using CTA on VinkiusGet Bus Predictions
Gets predicted arrival times for buses at specific CTA stops.
Get Bus Routes
Lists all official bus routes serving Chicago, giving their names and colors.
Get Bus Stops
Retrieves detailed information and IDs for every CTA bus stop location.
Get Bus Vehicles
Tracks the live GPS positions of all active CTA buses across the city or by route.
Get Route Directions
Determines the direction (Northbound, Southbound, etc.) that a specific bus route...
Get Route Status
Provides a quick status check on all CTA routes, noting if they are delayed or running normally.
Get Service Alerts
Pulls current system-wide alerts regarding disruptions, detours, and maintenance across the CTA.
Get Stop Details
Gathers detailed location data for any specific bus stop ID or name.
Get System Time
Returns the current official CTA system timestamp to verify connectivity and timing.
Get Train Arrivals
Predicts when the next L train will arrive at a specific station, including line...
Get Train Positions
Tracks the real-time locations of all active CTA trains system-wide or by line.
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
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 CTA, then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ 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
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by CTA. 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 connection provides 11 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Navigating Chicago's transit system used to mean juggling five different tabs.
You probably opened the CTA website, checked the train tracker for one line, switched over to Google Maps to see bus stops, and then maybe found a separate page just for service alerts. You're clicking back and forth, copy-pasting coordinates, and finally getting your answer because you manually pieced together data from four different sources.
With this MCP connected through Vinkius, all that manual checking disappears. You tell your agent the destination, and it instantly cross-references `get_bus_predictions`, `get_train_arrivals`, and current alerts in one go. You get a single answer telling you exactly when and where to be.
Get real-time location data using `get_bus_vehicles`.
Before, tracking the bus fleet meant logging into an operations portal or calling a dispatcher. You were limited to seeing routes on a map that showed general movement patterns and last reported positions, giving you no idea if it was actually moving right now.
Now, your agent uses `get_bus_vehicles` to pull live GPS coordinates for every bus. It’s immediate, up-to-the-second data that changes what 'tracking' means. You know exactly where the fleet is.
What your AI can actually do with this
Using this MCP lets your agent talk directly to Chicago's transit backbone. Forget jumping between different websites or opening multiple apps just to figure out how long the next train is coming. Instead, you ask for it once, and the system handles the complexity.
Whether you need to know if a bus is running late due to an accident or want to see exactly where every active train is on the Blue Line right now, your agent pulls that live data instantly. It’s like having a dedicated transit analyst who knows the whole network inside and out.
You access this power through Vinkius, connecting it to any MCP-compatible client you already use.
Your AI acts as more than just an assistant; it's a trip planner for Chicago. It combines real-time vehicle tracking with static route maps, giving you precise arrival estimates and clear alerts on service disruptions before you even leave the house.
019d757f-d179-7140-8f79-403052237ff7 Here's how it actually works
The bottom line is your AI acts as the interface between you and Chicago's entire transit network.
First, you subscribe to this MCP and enter both your CTA Train Tracker API key and CTA Bus Tracker API key.
Next, you tell your AI agent what you need—for example, 'What's the status of the Red Line?' or 'When does the 22 Clark bus get here?'
The agent uses the available tools to pull real-time data from the CTA system and gives you a single, conversational answer.
Who is this actually for?
Anyone who relies on public transit in Chicago needs this. Skip the frustration of cross-referencing multiple official websites or apps. This MCP gives your agent instant, accurate data for everything from daily commutes to complex tourist routes.
You need to know if a specific bus route is delayed because of construction or an incident so you can adjust your timing.
You are trying to map out the best way to get from one major Chicago neighborhood to another without getting lost in confusing signs.
You need a single view that tracks vehicle positions across multiple lines and calculates overall system reliability at any given moment.
What Changes When You Connect
Avoid guesswork with get_service_alerts: Instead of checking multiple apps for delays, your agent pulls all active disruptions in one go, telling you if the Red Line or Blue Line is affected.
Master your commute using get_bus_predictions: You ask 'when' and get a precise estimate—not just an idea. This saves you from waiting unnecessarily at the stop.
Visualize the whole network with get_train_positions and get_bus_vehicles: See where every train and bus is right now, which is way more useful than just knowing the schedule.
Plan stops accurately with get_stop_details: If you only have a street intersection name, this tool gives you the exact coordinates needed for reliable trip planning.
Know your options using get_bus_routes and get_route_directions: Need to know if Route 36 goes northbound? This checks that direction pattern before you even plan the trip.
See it in action
Dealing with a sudden system failure
You're heading out and hear rumors about delays. Instead of calling someone, you ask your agent to check for alerts, which uses get_service_alerts. It immediately confirms that the Green Line has severe delays due to track maintenance, saving you the time of finding an alternative route.
Finding a complex transfer point
You need to get from a bus stop near Roosevelt to the nearest L train. You ask your agent which lines serve that area. The MCP uses get_bus_stops to confirm the closest stops, then uses get_train_arrivals to give you the next Red Line arrival time.
Tracking a specific bus fleet
You're tracking an employee who needs to get across town. You ask your agent for all active buses on that route, using get_bus_vehicles. It gives you real-time locations so you know when the nearest bus will pass their current spot.
Determining system health
You need a quick overall status check for an event. You ask your agent, 'How is CTA running today?' It uses get_route_status to give you a simple overview of all lines and routes without needing deep dive details.
The honest tradeoffs
Only checking the main status page
The user only checks the basic CTA website, which might tell them 'Service Running Normally,' even if a specific bus route is temporarily suspended.
Don't stop at general alerts. Always cross-reference system health with get_service_alerts and use get_route_status to get confirmation for the exact line or route you care about.
Trying to plan a trip using only static data
The user plans a trip based on printed schedules, which shows an arrival time of 10:00 AM, but the bus is actually stuck in traffic and won't arrive until 10:25 AM.
Always prioritize real-time data. Use get_bus_predictions or get_train_arrivals to get a live estimate instead of relying on published schedules.
Asking for generic location info
The user asks, 'Where is the nearest transit point?' and gets vague coordinates that don't help them plan the next step.
Be specific. First, use get_bus_stops to list stops near a known address, then use get_stop_details to confirm its exact location for accurate trip planning.
When It Fits, When It Doesn't
Use this MCP if your primary need is real-time, dynamic information about Chicago's movement—where things are right now or when they will arrive. It’s essential for predicting bus movements (get_bus_predictions) and tracking live train locations (get_train_positions). Don't use it if you just need historical performance data (e.g., 'How many people rode last year?'). For that, you need a different kind of public data API. Also, don’t rely on get_system_time as a primary source; only use it to verify the time sync when complex tools are failing.
Use this if your job involves coordinating movement or planning across multiple modes (bus and L train). If you just need to know which routes exist generally, get_bus_routes is fine. But for any actual trip, chain calls together: start with get_service_alerts, check the general status with get_route_status, then drill down with specific predictions like get_train_arrivals. This multi-step approach gives you a complete picture and prevents relying on single points of failure.
Questions you might have
How do I check if there are any delays on the Red Line using get_service_alerts? +
You ask your agent to check service alerts. The tool immediately pulls system-wide disruption data, confirming if any maintenance or incidents affect the specific line you need.
What is the difference between get_bus_predictions and get_train_arrivals? +
While both predict arrival times, get_bus_predictions focuses specifically on bus routes using bus stops. get_train_arrivals handles L trains at specific stations.
Can I find all the available CTA bus stops with get_bus_stops? +
Yes, this tool retrieves a list of every official stop ID and its exact coordinates. This helps you plan routes even if you don't know the station name.
Should I use get_route_status or get_service_alerts for an overall system check? +
Use get_route_status first for a general, quick overview of all lines. If that looks good but you suspect something specific is wrong, follow up with get_service_alerts to find the root cause.
What does get_bus_vehicles actually track? +
It tracks real-time GPS data for every active bus. It tells you not just that a route exists, but where the physical vehicle is right now and which direction it's heading.
What should I check first when setting up my agent to use get_system_time? +
You must obtain your CTA Developer Portal API keys first. Running get_system_time confirms your connection and synchronizes the timestamp across all data streams, which is critical for correlating real-time bus or train movements accurately.
How do I understand the direction of a specific route using get_route_directions? +
The tool returns explicit direction IDs and names (like Northbound or Southbound). You use this to map out the full geometry of any CTA bus line, ensuring your agent knows if it needs to search for stops in the correct traveling pattern.
Is there a difference between getting bus tracking data via get_bus_vehicles and train positions using get_train_positions? +
Yes. get_bus_vehicles tracks every active CTA bus using real-time GPS coordinates system-wide for fleet monitoring purposes. get_train_positions, however, focuses only on the L lines (Red, Blue, etc.), providing dedicated rail network location data.
Can my AI check when the next L train is arriving at my station? +
Yes! Use the get_train_arrivals tool with the station mapId (a 5-digit parent station ID, e.g., 40360 for Clark/Lake, 40900 for Jackson). Your AI will return all upcoming trains with destination names, line colors (Red, Blue, Brown, Green, Orange, Purple, Pink, Yellow), predicted arrival times in minutes, operating status (on-time, delayed, approaching, boarding, departing), and whether the train is scheduled or real-time tracked. If you do not know the mapId, it can be found in the CTA GTFS static data feed.
How do I check when the next CTA bus is arriving at a specific stop? +
First use get_bus_stops with a route ID to find the stop ID (stpid) for your location. Then use get_bus_predictions with that stop ID to get real-time estimated arrival times, route information, destination descriptions, and vehicle IDs. For route-filtered predictions, you can also pass the route ID to narrow results to a specific bus line. Stop IDs are numeric identifiers assigned by CTA to each physical bus stop across Chicago.
Are there any service disruptions affecting the Red Line or my bus route right now? +
Use get_service_alerts to check all active service disruptions across the CTA system. This returns alerts with affected routes and stations, disruption descriptions, severity levels, cause types (maintenance, incident, weather, special events, construction), and detour information. You can also use get_route_status for a quick system-wide health check showing which L lines and bus routes are running on-time, delayed, or have planned work. Always check this before planning any CTA journey.
We've already built the connector for CTA. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 11 tools are live and waiting.
You're up and running in seconds.
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.
Built, hosted, and secured by Vinkius. You just connect and go.