Intervals.icu MCP Server

Intervals.icu MCP Server

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.

Category
Visit Server

README

Intervals.icu MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to interact with intervals.icu fitness tracking data.

Features

  • Fetch activities data with date filtering
  • Retrieve wellness metrics with date filtering
  • Clean data output (removes empty/null values)
  • Basic authentication with intervals.icu API

Requirements

  • Python 3.12+
  • UV package manager
  • Intervals.icu API key
  • Your intervals.icu athlete ID

Installation

1. Install UV (if not already installed)

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

2. Clone and Setup Project

git clone <repository-url>
cd intervals-mcp
uv sync

3. Get Your Intervals.icu Credentials

  1. Go to intervals.icu/settings
  2. Scroll down to "Developer Settings"
  3. Generate an API key
  4. Note your athlete ID (e.g., i335136 from your profile URL)

4. Configure Claude Desktop

Add the following to your Claude Desktop configuration file:

Location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

{
  "mcpServers": {
    "intervals-icu": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/intervals-mcp",
        "run",
        "main.py"
      ],
      "env": {
        "INTERVALS_API_KEY": "your-api-key-here",
        "INTERVALS_ATHLETE_ID": "your-athlete-id"
      }
    }
  }
}

Replace:

  • /path/to/intervals-mcp with the absolute path to this repository
  • your-api-key-here with your intervals.icu API key
  • your-athlete-id with your athlete ID (e.g., i335136)

5. Restart Claude Desktop

Restart Claude Desktop to load the new MCP server.

Usage

Once configured, you can use these tools in Claude Desktop:

Get Activities

Get my activities from 2025-07-28

Get Grouped Activities (Recommended for large datasets)

Get my activities grouped by sport from 2025-07-01 to 2025-07-28
Show my weekly activity summary for July 2025

Get Wellness Data

Show my wellness data from 2025-07-01 to 2025-07-28

Get Grouped Wellness Data (Recommended for large datasets)

Show my weekly wellness summary for July 2025
Get my monthly wellness trends grouped by week

Available Tools

get_activities(oldest_date, newest_date=None)

Fetches detailed activities from intervals.icu. Use for small datasets or when you need full activity details.

Parameters:

  • oldest_date (required): Start date in YYYY-MM-DD format
  • newest_date (optional): End date in YYYY-MM-DD format

get_grouped_activities(oldest_date, newest_date=None, group_by="sport", include_details=False)

Fetches and groups activities to reduce data volume. Recommended for analyzing multiple activities or time periods.

Parameters:

  • oldest_date (required): Start date in YYYY-MM-DD format
  • newest_date (optional): End date in YYYY-MM-DD format
  • group_by (optional): Grouping method - "sport", "day", "week", or "month" (default: "sport")
  • include_details (optional): Include filtered activity details in each group (default: false)

Returns grouped statistics: activity counts, total time/distance/calories, averages per group, and overall totals.

get_wellness(oldest_date, newest_date=None)

Fetches wellness metrics from intervals.icu.

Parameters:

  • oldest_date (required): Start date in YYYY-MM-DD format
  • newest_date (optional): End date in YYYY-MM-DD format

Development

Testing the Server

# Test imports and basic structure
INTERVALS_API_KEY=test_key INTERVALS_ATHLETE_ID=i335136 uv run python -c "import tools.activities; import tools.wellness; print('OK')"

# Run the server locally
INTERVALS_API_KEY=your_key INTERVALS_ATHLETE_ID=your_id uv run main.py

Project Structure

intervals-mcp/
├── pyproject.toml          # UV project configuration
├── main.py                 # Entry point
├── server.py               # FastMCP server instance
├── tools/
│   ├── activities.py       # Activities data tool
│   └── wellness.py         # Wellness data tool
└── utils/
    └── intervals_client.py # HTTP client with authentication

API Documentation

For more information about the intervals.icu API, visit:

License

This project is open source and available under the MIT License.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured