About Workout MCP Server
Workout MCP Server provides cycling workout data and training analytics for LLMs. It is intended for fitness analysis, with tools for retrieving workouts and calculating fitness, fatigue, and form metrics.
Key features
- 01Retrieve recent workout history
- 02Look up workouts by ID
- 03Calculate 42-day fitness (CTL)
- 04Calculate 7-day fatigue (ATL)
- 05Calculate form (TSB)
Use cases
- 01Review recent cycling workouts
- 02Analyze current training-week activity
- 03Track fitness and fatigue metrics
- 04Assess training balance from TSS
MCP support
It exposes workout retrieval and training-metric calculations as tools for MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEWorkout MCP Server
A Model Context Protocol (MCP) server that provides cycling workout analytics tools, enabling LLMs to analyze fitness data, calculate training metrics, and provide insights into athletic performance.
Features
The Workout MCP Server provides tools for:
- Retrieving workout history (last 50 or last 7 workouts)
- Looking up specific workouts by ID
- Computing fitness metrics:
- Fitness (CTL): Chronic Training Load - 42-day exponentially weighted moving average
- Fatigue (ATL): Acute Training Load - 7-day exponentially weighted moving average
- Form (TSB): Training Stress Balance - the difference between fitness and fatigue
Installation
Using uv (recommended)
When using uv no specific installation is needed. We will
use uvx to directly run workout_mcp_server.
Using PIP
Alternatively you can install workout_mcp_server via pip:
pip install workout_mcp_server
After installation, you can run it as a module using:
python -m workout_mcp_server
Configuration
Configure with Claude Desktop
Add this to your claude_desktop_config.json:
Using uvx
"mcpServers": {
"workout_mcp_server": {
"command": "uvx",
"args": ["workout_mcp_server"]
}
}
Using pip installation
"mcpServers": {
"workout_mcp_server": {
"command": "python",
"args": ["-m", "workout_mcp_server"]
}
}
Configure with VSCode MCP Client
Add this to your settings.json:
Using uvx
"mcp.servers": {
"workout_mcp_server": {
"command": "uvx",
"args": ["workout_mcp_server"]
}
}
Using pip installation
"mcp.servers": {
"workout_mcp_server": {
"command": "python",
"args": ["-m", "workout_mcp_server"]
}
}
Available Tools
get_last_50_workouts
Retrieves all 50 workouts from the dataset, sorted by date (most recent first).
get_last_7_workouts
Retrieves the 7 most recent workouts, useful for analyzing current training week.
get_workout_by_id
Retrieves a specific workout by its unique ID.
Input:
workout_id(string): The unique identifier of the workout
compute_fitness
Calculates current fitness score (Chronic Training Load) based on a 42-day exponentially weighted moving average of Training Stress Score (TSS).
compute_fatigue
Calculates current fatigue score (Acute Training Load) based on a 7-day exponentially weighted moving average of TSS.
compute_form
Calculates current form score (Training Stress Balance) as the difference between fitness and fatigue. Positive values indicate good form, negative values suggest accumulated fatigue.
Data Structure
Each workout contains:
id: Unique workout identifierdate: Workout date (ISO format)duration_minutes: Workout duration in minutesdistance_km: Distance covered in kilometersavg_power_watts: Average power output in wattstss: Training Stress Scoreworkout_type: Type of workout (e.g., "endurance", "interval", "recovery")
Development
Building from Source
- Clone the repository
- Install dependencies:
pip install -e . - Run the server:
python -m workout_mcp_server
Testing
Run tests with: pytest
License
MIT License - see LICENSE file for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.