wheels-router
Plan public transit trips globally using Wheels Router (Hong Kong) and Transitous (worldwide)
Best use case
wheels-router is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Plan public transit trips globally using Wheels Router (Hong Kong) and Transitous (worldwide)
Teams using wheels-router should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/wheels-router/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How wheels-router Compares
| Feature / Agent | wheels-router | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Plan public transit trips globally using Wheels Router (Hong Kong) and Transitous (worldwide)
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
## 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`:
```json
{
"mcpServers": {
"wheels-router": {
"description": "Plan public transit trips globally",
"baseUrl": "https://mcp.justusewheels.com/mcp"
}
}
}
```
Then call tools directly:
```bash
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`):
```json
{
"mcpServers": {
"wheels-router": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"]
}
}
}
```
**Cursor/Windsurf/VS Code** (`.cursor/mcp.json` or similar):
```json
{
"mcpServers": {
"wheels-router": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"]
}
}
}
```
## Available tools
### `search_location`
Search for places before planning trips. Always use this first if you don't have exact coordinates.
**Parameters:**
- `query` (required): Place name or address (e.g., "Hong Kong Airport", "Yau Tong MTR Exit A2")
- `limit` (optional): Number of results (1-10, default 5)
**Example:**
```javascript
search_location({
query: "Hong Kong International Airport",
limit: 3
})
```
**Returns:**
- `display_name`: Full address
- `lat`, `lon`: Coordinates for use in `plan_trip`
- `type`, `class`: Location category
### `plan_trip`
Plan a transit route between two points.
**Parameters:**
- `origin` (required): Starting point as `"lat,lon"` or `"stop:ID"`
- `destination` (required): Ending point as `"lat,lon"` or `"stop:ID"`
- `depart_at` (optional): ISO 8601 departure time (e.g., `"2026-01-26T10:00:00+08:00"`)
- `arrive_by` (optional): ISO 8601 arrival deadline
- `modes` (optional): Comma-separated modes like `"mtr,bus,ferry"` (only specify if needed)
- `max_results` (optional): Limit number of route options (1-5)
**Example:**
```javascript
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:**
- `plans`: Array of route options
- `duration_seconds`: Total trip time
- `fares_min`, `fares_max`: Fare range in HKD (Hong Kong only)
- `legs`: Step-by-step directions
- `type`: "walk", "transit", "wait", "station_transfer"
- Transit legs include: route name, headsign, stops, platform info
- Walk legs include: distance, duration
## Best practices
1. **Always search first**: Use `search_location` to find coordinates before calling `plan_trip`
2. **Use coordinates**: Plan trips with `lat,lon` format for best results
3. **Specify times**: Include `depart_at` or `arrive_by` for accurate schedules
4. **Check multiple options**: Request 2-3 route options with `max_results`
5. **Understand fares**: `fares_min` and `fares_max` show the range—interchange discounts are noted separately when available
## 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
```javascript
// 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 dataRelated Skills
llm-router
Unified LLM Gateway - One API for 70+ AI models. Route to GPT, Claude, Gemini, Qwen, Deepseek, Grok and more with a single API key.
clawrouter
Smart LLM router — save 67% on inference costs. Routes every request to the cheapest capable model across 41 models from OpenAI, Anthropic, Google, DeepSeek, and xAI.
astrai-inference-router
Route all LLM calls through Astrai for 40%+ cost savings with intelligent routing and privacy controls
openrouter-image-generation
Generate or edit images through OpenRouter's multimodal image generation endpoint (`/api/v1/chat/completions`) using OpenRouter-compatible image models. Use for text-to-image or image-to-image requests when the user wants OpenRouter, `OPENROUTER_API_KEY`, model overrides, or provider-specific `image_config` options.
smart-router
No description provided.
llmcouncil-router
Route any prompt to the best-performing LLM using peer-reviewed council rankings from LLM Council
memory-router
Central dispatch layer for OpenClaw Memory Stack. Routes memory queries to the best backend via signal detection, class-based dispatch, and sequential fallback.
react-router-v7
React Router v7 best practices for data-driven routing. Use when implementing routes, loaders, actions, Form components, fetchers, navigation guards, protected routes, or URL search params. Triggers on createBrowserRouter, RouterProvider, useLoaderData, useActionData, useFetcher, NavLink, Outlet.
react-router-code-review
Reviews React Router code for proper data loading, mutations, error handling, and navigation patterns. Use when reviewing React Router v6.4+ code, loaders, actions, or navigation logic.
llmrouter
Intelligent LLM proxy that routes requests to appropriate models based on complexity. Save money by using cheaper models for simple tasks. Tested with Anthropic, OpenAI, Gemini, Kimi/Moonshot, and Ollama.
openrouter-toolkit
The definitive OpenRouter skill — intelligent model routing by task type, cost tracking with budget alerts, automatic fallback chains, side-by-side model comparison, and savings recommendations. Use for optimizing AI model selection, controlling costs, and building resilient LLM pipelines.
Router NIMIMORE
Smart model router for OpenClaw. Automatically selects the optimal AI model based on query characteristics, balancing cost and performance.