Skills wheels-router
Plan public transit trips globally using Wheels Router (Hong Kong) and Transitous (worldwide)
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/anscg/wheels-router" ~/.claude/skills/openclaw-skills-wheels-router && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/anscg/wheels-router" ~/.openclaw/skills/openclaw-skills-wheels-router && rm -rf "$T"
manifest:
skills/anscg/wheels-router/SKILL.mdsource content
What I do
I help you plan public transit trips anywhere in the world by connecting to the Wheels Router MCP server.
For Hong Kong trips, I use the Wheels Router API which provides:
- Detailed routing with MTR, bus, tram, ferry, and walking
- Real-time schedules and accurate fares
- Platform information and exit details
- Interchange discounts (轉乘優惠) when available
For worldwide trips, I use the Transitous API which covers:
- Major cities globally with transit data
- Basic routing with public transportation
- Walking directions and transfers
When to use me
Use this skill whenever you need to:
- Plan a trip using public transportation
- Find the best route between two locations
- Check transit schedules and connections
- Get fare estimates for Hong Kong transit
- Search for locations before planning routes
Examples:
- "How do I get from Yau Tong MTR to Hong Kong Airport?"
- "What's the best way to Central from Causeway Bay right now?"
- "Plan a trip from Tokyo Station to Shibuya"
- "Search for locations near Victoria Park"
How to connect
If you're using mcporter (clawdbot, etc.)
Follow your mcporter skill, if you don't have one follow below: Add to
config/mcporter.json:
{ "mcpServers": { "wheels-router": { "description": "Plan public transit trips globally", "baseUrl": "https://mcp.justusewheels.com/mcp" } } }
Then call tools directly:
npx mcporter call wheels-router.search_location query="Hong Kong Airport" npx mcporter call wheels-router.plan_trip origin="22.28,114.24" destination="22.31,113.92"
For other MCP clients
Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "wheels-router": { "command": "npx", "args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"] } } }
Cursor/Windsurf/VS Code (
.cursor/mcp.json or similar):
{ "mcpServers": { "wheels-router": { "command": "npx", "args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"] } } }
Available tools
search_location
search_locationSearch for places before planning trips. Always use this first if you don't have exact coordinates.
Parameters:
(required): Place name or address (e.g., "Hong Kong Airport", "Yau Tong MTR Exit A2")query
(optional): Number of results (1-10, default 5)limit
Example:
search_location({ query: "Hong Kong International Airport", limit: 3 })
Returns:
: Full addressdisplay_name
,lat
: Coordinates for use inlonplan_trip
,type
: Location categoryclass
plan_trip
plan_tripPlan a transit route between two points.
Parameters:
(required): Starting point asorigin
or"lat,lon""stop:ID"
(required): Ending point asdestination
or"lat,lon""stop:ID"
(optional): ISO 8601 departure time (e.g.,depart_at
)"2026-01-26T10:00:00+08:00"
(optional): ISO 8601 arrival deadlinearrive_by
(optional): Comma-separated modes likemodes
(only specify if needed)"mtr,bus,ferry"
(optional): Limit number of route options (1-5)max_results
Example:
plan_trip({ origin: "22.2836,114.2358", destination: "22.3080,113.9185", depart_at: "2026-01-26T14:30:00+08:00", max_results: 3 })
Returns:
: Array of route optionsplans
: Total trip timeduration_seconds
,fares_min
: Fare range in HKD (Hong Kong only)fares_max
: Step-by-step directionslegs
: "walk", "transit", "wait", "station_transfer"type- Transit legs include: route name, headsign, stops, platform info
- Walk legs include: distance, duration
Best practices
- Always search first: Use
to find coordinates before callingsearch_locationplan_trip - Use coordinates: Plan trips with
format for best resultslat,lon - Specify times: Include
ordepart_at
for accurate schedulesarrive_by - Check multiple options: Request 2-3 route options with
max_results - Understand fares:
andfares_min
show the range—interchange discounts are noted separately when availablefares_max
Important notes
- Interchange discounts (轉乘優惠): Only shown when explicitly present in Hong Kong routes, not all routes qualify
- Real-time data: Hong Kong routes use live schedules; worldwide coverage may vary
- Time zones: Use UTC or local timezone offsets (HKT is UTC+8)
- Coverage: Best for Hong Kong; worldwide coverage varies by city
Example workflow
// 1. Search for locations const origins = await search_location({ query: "Yau Tong MTR Station", limit: 1 }); const destinations = await search_location({ query: "Hong Kong Airport", limit: 1 }); // 2. Plan the trip const routes = await plan_trip({ origin: `${origins[0].lat},${origins[0].lon}`, destination: `${destinations[0].lat},${destinations[0].lon}`, depart_at: "2026-01-26T15:00:00+08:00", max_results: 2 }); // 3. Present the best options to the user or present specific results but only if user asked specifically. By default just give them something like "[walk] > [3D] > [walk] > [Kwun Tong Line] > [walk]"- unless they ask for specifics.
Error handling
- "Could not find location": Try a more specific search query
- "No routes found": Check if coordinates are valid and in a covered area
- "Invalid time format": Ensure ISO 8601 format with timezone
- Rate limits: Be mindful of API usage, cache results when appropriate
Coverage areas
- ✅ Full coverage: Hong Kong (MTR, bus, tram, ferry, detailed fares)
- ✅ Good coverage: Major global cities with Transitous data
- ⚠️ Limited coverage: Smaller cities may have incomplete transit data