hybrid-athlete-training-mcp
v0.2.0
Published
MCP server for Hybrid Athlete Training — lets AI agents read and author workouts
Maintainers
Readme
hybrid-athlete-training-mcp
MCP server for Hybrid Athlete Training — lets an AI agent plan, read, and edit your workouts through the app's agent REST API.
💼 Need a custom web app? I build production web applications for clients — get in touch at manuelcoffin.fr.
Hybrid Athlete Training is a training journal for hybrid athletes — strength sessions, endurance work, and the calendar that ties them together. This package exposes the app's /api/v1/agent/* API as Model Context Protocol tools over stdio so an agent (Claude Code, Claude Desktop, Cursor, …) can list and read workouts, search the exercise library, inspect per-exercise history, and create / update / delete workouts on your calendar.
Prerequisites
- An account on hybrid-athlete.training.
- An API key — create one in the app under Account → Integrations. It starts with
hat_sk_. - Node.js 18 or newer.
Configuration
The server reads two environment variables:
| Variable | Required | Description |
| --- | --- | --- |
| HYBRID_ATHLETE_TRAINING_TOKEN | yes | An API key from Account → Integrations (starts with hat_sk_). |
| HYBRID_ATHLETE_TRAINING_URL | no | Base URL of the app. Defaults to http://localhost:3000. Set to https://www.hybrid-athlete.training to hit production. |
Claude Code
Register the server once, available across all your projects:
claude mcp add hybrid-athlete-training --scope user \
--env HYBRID_ATHLETE_TRAINING_TOKEN=hat_sk_… \
--env HYBRID_ATHLETE_TRAINING_URL=https://www.hybrid-athlete.training \
-- npx -y hybrid-athlete-training-mcpOr add it to an .mcp.json directly:
{
"mcpServers": {
"hybrid-athlete-training": {
"command": "npx",
"args": ["-y", "hybrid-athlete-training-mcp"],
"env": {
"HYBRID_ATHLETE_TRAINING_TOKEN": "hat_sk_…",
"HYBRID_ATHLETE_TRAINING_URL": "https://www.hybrid-athlete.training"
}
}
}
}Claude Desktop
Add the same hybrid-athlete-training entry under mcpServers in claude_desktop_config.json.
Tools
| Tool | Description |
| --- | --- |
| list_workouts | List workouts on the calendar within a date range. |
| get_workout | Read one workout as an ordered segment list. |
| search_exercises | Search the exercise library by name. |
| get_exercise_history | Recent completed sets of one exercise. |
| create_workout | Create a workout from a list of segments. |
| update_workout | Patch a workout by block id with ordered operations. |
| delete_workout | Delete an uncompleted workout. |
Notes
- Completed workouts are read-only.
update_workoutanddelete_workoutagainst a completed workout are rejected — a logged training result is never rewritten. update_textis a lossy replace. It overwrites the targetedtextsegment with the Markdown you supply; pass the full intended text.- v1 authors strength only (
SETS_REPS,TIME_HOLD). Endurance work is written astextprose with an endurance category. - The agent cannot create exercises — pick ids from
search_exercises.
Building from source
From the repo root:
pnpm --filter hybrid-athlete-training-mcp buildThis produces packages/mcp/dist/index.mjs — an executable stdio MCP server.
