Skip to content

An MCP server enabling AI assistants to access real-time Winnipeg bus arrivals, transit trip planning, and 311 city service reports.

License

Notifications You must be signed in to change notification settings

nhannpl/wpg-city-mcp

Repository files navigation

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 stop
  • get_commute_status: Check status of specific bus routes
  • find_stops_near: Find bus stops near a location
  • plan_trip: search for a trip from an origin to a destination
  • plan_journey: Plan a multi-stop journey

City Services

  • search_311_issues: Search for reported 311 issues
  • list_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:

  1. Visit the Winnipeg Transit API Registration page
  2. Sign up for a free developer account
  3. Once approved, you'll receive your API key via email

2. Configure Environment Variables

  1. Copy the example environment file:

    cp .env.example .env
  2. Edit .env and 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.py

Connecting to Claude Desktop

To use this MCP server with the Claude Desktop app:

  1. Open your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 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"
      ]
    }
  }
}
  1. Restart Claude Desktop.

Debugging with MCP Inspector

You can test and debug the server using the MCP Inspector:

npx @modelcontextprotocol/inspector uv run server.py

This 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

About

An MCP server enabling AI assistants to access real-time Winnipeg bus arrivals, transit trip planning, and 311 city service reports.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages