Bring Public Transit
to OpenAI Agents SDK
Learn how to connect LA Metro to OpenAI Agents SDK and start using 12 AI agent tools in minutes. Fully managed, enterprise secure, and ready to use without writing a single line of code.
What is the LA Metro MCP Server?
Connect your LA Metro API Los Angeles public transit data platform to any AI agent and take full control of real-time Metrobus and Metro Rail tracking, arrival predictions, rail-to-rail journey planning, and service disruption monitoring through natural conversation.
What you can do
- Metrobus Stops — List all bus stops system-wide or filtered by route with coordinates and service messages
- Metrobus Routes — Browse all Metrobus routes including local, rapid, and express services across LA County
- Bus Schedules — Get complete schedule data with run patterns and stop sequences for any bus route
- Bus Vehicle Tracking — Track real-time GPS positions of all active Metrobus vehicles
- Stop Predictions — Get next bus arrival predictions for any specific bus stop with minutes and seconds
- Metro Rail Stations — List all rail stations across B (Red), D (Purple), A (Blue), E (Expo), C (Green), and K lines
- Rail Arrivals — Get next train arrival predictions at any Metro Rail station with line and destination info
- Rail-to-Rail Planning — Plan rail-only journeys between any two Metro Rail stations with transfer guidance
- Rail Routes — Browse all Metro Rail lines with colors, station counts, and operational metadata
- Service Alerts — Monitor active disruptions across Metro Rail and Metrobus with severity and alternatives
- Rail Vehicle Positions — Track real-time positions of Metro Rail trains across the network
- Bus Locations — Get real-time bus locations system-wide or filtered by specific route
How it works
1. Subscribe to this server
2. Enter your LA Metro API key (if required — many endpoints are open data)
3. Start tracking LA Metro transit from Claude, Cursor, or any MCP-compatible client
No more navigating the Metro website or manually checking train and bus times. Your AI acts as a dedicated LA transit analyst and trip planning assistant.
Who is this for?
- LA Commuters — track buses and rail, check arrivals, and plan rail-only trips across LA County
- Tourists — navigate the Metro Rail system with station discovery and rail-to-rail journey planning
- Transit Analysts — research service patterns, vehicle positions, and system reliability
- Mobility Apps — integrate real-time LA Metro data into journey planning and transit tracking applications
Built-in capabilities (12)
Returns vehicle IDs, route IDs, latitude/longitude coordinates, heading direction, seconds since last report, predictability indicators, and trip/run identifiers. Can query all buses system-wide or filter by specific route ID for targeted route-level tracking. Essential for real-time bus fleet monitoring, passenger arrival estimation, route-level service awareness, and transit operations management. AI agents should reference this when users ask "show me all buses on route 720", "where are the active buses right now", or need real-time bus position data for fleet visualization or arrival prediction. Get real-time bus locations system-wide or for a specific route
Returns route IDs, route names, types (local, rapid, express, Metro Rail link), direction listings, and route metadata. Covers hundreds of routes serving the entire LA Metro service area including downtown LA, Hollywood, Santa Monica, San Fernando Valley, South Bay, East LA, and beyond. Essential for route discovery, service area analysis, transit network understanding, and identifying route IDs for use in stop and schedule queries. AI agents should reference this when users ask "list all Metrobus routes", "what routes serve downtown LA", or need to identify route IDs for subsequent Metrobus queries. List all Metrobus routes in the LA Metro system
Returns run IDs, direction information (inbound/outbound, eastbound/westbound), stop sequences, and scheduled timing data. Essential for schedule analysis, journey planning at specific times, understanding route direction patterns, and passenger trip preparation. AI agents should use this when users ask "show me the schedule for route 720", "what are the run patterns for the 4 line", or need detailed schedule data for a specific bus route to plan trips at specific times. Get the schedule for a specific Metrobus route
Returns stop IDs, names, geographic coordinates (latitude, longitude), route affiliations, and any service messages or alerts associated with each stop. Essential for stop discovery, journey planning, accessibility mapping, and understanding bus network geography across Los Angeles County. AI agents should use this when users ask "list all stops on the 720 Rapid", "find bus stops near Union Station", or need to identify stop IDs for use in prediction queries. If no route_id is provided, returns all stops system-wide. List all Metrobus stops or stops on a specific bus route
Returns vehicle IDs, route affiliations, latitude/longitude coordinates, heading direction, seconds since last report, predictability indicators (whether the vehicle is running on predicted schedule or actual GPS), and run/trip identifiers. Essential for real-time bus tracking, passenger wait time estimation, bus arrival prediction, and fleet monitoring. AI agents should use this when users ask "where are the buses right now", "track vehicle 1234", or need to locate specific Metrobus vehicles for real-time arrival awareness. Get real-time locations of active Metrobus vehicles
Returns predicted arrival times, train destination names, line colors (Red, Purple, Blue, Expo, Green, Gold, K), direction indicators, and train run identifiers. Essential for real-time rail arrival awareness, passenger waiting time estimation, connection planning, and station-level trip timing. AI agents should reference this when users ask "when is the next Red Line train at Union Station", "show upcoming trains at 7th Street/Metro Center", or need station-specific Metro Rail arrival predictions. Station IDs can be found using get_rail_stations. Get next train arrival predictions at a specific Metro Rail station
Essential for line identification, rail network understanding, service area analysis, and identifying line IDs for use in rail journey planning. AI agents should reference this when users ask "list all Metro Rail lines", "what lines does Metro operate", or need line metadata for rail network context. List all Metro Rail lines and routes
Returns station IDs, names, display names, geographic coordinates (latitude, longitude), line affiliations, station order on each line, cross streets, and accessibility information. Essential for station discovery, rail network mapping, route planning, and identifying station IDs for use in arrival and rail-to-rail queries. AI agents should use this when users ask "list all stations on the Red Line", "what is the station code for 7th Street/Metro Center", or need to understand the Metro Rail network geography. List all Metro Rail stations with details
Returns recommended routes, transfer stations, estimated travel times, number of transfers, line sequences, and step-by-step rail directions. Essential for rail trip planning, transfer identification, travel time estimation, and understanding rail connectivity across the Metro network. AI agents should use this when users ask "how do I get from North Hollywood to Santa Monica by rail", "plan a rail trip from Union Station to LAX", or need rail-only journey planning between two Metro Rail stations. Station IDs can be found using get_rail_stations. Get rail-to-rail journey planning between two Metro Rail stations
Returns train identifiers, line affiliations, latitude/longitude coordinates, heading direction, run/trip IDs, and prediction status. Essential for real-time rail tracking, train location awareness, and understanding train distribution across the network. AI agents should use this when users ask "where are the Red Line trains right now", "track train positions on the Expo Line", or need to visualize train locations for operational monitoring or passenger information. Get real-time positions of Metro Rail trains
Returns alert descriptions, affected routes and stations, severity levels, start and end timestamps, cause types (maintenance, incident, weather, special events), and alternative service recommendations. Essential for service disruption awareness, alternative route planning, passenger communication, and understanding system reliability. AI agents should use this when users ask "are there any delays on the Red Line", "is Metro running normally today", or need to check service reliability before planning Metro journeys. Get current service alerts and disruptions across the LA Metro system
Returns predicted arrival times in minutes and seconds, route IDs, run IDs, direction information, departure indicators, and prediction confidence levels. Essential for real-time bus arrival awareness, passenger waiting time estimation, trip timing, and connection coordination. AI agents should reference this when users ask "when is the next bus at stop 5678", "show predictions for this stop", or need real-time arrival data for a specific bus stop. Stop IDs can be found using get_bus_stops. Get next bus arrival predictions for a specific bus stop
Why OpenAI Agents SDK?
The OpenAI Agents SDK auto-discovers all 12 tools from LA Metro through native MCP integration. Build agents with built-in guardrails, tracing, and handoff patterns. chain multiple agents where one queries LA Metro, another analyzes results, and a third generates reports, all orchestrated through Vinkius.
- —
Native MCP integration via
MCPServerSse, pass the URL and the SDK auto-discovers all tools with full type safety - —
Built-in guardrails, tracing, and handoff patterns let you build production-grade agents without reinventing safety infrastructure
- —
Lightweight and composable: chain multiple agents and MCP servers in a single pipeline with minimal boilerplate
- —
First-party OpenAI support ensures optimal compatibility with GPT models for tool calling and structured output
LA Metro in OpenAI Agents SDK
LA Metro and 3,400+ other MCP servers. One platform. One governance layer.
Teams that connect LA Metro to OpenAI Agents SDK through Vinkius don't need to source, host, or maintain individual MCP servers. Every tool call runs inside a hardened runtime with credential isolation, DLP, and a signed audit chain.
Raw MCP | Vinkius | |
|---|---|---|
| Server catalog | Find and host yourself | 3,400+ managed |
| Infrastructure | Self-hosted | Sandboxed V8 isolates |
| Credential handling | Plaintext in config | Vault + runtime injection |
| Data loss prevention | None | Configurable DLP policies |
| Kill switch | None | Global instant shutdown |
| Financial circuit breakers | None | Per-server limits + alerts |
| Audit trail | None | Ed25519 signed logs |
| SIEM log streaming | None | Splunk, Datadog, Webhook |
| Honeytokens | None | Canary alerts on leak |
| Custom domains | Not applicable | DNS challenge verified |
| GDPR compliance | Manual effort | Automated purge + export |
Why teams choose Vinkius for LA Metro in OpenAI Agents SDK
The LA Metro MCP Server runs on Vinkius-managed infrastructure inside AWS — a purpose-built runtime with per-request V8 isolates, Ed25519 signed audit chains, and sub-40ms cold starts. All 12 tools execute in hardened sandboxes optimized for native MCP execution.
Your AI agents in OpenAI Agents SDK only access the data you authorize, with DLP that blocks sensitive information from ever reaching the model, kill switch for instant shutdown, and up to 60% token savings. Enterprise-grade infrastructure, zero maintenance.

