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 <repository-url> -
Configure environment variables: Create a
.envfile in the root directory:Ocp_Apim_Subscription_Key=your_key_here -
Install dependencies:
uv sync
Usage
Running the MCP Server
Start the server using uv:
uv run mcp-server.py
Testing with MCP Inspector
You can visually test the tools using the MCP Inspector:
npx -y @modelcontextprotocol/inspector uv run mcp-server.py
Scripting Example
You can use the helper script check_route.py to filter vehicles by route ID:
uv run check_route.py 62
Deployment
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