OC Transpo MCP Server for Learning
A Model Context Protocol (MCP) server for OC Transpo Ottawa, providing real-time transit data to AI agents and developers.
Features
get_vehicle_positions: Retrieves real-time latitude, longitude, and trip info for all active buses and trains.get_trip_updates: Fetches real-time arrival/departure delays and schedule updates.get_service_alerts: (Coming Soon) Standardized access to service disruptions (pending OC Transpo API activation).- FastMCP Integration: Lightweight and easy to use with any MCP-compatible agent.
- GTFS-RT Support: Native protocol buffer parsing for live transit feeds.
Prerequisites
- Python 3.10+
- uv (recommended for dependency management)
- OC Transpo API Subscription Key (Get one at the OC Transpo Developer Portal)
Setup
- Clone the repository:
git clone - Configure environment variables:
Create a .env file in the root directory:
Ocp_Apim_Subscription_Key=your_key_here- Install dependencies:
uv syncUsage
Running the MCP Server
Start the server using uv:
uv run mcp-server.pyTesting with MCP Inspector
You can visually test the tools using the MCP Inspector:
npx -y @modelcontextprotocol/inspector uv run mcp-server.pyScripting Example
You can use the helper script check_route.py to filter vehicles by route ID:
uv run check_route.py 62Deployment
Google Cloud Run
You can deploy this server to Google Cloud Run to make it accessible over the internet via HTTPS.
- Build and Deploy:
gcloud run deploy octranspo-mcp \
--source . \
--region us-central1 \
--allow-unauthenticated \
--set-env-vars Ocp_Apim_Subscription_Key=YOUR_API_KEY- Access the Server:
The server is probably live at: https://octranspo-mcp-PROJECT_ID.us-central1.run.app/mcp
Project Structure
mcp-server.py: Main MCP server implementation.octranspo.py: API helper for GTFS-RT fetching and parsing.check_route.py: CLI tool for filtering live data.test_api.py: Connectivity and data parsing verification script.
License
MIT
Made with ❤️ by Antigravity
