home / mcp / domestique mcp server
Provides unified access to Intervals.icu, Whoop, and TrainerRoad data via an MCP API to query workouts, recovery, planning, and trends.
Configuration
View docs{
"mcpServers": {
"gesteves-domestique": {
"url": "https://domestique.fly.dev/mcp",
"headers": {
"REDIS_URL": "redis://localhost:6379",
"MCP_AUTH_TOKEN": "your-secret-token",
"WHOOP_CLIENT_ID": "your_client_id",
"INTERVALS_API_KEY": "intervals_api_key",
"WHOOP_REDIRECT_URI": "http://localhost:3000/callback",
"WHOOP_CLIENT_SECRET": "your_client_secret",
"INTERVALS_ATHLETE_ID": "12345",
"TRAINERROAD_CALENDAR_URL": "https://trainerroad.example.com/calendar.ics"
}
}
}
}Domestique is a TypeScript MCP server that unifies access to fitness data from Intervals.icu, Whoop, and TrainerRoad, letting you query workouts, view recovery metrics, planning calendars, and trends from a single endpoint.
You connect your MCP client to the Domestique server to access multiple data sources in one place. Use the available tools to retrieve today’s data, historical trends, and planning information. You can also configure Claude to ask natural-language questions and receive consolidated responses about workouts, recovery, planning, and trends.
Prerequisites you need before running the server include Node.js 20 or newer, access to Intervals.icu with an API key, a Whoop OAuth setup, and a TrainerRoad private calendar feed.
1) Prepare environment configuration by copying the example and filling in credentials.
2) Start the Docker environment to run the server and dependencies.
3) Complete the Whoop OAuth flow to obtain and store tokens in Redis for token refresh.
Key configuration and runtime steps you will use include setting environment variables for MCP authentication and data source credentials, starting the server, and connecting via an MCP client or Claude.
To connect with Claude, you can use the MCP URL for the deployment and pass your secret token in the Authorization header, or include it as a query parameter if your setup requires that UI method.
Use the HTTP endpoint provided by your deployment to connect Claude. The server URL exposes the MCP API under /mcp, and you can supply your secret token in the Authorization header like this: Authorization: Bearer YOUR_SECRET_TOKEN. If you prefer a query parameter approach for Claude's UI, append token=YOUR_SECRET_TOKEN to the MCP URL.
If tokens or API keys are not accepted, verify that Redis is running and that all required environment variables are set. Check the logs for OAuth token refresh events and ensure your Intervals.icu and TrainerRoad feeds are reachable. Use the MCP Inspector tool to verify tool availability and parameter handling against your local server.
Today's Whoop recovery metrics including sleep and HRV data.
Today's Whoop strain metrics including strain score, heart rate, and calories.
Today's completed workouts from Intervals.icu.
Today's planned workouts from TrainerRoad and Intervals.icu calendars.
Historical workouts with matched Whoop strain data, supporting ISO dates or natural language ranges; includes expanded metrics like speed, cadence, efficiency, and per-activity fitness snapshots.
Whoop strain scores and activities for a date range.
HRV, sleep, and recovery patterns over time with summary statistics.
Training load trends including CTL, ATL, TSB, ramp rate, and ACWR for injury risk.
Planned workouts for future date ranges from both TrainerRoad and Intervals.icu calendars.
Detailed information about a specific planned workout by ID or date.