Futureweb Intervals MCP
A community-maintained, self-hosted Model Context Protocol server for Intervals.icu. It enables AI agents to access Garmin-enriched training metrics, custom fields, streams, recovery insights, and endurance performance analysis. The server supports OAuth authentication and allows for route-aware outdoor workout planning, integrating sports analytics data directly into ChatGPT and Claude workflows.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Analyze endurance performance and recovery insights from Intervals.icu data
- Access Garmin-enriched metrics and custom training streams
- Plan route-aware outdoor workouts with lap-press steps
- Integrate sports analytics into ChatGPT or Claude agents
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
ghcr.io/futureweb/intervals-mcp-server:1.0.0b2
{
"transport": "stdio",
"identifier": "ghcr.io/futureweb/intervals-mcp-server:1.0.0b2",
"runtimeHint": "docker",
"registryType": "oci",
"environmentVariables": [
{
"name": "API_KEY",
"isRequired": true,
"description": "Intervals.icu API key (Settings > Developer Settings)"
},
{
"name": "ATHLETE_ID",
"isRequired": true,
"description": "Intervals.icu athlete ID",
"placeholder": "i123456"
},
{
"name": "MCP_PERMISSIONS",
"default": "read",
"description": "Enabled tool classes: read (default, read-only), read,write, or all (adds destructive and admin tools)"
},
{
"name": "MCP_TOOLSET",
"choices": [
"full",
"core"
],
"default": "full",
"description": "full (every tool of the enabled classes) or core (curated coaching set)"
},
{
"name": "ATHLETE_TIMEZONE",
"description": "Time zone for 'today' and default date ranges, e.g. Europe/Vienna; default: the Intervals.icu athlete profile",
"placeholder": "Europe/Vienna"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"futureweb-intervals-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_KEY=<YOUR_API_KEY>",
"-e",
"ATHLETE_ID=<YOUR_ATHLETE_ID>",
"-e",
"MCP_PERMISSIONS=<YOUR_MCP_PERMISSIONS>",
"-e",
"MCP_TOOLSET=<YOUR_MCP_TOOLSET>",
"-e",
"ATHLETE_TIMEZONE=<YOUR_ATHLETE_TIMEZONE>",
"ghcr.io/futureweb/intervals-mcp-server:1.0.0b2"
],
"env": {
"API_KEY": "<YOUR_API_KEY>",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"MCP_PERMISSIONS": "<YOUR_MCP_PERMISSIONS>",
"MCP_TOOLSET": "<YOUR_MCP_TOOLSET>",
"ATHLETE_TIMEZONE": "<YOUR_ATHLETE_TIMEZONE>"
}
}
}
}Cline
{
"mcpServers": {
"futureweb-intervals-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_KEY=<YOUR_API_KEY>",
"-e",
"ATHLETE_ID=<YOUR_ATHLETE_ID>",
"-e",
"MCP_PERMISSIONS=<YOUR_MCP_PERMISSIONS>",
"-e",
"MCP_TOOLSET=<YOUR_MCP_TOOLSET>",
"-e",
"ATHLETE_TIMEZONE=<YOUR_ATHLETE_TIMEZONE>",
"ghcr.io/futureweb/intervals-mcp-server:1.0.0b2"
],
"env": {
"API_KEY": "<YOUR_API_KEY>",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"MCP_PERMISSIONS": "<YOUR_MCP_PERMISSIONS>",
"MCP_TOOLSET": "<YOUR_MCP_TOOLSET>",
"ATHLETE_TIMEZONE": "<YOUR_ATHLETE_TIMEZONE>"
}
}
}
}VS Code
{
"servers": {
"futureweb-intervals-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_KEY=<YOUR_API_KEY>",
"-e",
"ATHLETE_ID=<YOUR_ATHLETE_ID>",
"-e",
"MCP_PERMISSIONS=<YOUR_MCP_PERMISSIONS>",
"-e",
"MCP_TOOLSET=<YOUR_MCP_TOOLSET>",
"-e",
"ATHLETE_TIMEZONE=<YOUR_ATHLETE_TIMEZONE>",
"ghcr.io/futureweb/intervals-mcp-server:1.0.0b2"
],
"env": {
"API_KEY": "<YOUR_API_KEY>",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"MCP_PERMISSIONS": "<YOUR_MCP_PERMISSIONS>",
"MCP_TOOLSET": "<YOUR_MCP_TOOLSET>",
"ATHLETE_TIMEZONE": "<YOUR_ATHLETE_TIMEZONE>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"futureweb-intervals-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_KEY=<YOUR_API_KEY>",
"-e",
"ATHLETE_ID=<YOUR_ATHLETE_ID>",
"-e",
"MCP_PERMISSIONS=<YOUR_MCP_PERMISSIONS>",
"-e",
"MCP_TOOLSET=<YOUR_MCP_TOOLSET>",
"-e",
"ATHLETE_TIMEZONE=<YOUR_ATHLETE_TIMEZONE>",
"ghcr.io/futureweb/intervals-mcp-server:1.0.0b2"
],
"env": {
"API_KEY": "<YOUR_API_KEY>",
"ATHLETE_ID": "<YOUR_ATHLETE_ID>",
"MCP_PERMISSIONS": "<YOUR_MCP_PERMISSIONS>",
"MCP_TOOLSET": "<YOUR_MCP_TOOLSET>",
"ATHLETE_TIMEZONE": "<YOUR_ATHLETE_TIMEZONE>"
}
}
}
}Let your agent find its tools
Find servers like Futureweb Intervals MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.