# intervals-icu-mcp

Connects an AI client to Intervals.icu data on activities, wellness, gear, and workouts. Use it to review training and plan a week.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 105
- Author: hhopke
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/hhopke/intervals-icu-mcp
- Updated: 2026-10-18
- HTML: https://affpapa.org/en/nevibecode/mcp/intervals-icu-mcp

## What it does

This MCP server gives an AI client access to Intervals.icu, with tools for reading and changing activity, wellness, calendar, gear, and workout data. It also includes athlete-profile and activity-analysis tools, resources covering workout syntax and related schemas, plus prompts for training analysis, recovery checks, and weekly planning.

The server communicates over stdio. Setup requires an Intervals.icu API key and athlete ID; the recommended launch uses `uvx`, which comes with `uv`. Without those credentials, it cannot access the account's training data. You can also run it from a source checkout or with Docker.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `INTERVALS_ICU_API_KEY`, `INTERVALS_ICU_ATHLETE_ID` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add intervals-icu-mcp -e INTERVALS_ICU_API_KEY=<INTERVALS_ICU_API_KEY> -e INTERVALS_ICU_ATHLETE_ID=<INTERVALS_ICU_ATHLETE_ID> -- uvx intervals-icu-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from intervals-icu-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add intervals-icu-mcp --env INTERVALS_ICU_API_KEY=<INTERVALS_ICU_API_KEY> --env INTERVALS_ICU_ATHLETE_ID=<INTERVALS_ICU_ATHLETE_ID> -- uvx intervals-icu-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from intervals-icu-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "intervals-icu-mcp": {
            "command": "uvx",
            "args": [
                "intervals-icu-mcp"
            ],
            "env": {
                "INTERVALS_ICU_API_KEY": "<INTERVALS_ICU_API_KEY>",
                "INTERVALS_ICU_ATHLETE_ID": "<INTERVALS_ICU_ATHLETE_ID>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from intervals-icu-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "intervals-icu-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "intervals-icu-mcp"
            ],
            "env": {
                "INTERVALS_ICU_API_KEY": "<INTERVALS_ICU_API_KEY>",
                "INTERVALS_ICU_ATHLETE_ID": "<INTERVALS_ICU_ATHLETE_ID>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from intervals-icu-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e INTERVALS_ICU_API_KEY=<INTERVALS_ICU_API_KEY> -e INTERVALS_ICU_ATHLETE_ID=<INTERVALS_ICU_ATHLETE_ID> intervals-icu-mcp uvx intervals-icu-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from intervals-icu-mcp <command>

## When to use it
- review recent Intervals.icu activities
- inspect performance data for an activity
- check wellness metrics
- plan a week of training
- look up calendar and gear details

## Example prompts
- Show my recent activities from Intervals.icu.
- Analyze this activity using my athlete data.
- Help me plan a training week based on my wellness information.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
