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.
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
- Go to intervals.icu/settings
- Scroll down to "Developer Settings"
- Generate an API key
- Note your athlete ID (e.g.,
i335136from 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-mcpwith the absolute path to this repositoryyour-api-key-herewith your intervals.icu API keyyour-athlete-idwith 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 formatnewest_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 formatnewest_date(optional): End date in YYYY-MM-DD formatgroup_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 formatnewest_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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
E2B
Using MCP to run code via e2b.