Connects to the Intervals.icu API to retrieve activities, events, and wellness data.
Model Context Protocol (MCP) server for connecting Claude with the Intervals.icu API. It provides tools for authentication and data retrieval for activities, events, and wellness data.
If you find the Model Context Protocol (MCP) server useful, please consider supporting its continued development with a donation.
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/mvilanova/intervals-mcp-server.git
cd intervals-mcp-server
# Create virtual environment with Python 3.12
uv venv --python 3.12
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
uv sync
Make a copy of .env.example
and name it .env
by running the following command:
cp .env.example .env
Then edit the .env
file and set your Intervals.icu athlete id and API key:
API_KEY=your_intervals_api_key_here
ATHLETE_ID=your_athlete_id_here
Your athlete ID is typically visible in the URL when you're logged into Intervals.icu. It looks like:
https://intervals.icu/athlete/i12345/...
where i12345
is your athlete IDThis project is actively developed, with new features and fixes added regularly. To stay up to date, follow these steps:
main
⚠️ Make sure you don’t have uncommitted changes before running this command.
git checkout main && git pull
Activate your virtual environment and sync dependencies:
source .venv/bin/activate
uv sync
If Claude Desktop fails due to configuration changes, follow these steps:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
To use this server with Claude Desktop, you need to add it to your Claude Desktop configuration.
intervals_mcp_server
directory to configure Claude Desktop:mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
claude_desktop_config.json
, it should look like this:{
"mcpServers": {
"Intervals.icu": {
"command": "/Users/<USERNAME>/.cargo/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"/path/to/intervals-mcp-server",
"mcp",
"run",
"/path/to/intervals-mcp-server/src/intervals_mcp_server/server.py"
],
"env": {
"INTERVALS_API_BASE_URL": "https://intervals.icu/api/v1",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"API_KEY": "<YOUR_API_KEY>",
"LOG_LEVEL": "INFO"
}
}
}
}
Where /path/to/
is the path to the intervals-mcp-server
code folder in your system.
If you observe the following error messages when you open Claude Desktop, include the full path to uv
in the command key in the claude_desktop_config.json
configuration file. You can get the full path by running which uv
in the terminal.
2025-04-28T10:21:11.462Z [info] [Intervals.icu MCP Server] Initializing server...
2025-04-28T10:21:11.477Z [error] [Intervals.icu MCP Server] spawn uv ENOENT
2025-04-28T10:21:11.477Z [error] [Intervals.icu MCP Server] spawn uv ENOENT
2025-04-28T10:21:11.481Z [info] [Intervals.icu MCP Server] Server transport closed
2025-04-28T10:21:11.481Z [info] [Intervals.icu MCP Server] Client transport closed
Once the server is running and Claude Desktop is configured, you can use the following tools to ask questions about your past and future activities, events, and wellness data.
get_activities
: Retrieve a list of activitiesget_activity_details
: Get detailed information for a specific activityget_activity_intervals
: Get detailed interval data for a specific activityget_wellness_data
: Fetch wellness dataget_events
: Retrieve upcoming events (workouts, races, etc.)get_event_by_id
: Get detailed information for a specific eventInstall development dependencies and run the test suite with:
uv sync --all-extras
pytest -v tests
To start the server manually (useful when developing or testing), run:
mcp run src/intervals_mcp_server/server.py
The GNU General Public License v3.0
MCP Language Server gives MCP enabled clients access to semantic tools like get definition, references, rename, and diagnostics.
Manage DDEV projects, enabling LLM applications to interact with local development environments through the MCP protocol.
An image generation server that connects to a local ComfyUI instance via its API, supporting dynamic workflows.
A server for securely executing commands on the host system, requiring Java 21 or higher.
A GDB/MI protocol server based on the MCP protocol, providing remote application debugging capabilities with AI assistants.
Single tool to control all 100+ API integrations, and UI components
Introspects Laravel codebases to provide structured information about views, routes, classes, and models using the mateffy/laravel-introspect package.
Provides documentation and code snippets for SvelteKit and Tailwind CSS.
integration that connects BloodHound with AI through MCP, allowing security professionals to analyze Active Directory attack paths using natural language queries instead of Cypher.
An AI-native API testing platform for generating scenarios, executing tests, and analyzing results.