Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Winnipeg City MCP ServerWhen is the next 16 bus arriving at stop 10611?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Winnipeg City MCP Server
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.
Features
π 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
Tools Included
Transit
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
City Services
search_311_issues: Search for reported 311 issueslist_neighborhoods: List Winnipeg neighborhoods
Prerequisites
uv (recommended for running the script)
Python 3.12+
Winnipeg Transit API key (see setup instructions below)
Setup
1. Get a Winnipeg Transit API Key
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
2. Configure Environment Variables
Copy the example environment file:
cp .env.example .envEdit
.envand add your API key:TRANSIT_API_KEY=your_actual_api_key_here
How to Run
You can run the server directly using uv:
uv run server.pyConnecting to Claude Desktop
To use this MCP server with the Claude Desktop app:
Open your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
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.
Debugging with MCP Inspector
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.
Contributing
Contributions are welcome! Feel free to:
Report bugs or suggest features by opening an issue
Submit pull requests with improvements
Improve documentation
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Winnipeg Transit for providing the transit API
City of Winnipeg Open Data for 311 services data
Model Context Protocol for the MCP framework
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.