A powerful Model Context Protocol (MCP) server that enables AI assistants to access real-time Winnipeg Transit data and 311 City Services information. This server allows AI models like Claude to help users plan trips, check bus arrivals, find stops, and explore city service reports.
- 🚌 Real-time Transit Information: Get live bus arrival times and route status
- 🗺️ Trip Planning: Plan single trips or multi-stop journeys with optimized routes
- 📍 Location Search: Find bus stops near any location
- 🏙️ 311 City Services: Search for reported issues and explore neighborhoods
- ⏱️ Time-Aware Routing: Get accurate transit schedules based on actual timetables
get_bus_arrivals: Get real-time bus arrivals for a specific stopget_commute_status: Check status of specific bus routesfind_stops_near: Find bus stops near a locationplan_trip: search for a trip from an origin to a destinationplan_journey: Plan a multi-stop journey
search_311_issues: Search for reported 311 issueslist_neighborhoods: List Winnipeg neighborhoods
- uv (recommended for running the script)
- Python 3.12+
- Winnipeg Transit API key (see setup instructions below)
To use the transit features, you'll need a free API key from Winnipeg Transit:
- Visit the Winnipeg Transit API Registration page
- Sign up for a free developer account
- Once approved, you'll receive your API key via email
-
Copy the example environment file:
cp .env.example .env
-
Edit
.envand add your API key:TRANSIT_API_KEY=your_actual_api_key_here
You can run the server directly using uv:
uv run server.pyTo use this MCP server with the Claude Desktop app:
-
Open your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the following configuration (replace
/ABSOLUTE/PATH/TO/with the actual path to this repository):
{
"mcpServers": {
"winnipeg-city": {
"command": "uv",
"args": [
"run",
"/ABSOLUTE/PATH/TO/wpg-city-mcp/server.py"
]
}
}
}- Restart Claude Desktop.
You can test and debug the server using the MCP Inspector:
npx @modelcontextprotocol/inspector uv run server.pyThis will start the Inspector in your browser, allowing you to manually call tools and verify the server's behavior.
Contributions are welcome! Feel free to:
- Report bugs or suggest features by opening an issue
- Submit pull requests with improvements
- Improve documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Winnipeg Transit for providing the transit API
- City of Winnipeg Open Data for 311 services data
- Model Context Protocol for the MCP framework