Skip to main content
Glama
Intervals.icu MCP Server

Intervals.icu MCP Server

by moxus

Intervals.icu MCP Server

This is a Model Context Protocol (MCP) server for Intervals.icu. It allows you to interact with your Intervals.icu data, including activities, wellness data, and calendar events.

Configuration

You need an API Key and your Athlete ID from Intervals.icu.

Environment Variables

Variable

Description

INTERVALS_ATHLETE_ID

Your Intervals.icu Athlete ID (e.g., i12345)

INTERVALS_API_KEY

Your Intervals.icu API Key

Setting Environment Variables

macOS / Linux

You can set environment variables in your terminal session or add them to your shell configuration file (e.g., .bashrc, .zshrc).

export INTERVALS_ATHLETE_ID="your_athlete_id"
export INTERVALS_API_KEY="your_api_key"

To make them permanent, add the lines above to your ~/.zshrc or ~/.bashrc file and run source ~/.zshrc (or source ~/.bashrc).

Windows (Command Prompt)

set INTERVALS_ATHLETE_ID=your_athlete_id
set INTERVALS_API_KEY=your_api_key

Note: This sets the variables for the current session only. To set them permanently, use the System Properties dialog or setx.

Windows (PowerShell)

$env:INTERVALS_ATHLETE_ID="your_athlete_id"
$env:INTERVALS_API_KEY="your_api_key"

To set them permanently:

[System.Environment]::SetEnvironmentVariable('INTERVALS_ATHLETE_ID', 'your_athlete_id', [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('INTERVALS_API_KEY', 'your_api_key', [System.EnvironmentVariableTarget]::User)

Related MCP server: intervals.mcp

Usage

Run the server using the package:

npx @moxus/intervals-mcp

Or if running from source:

node dist/index.js

Verify Command

You can verify your configuration and connection to Intervals.icu using the verify command. This will attempt to fetch your athlete profile.

npx @moxus/intervals-mcp verify

If successful, you will see your athlete details. If it fails, check your API key and Athlete ID.

Gemini Installation

The simplest way to install this MCP server for Gemini is using the extension:

gemini extension install https://github.com/moxus/intervals-icu-gemini

For more details, refer to the Intervals.icu Gemini Extension repository.

Manual Configuration (Alternative)

To add this MCP server to a CLI agent like gemini-cli (or similar agents that support MCP) manually, you typically need to configure the agent to spawn this server process.

Assuming gemini-cli supports an MCP configuration file (like mcp_config.json or command line arguments), you would add an entry for @moxus/intervals-mcp.

Example configuration (conceptual):

{
  "mcpServers": {
    "intervals": {
      "command": "npx",
      "args": ["-y", "@moxus/intervals-mcp"],
      "env": {
        "INTERVALS_ATHLETE_ID": "your_athlete_id",
        "INTERVALS_API_KEY": "your_api_key"
      }
    }
  }
}

Or if you are running it locally from source:

{
  "mcpServers": {
    "intervals": {
      "command": "node",
      "args": ["/path/to/intervals-icu-mcp-ts/dist/index.js"],
      "env": {
        "INTERVALS_ATHLETE_ID": "your_athlete_id",
        "INTERVALS_API_KEY": "your_api_key"
      }
    }
  }
}

Consult the documentation of the specific agent you are using for the exact configuration format.

Tools

  • get_athlete_profile: Get athlete details.

  • list_activities: Get activities within a date range.

  • get_activity: Get full details of an activity.

  • list_wellness: Get wellness logs.

  • list_workouts: Get workouts from the library.

  • create_workout: Create a workout in the library.

  • list_events: Get calendar events.

  • create_event: Create an event (workout, note, etc.) on the calendar.

  • update_event: Update an existing event.

  • delete_future_event: Delete an event.

Available Tools

10 tools
create_eventC

Create a new event on the calendar (must be in the future).

Inputs: start_date_local (required), name, category, description, +1 more.

create_workoutC

Create a new workout in the library.

Inputs: name (required), description, folder_id, type, +1 more.

delete_future_eventB

Delete a future event from the calendar.

Inputs: id (required).

get_activityA

Get FULL details of a specific activity by ID. Returns 100+ fields far beyond what list_activities provides, including: power (avg, weighted, FTP, W', joules), cadence, pace/GAP, zone times (HR/power/pace), performance metrics (efficiency factor, variability index, decoupling, polarization index), weather conditions, temperature, RPE/feel, intervals summary, achievements, gear, and tags. Always use this when answering questions about a specific activity.

Inputs: id (required).

get_athlete_profileB

Get the profile of the configured athlete.

Inputs: no named parameters.

list_activitiesA

List activity summaries for a date range. Returns ONLY compact identification data (id, date, name, type, distance, moving_time, elevation, heart rate, speed, training load, fitness/fatigue, calories, source). To analyze an activity in depth, you MUST call get_activity — it returns 100+ fields including power, cadence, zones, weather, performance metrics, intervals, and more.

Inputs: oldest (required), newest (required).

list_eventsA

List calendar events (planned workouts, notes, races, etc.) within a date range. Returns event details including workout descriptions/steps.

Inputs: oldest (required), newest (required).

list_wellnessA

List wellness data (sleep, fatigue, etc.) for the athlete within a date range.

Inputs: oldest (required), newest (required).

list_workoutsA

List all workouts in the athlete's library.

Inputs: no named parameters.

update_eventC

Update a future event on the calendar.

Inputs: id (required), start_date_local, name, description, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (create, read, list, update, delete) with clear boundaries. No overlap; get vs list are well-differentiated.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., create_event, list_activities) using lowercase snake_case with no mixing of conventions.

    Tool Count5/5

    10 tools is within the ideal range for a domain-specific server, covering key operations on activities, events, workouts, wellness, and athlete profile without unnecessary bloat.

    Completeness4/5

    Covers CRUD for events and read for most resources, but missing update/delete for workouts and update/delete for activities. Minor gaps that agents can work around.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with Intervals.icu fitness tracking and wellness data, allowing users to fetch, filter, and group activities or health metrics. It provides structured summaries of workouts and physical well-being through natural language queries.
      4
      -
    • F
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to access and analyze intervals.icu training data including activities, fitness metrics (CTL/ATL/TSB), wellness stats, and calendar events. Supports natural language querying of athletic performance for training insights and workout planning.
      6
      -