LA Metro MCP Server for Pydantic AI 12 tools — connect in under 2 minutes
Pydantic AI brings type-safe agent development to Python with first-class MCP support. Connect LA Metro through the Vinkius and every tool is automatically validated against Pydantic schemas — catch errors at build time, not in production.
ASK AI ABOUT THIS MCP SERVER
Vinkius supports streamable HTTP and SSE.
import asyncio
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerHTTP
async def main():
# Your Vinkius token — get it at cloud.vinkius.com
server = MCPServerHTTP(url="https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp")
agent = Agent(
model="openai:gpt-4o",
mcp_servers=[server],
system_prompt=(
"You are an assistant with access to LA Metro "
"(12 tools)."
),
)
result = await agent.run(
"What tools are available in LA Metro?"
)
print(result.data)
asyncio.run(main())
* 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
About 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.
Pydantic AI validates every LA Metro tool response against typed schemas, catching data inconsistencies at build time. Connect 12 tools through the Vinkius and switch between OpenAI, Anthropic, or Gemini without changing your integration code — full type safety, structured output guarantees, and dependency injection for testable agents.
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
The LA Metro MCP Server exposes 12 tools through the Vinkius. Connect it to Pydantic AI in under two minutes — no API keys to rotate, no infrastructure to provision, no vendor lock-in. Your configuration, your data, your control.
How to Connect LA Metro to Pydantic AI via MCP
Follow these steps to integrate the LA Metro MCP Server with Pydantic AI.
Install Pydantic AI
Run pip install pydantic-ai
Replace the token
Replace [YOUR_TOKEN_HERE] with your Vinkius token
Run the agent
Save to agent.py and run: python agent.py
Explore tools
The agent discovers 12 tools from LA Metro with type-safe schemas
Why Use Pydantic AI with the LA Metro MCP Server
Pydantic AI provides unique advantages when paired with LA Metro through the Model Context Protocol.
Full type safety: every MCP tool response is validated against Pydantic models, catching data inconsistencies before they reach your application
Model-agnostic architecture — switch between OpenAI, Anthropic, or Gemini without changing your LA Metro integration code
Structured output guarantee: Pydantic AI ensures tool results conform to defined schemas, eliminating runtime type errors
Dependency injection system cleanly separates your LA Metro connection logic from agent behavior for testable, maintainable code
LA Metro + Pydantic AI Use Cases
Practical scenarios where Pydantic AI combined with the LA Metro MCP Server delivers measurable value.
Type-safe data pipelines: query LA Metro with guaranteed response schemas, feeding validated data into downstream processing
API orchestration: chain multiple LA Metro tool calls with Pydantic validation at each step to ensure data integrity end-to-end
Production monitoring: build validated alert agents that query LA Metro and output structured, schema-compliant notifications
Testing and QA: use Pydantic AI's dependency injection to mock LA Metro responses and write comprehensive agent tests
LA Metro MCP Tools for Pydantic AI (12)
These 12 tools become available when you connect LA Metro to Pydantic AI via MCP:
get_bus_locations
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
get_bus_routes
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
get_bus_schedule
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
get_bus_stops
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
get_bus_vehicles
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
get_rail_arrivals
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
get_rail_routes
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
get_rail_stations
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
get_rail_to_rail
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
get_rail_vehicle_positions
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
get_service_alerts
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
get_stop_predictions
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
Example Prompts for LA Metro in Pydantic AI
Ready-to-use prompts you can give your Pydantic AI agent to start working with LA Metro immediately.
"Show me all Metrobus stops on the 720 Rapid route."
"What are the next Red Line trains arriving at Union Station?"
"Plan a rail journey from North Hollywood to Santa Monica."
Troubleshooting LA Metro MCP Server with Pydantic AI
Common issues when connecting LA Metro to Pydantic AI through the Vinkius, and how to resolve them.
MCPServerHTTP not found
pip install --upgrade pydantic-aiLA Metro + Pydantic AI FAQ
Common questions about integrating LA Metro MCP Server with Pydantic AI.
How does Pydantic AI discover MCP tools?
MCPServerHTTP instance with the server URL. Pydantic AI connects, discovers all tools, and generates typed Python interfaces automatically.Does Pydantic AI validate MCP tool responses?
Can I switch LLM providers without changing MCP code?
Connect LA Metro with your favorite client
Step-by-step setup guides for every MCP-compatible client and framework:
Anthropic's native desktop app for Claude with built-in MCP support.
AI-first code editor with integrated LLM-powered coding assistance.
GitHub Copilot in VS Code with Agent mode and MCP support.
Purpose-built IDE for agentic AI coding workflows.
Autonomous AI coding agent that runs inside VS Code.
Anthropic's agentic CLI for terminal-first development.
Python SDK for building production-grade OpenAI agent workflows.
Google's framework for building production AI agents.
Type-safe agent development for Python with first-class MCP support.
TypeScript toolkit for building AI-powered web applications.
TypeScript-native agent framework for modern web stacks.
Python framework for orchestrating collaborative AI agent crews.
Leading Python framework for composable LLM applications.
Data-aware AI agent framework for structured and unstructured sources.
Microsoft's framework for multi-agent collaborative conversations.
Connect LA Metro to Pydantic AI
Get your token, paste the configuration, and start using 12 tools in under 2 minutes. No API key management needed.
