Wahoo MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAHOO_AUTH_HOST | No | Auth server bind address (default: localhost) | localhost |
| WAHOO_AUTH_PORT | No | Auth server port (default: 8080) | 8080 |
| WAHOO_CLIENT_ID | No | Your Wahoo Client ID | |
| WAHOO_TOKEN_FILE | Yes | Path to store OAuth tokens (required) | |
| WAHOO_CLIENT_SECRET | No | Your Wahoo Client Secret | |
| WAHOO_REDIRECT_HOST | No | OAuth callback host (default: uses WAHOO_AUTH_HOST) | |
| WAHOO_REDIRECT_PORT | No | OAuth callback port (default: uses WAHOO_AUTH_PORT) | |
| WAHOO_REDIRECT_SCHEME | No | URL scheme - http or https (default: http) | http |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workoutsC | List workouts from Wahoo Cloud API |
| get_workoutB | Get detailed information about a specific workout |
| list_routesC | List routes from Wahoo Cloud API |
| get_routeB | Get detailed information about a specific route |
| list_plansC | List plans from Wahoo Cloud API |
| get_planC | Get detailed information about a specific plan |
| create_planC | Create a new plan in the user's library |
| list_power_zonesB | List power zones from Wahoo Cloud API |
| get_power_zoneB | Get detailed information about a specific power zone |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Every tool has a clearly distinct purpose targeting specific resources (plans, power zones, routes, workouts) with clear action verbs (create, get, list). There is no ambiguity or overlap between tools, as each tool name precisely indicates what resource it operates on and what action it performs.
All tool names follow a consistent verb_noun pattern with snake_case throughout. The naming convention is perfectly predictable: create_plan, get_plan, list_plans, get_power_zone, list_power_zones, etc. There are no deviations or mixed styles.
With 9 tools, this server is well-scoped for managing Wahoo fitness resources. Each tool earns its place by covering distinct operations (create, get, list) across four resource types (plans, power zones, routes, workouts), providing a balanced and focused toolset.
The server covers get and list operations comprehensively for all four resource types, plus create for plans. However, there are notable gaps: no update or delete operations for any resource, and create is missing for power zones, routes, and workouts. This limits full lifecycle management.