Skip to main content
Glama
wheels-router-mcp

wheels-router-mcp

Official

Wheels Router MCP Server

Built with MatthewDailey/mcp-starter

A Model Context Protocol server for Hong Kong public transit routing. Provides tools to search locations and plan trips using the Wheels Router API.

Features

  • Location Search: Find places in Hong Kong using OpenStreetMap Nominatim

  • Trip Planning: Get public transit routes with MTR, bus, ferry, and walking directions

Related MCP server: Hong Kong Government Data MCP Server

Installation

With npm

npm install -g wheels-router-mcp

Claude Desktop

Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "wheels-router": {
      "command": "wheels-router-mcp"
    }
  }
}

OpenCode

Add to your OpenCode config:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wheels-router": {
      "type": "local",
      "command": ["npx", "-y", "wheels-router-mcp"],
      "enabled": true
    }
  }
}

From Source

  1. Clone and build:

git clone https://github.com/wheelstransit/wheels-router-mcp
cd wheels-router-mcp
npm install
npm run build
  1. Add to your preferred tool's config:

Claude Desktop:

{
  "mcpServers": {
    "wheels-router": {
      "command": "node",
      "args": ["/absolute/path/to/wheels-router-mcp/dist/index.cjs"]
    }
  }
}

OpenCode:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wheels-router": {
      "type": "local",
      "command": ["node", "/absolute/path/to/wheels-router-mcp/dist/index.cjs"],
      "enabled": true
    }
  }
}
  1. Restart your application

Available Tools

search_location

Search for places in Hong Kong.

Parameters:

  • query (string, required): Place name (e.g., "Yau Tong MTR Exit A2")

  • limit (number, optional): Max results (1-10, default: 5)

Example:

Find "Tsim Sha Tsui"

plan_trip

Plan a public transit trip in Hong Kong.

Parameters:

  • origin (string, required): Starting point as lat,lon or stop:ID

  • destination (string, required): Destination as lat,lon or stop:ID

  • depart_at (string, optional): ISO 8601 departure time

  • arrive_by (string, optional): ISO 8601 arrival deadline

  • modes (string, optional): Comma-separated modes (e.g., mtr,bus,ferry)

  • max_results (number, optional): Max route plans (1-5)

Example:

Plan a trip from 22.3193,114.2644 to 22.2783,114.1747

Development

Run with Inspector for testing:

npm run dev

This starts both the file watcher and MCP Inspector.

License

See LICENSE

Available Tools

3 tools
hello_toolD

Hello tool

Inputs: name (required).

plan_tripA

Plan a transit trip. Uses Wheels Router for Hong Kong and Transitous for other regions. IMPORTANT: fares_min/fares_max are fare ranges, NOT interchange discounts. Interchange discounts (轉乘優惠) only apply when FareDiscountRules are explicitly present in the API response, and IT ONLY APPLIES TO CERTAIN ROUTES.

Inputs: origin (required), destination (required), modes, arrive_by, +2 more.

search_locationA

Search locations via Nominatim (use for origin/destination lookup).

Inputs: query (required), limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 3 tools

    Disambiguation4/5

    plan_trip and search_location have clear, non-overlapping purposes, and hello_tool is obviously set apart. However, hello_tool is a vague stub that doesn't fit the travel domain, so there is a slight coherence cost.

    Naming Consistency4/5

    plan_trip and search_location both follow a verb_noun snake_case pattern. hello_tool breaks the pattern with a greeting-style verb, but since only one of three tools deviates, the naming is mostly consistent.

    Tool Count3/5

    Three tools is borderline for a transit router, and only two are actually useful. hello_tool is filler, which makes the effective functional surface feel thin for the stated purpose.

    Completeness4/5

    The core workflow is covered: search_location for origin/destination lookup and plan_trip for routing. Minor gaps exist, such as route/fare rule inspection or provider metadata, but agents can complete basic trip planning without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers