Skip to main content
Glama

Intervals.icu MCP Server

by mvilanova

Intervals.icu MCP Server

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.

Requirements

Setup

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Clone this repository

git clone https://github.com/mvilanova/intervals-mcp-server.git cd intervals-mcp-server

3. Create and activate a virtual environment

# 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

4. Sync project dependencies

uv sync

5. Set up environment variables

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
Getting your Intervals.icu API Key
  1. Log in to your Intervals.icu account
  2. Go to Settings > API
  3. Generate a new API key
Finding your Athlete ID

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 ID

Updating

This project is actively developed, with new features and fixes added regularly. To stay up to date, follow these steps:

1. Pull the latest changes from main

⚠️ Make sure you don’t have uncommitted changes before running this command.

git checkout main && git pull

2. Update Python dependencies

Activate your virtual environment and sync dependencies:

source .venv/bin/activate uv sync

Troubleshooting

If Claude Desktop fails due to configuration changes, follow these steps:

  1. Delete the existing entry in claude_desktop_config.json.
  2. Reconfigure Claude Desktop from the intervals_mcp_server directory:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env

Usage

1. Configure Claude Desktop

To use this server with Claude Desktop, you need to add it to your Claude Desktop configuration.

  1. Run the following from the intervals_mcp_server directory to configure Claude Desktop:
mcp install src/intervals_mcp_server/server.py --name "Intervals.icu" --with-editable . --env-file .env
  1. If you open your Claude Desktop App configuration file 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
  1. Restart Claude Desktop.

2. Use the MCP server with Claude

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 activities
  • get_activity_details: Get detailed information for a specific activity
  • get_activity_intervals: Get detailed interval data for a specific activity
  • get_wellness_data: Fetch wellness data
  • get_events: Retrieve upcoming events (workouts, races, etc.)
  • get_event_by_id: Get detailed information for a specific event

Development and testing

Install development dependencies and run the test suite with:

uv sync --all-extras pytest -v tests

Running the server locally

To start the server manually (useful when developing or testing), run:

mcp run src/intervals_mcp_server/server.py

License

The GNU General Public License v3.0

Glama.ai

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Подключает Клода к API Intervals.icu для получения данных о фитнесе, включая занятия, тренировки, показатели здоровья и тренировочные мероприятия.

  1. Требования
    1. Настраивать
      1. 1. Установить УФ (рекомендуется)
      2. 2. Клонировать этот репозиторий
      3. 3. Создать и активировать виртуальную среду
      4. 4. Синхронизация зависимостей проекта
      5. 5. Настройте переменные среды
    2. Использование
      1. 1. Настройте Claude Desktop
      2. 2. Используйте сервер MCP с Клодом
    3. Разработка и тестирование
      1. Запуск сервера локально
    4. Лицензия
      1. Избранное
        1. Глама.ай

      Related MCP Servers

      • -
        security
        A
        license
        -
        quality
        Connects to Garmin Connect and exposes your fitness and health data (activities, sleep, heart rate, steps, body composition) to Claude and other MCP-compatible clients.
        Last updated -
        70
        MIT License
        • Apple
      • A
        security
        A
        license
        A
        quality
        Provides access to Urban Institute's Education Data API through Claude, enabling users to query and analyze detailed educational data from schools, districts, and universities.
        Last updated -
        2
        2
        MIT License
        • Apple
      • -
        security
        A
        license
        -
        quality
        Enables Claude to interact with Webflow's APIs, allowing access to site information, collections, and other Webflow resources.
        Last updated -
        231
        MIT License
        • Apple
      • -
        security
        A
        license
        -
        quality
        Enables Claude to interact with Qlik Cloud applications and extract data from visualizations through the Qlik Cloud API.
        Last updated -
        5
        MIT License

      View all related MCP servers

      MCP directory API

      We provide all the information about MCP servers via our MCP API.

      curl -X GET 'https://glama.ai/api/mcp/v1/servers/mvilanova/intervals-mcp-server'

      If you have feedback or need assistance with the MCP directory API, please join our Discord server