* Every MCP server runs on Vinkius-managed infrastructure inside AWS - a purpose-built runtime with per-request V8 isolates, Ed25519 signed audit chains, and sub-40ms cold starts optimized for native MCP execution. See our infrastructure
How Vinkius secures
LA Metro for OpenAI Agents SDK
Every tool call from OpenAI Agents SDK to the LA Metro MCP Server is protected by DLP redaction, cryptographic audit chains, V8 sandbox isolation, kill switch, and financial circuit breakers.
Frequently asked questions
Can my AI check when the next Metrobus is arriving at a specific stop in LA?
Yes! First use get_bus_stops with a route_id to find the stop ID for your location. Then use get_stop_predictions with that stop ID to get real-time arrival predictions in minutes and seconds, including route numbers, direction, and whether the bus is departing soon. This gives you live predictions based on actual vehicle GPS positions and schedule adherence.
How do I plan a Metro Rail journey from one station to another?
Use get_rail_stations first to find the station IDs for your origin and destination. Then use get_rail_to_rail with both station IDs to get the recommended rail route with transfer stations, estimated travel time, number of transfers, and step-by-step directions. You can also use get_rail_arrivals at your origin station to see when the next trains are coming.
Are there any service disruptions affecting Metro Rail or Metrobus right now?
Use get_service_alerts to check all active service disruptions across the LA Metro system. This returns alerts with affected routes and stations, disruption descriptions, severity levels, cause types (maintenance, incident, weather, special events), start and end times, and alternative service recommendations. Check this before planning any journey to ensure you are aware of delays or service changes.
How does the OpenAI Agents SDK connect to MCP?
Use MCPServerSse(url=...) to create a server connection. The SDK auto-discovers all tools and makes them available to your agent with full type information.
Can I use multiple MCP servers in one agent?
Yes. Pass a list of MCPServerSse instances to the agent constructor. The agent can use tools from all connected servers within a single run.
Does the SDK support streaming responses?
Yes. The SDK supports SSE and Streamable HTTP transports, both of which work natively with Vinkius.
MCPServerStreamableHttp not found
Ensure you have the latest version: pip install --upgrade openai-agents
Agent not calling tools
Make sure your prompt explicitly references the task the tools can help with.
