intervals-training-bridge
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
intervals-training-bridge
An MCP server that lets Claude Code read your intervals.icu training data and write planned workouts to your intervals.icu calendar. If your calendar syncs to Garmin Connect, those workouts appear on your watch.
The bridge is deliberately mechanical. It fetches and writes data; all the training judgement stays with you and Claude.
Tools
Tool | What it does | Writes? |
| Wellness (CTL/ATL/form, resting HR, HRV, sleep), completed activities, planned events, and a planned-versus-completed reconciliation for a date range. Planned events include an | No |
| Per-lap pace, heart rate, power, cadence and gradient for one activity. | No |
| Time-series for one activity, bucketed (per kilometre by default) with min/avg/max per metric. Never raw samples. | No |
| Creates a planned workout on a given date. | Yes |
| Replaces an existing planned workout. | Yes |
| Removes a planned workout. | Yes |
dryRun defaults
push_workout, update_workout and delete_workout all default to dryRun: true. A dry run reports what would be written and changes nothing. Claude should only pass dryRun: false after you have explicitly approved that specific change.
Warning:
dryRun: falsewrites to your real intervals.icu calendar, which syncs to Garmin Connect and onto your watch.delete_workoutcannot be undone. Always review the dry run first.
Each workout stays in one metric family: all pace or all power. Mixing them breaks intervals.icu's load and time-in-zone calculations. Workouts can be pushed for run and bike.
Related MCP server: garmin-claude-mcp
Setup
1. Get an intervals.icu API key
In intervals.icu, open Settings, then Developer Settings, and create an API key.
2. Create a settings file
Create config/intervals.env in your project:
INTERVALS_API_KEY=
INTERVALS_ATHLETE_ID=Paste your key after the =. INTERVALS_ATHLETE_ID is optional. Leave it blank to use the owner of the API key. This file holds a live API key, so keep it out of version control. Add it to your project's .gitignore:
config/intervals.env3. Add the server to Claude Code
Add this to .mcp.json in your project:
{
"mcpServers": {
"intervals-training-bridge": {
"command": "npx",
"args": [
"-y",
"intervals-training-bridge@^0.2",
"--stdio",
"--settings-file",
"config/intervals.env"
]
}
}
}Relative settings-file paths resolve against the directory Claude Code launches the server from. As an alternative to the flag, set the INTERVALS_ENV_FILE environment variable to the file's path; the flag wins if both are given.
Restart Claude Code, approve the server, and ask it for your recent training.
Optional settings
These go in the same settings file.
LOGS_PATH: a directory to writebridge.logto. Logs always go to stderr, which Claude Code captures. With--stdio, no log file is written unless you set this.INTERVALS_TIMEOUT_MS: how long to wait for intervals.icu before giving up, in milliseconds. Defaults to10000(10 seconds); must be more than 0.TIMEZONE: the time zone that decides what "today" is, for exampleEurope/LondonorAmerica/New_York. Leave it out to use your computer's time zone.
Requirements
Node.js 20 or later.
Development
npm install
npm run build
npm testLicence
MIT. See LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Connect Intervals.icu to Claude and ChatGPT: read training, plan workouts. Training never stored.
tri-train is a training platform for triathletes that syncs activities from Strava and Garmin and exposes them to Claude through a remote MCP server. Ask Claude how your last block went, why your run pace dropped, or whether you are fresh enough for Sunday's race, and it answers from your real data: activities with laps and grade-adjusted pace, weekly load and the performance management chart (CTL/ATL/TSB), sleep, HRV and resting heart rate, and your race calendar with predictions. Claude can also act: create and adjust planned workouts with structured intervals, push them to your Garmin watch, add races and write notes. Every change is journaled and can be undone. Read and write access are separate OAuth scopes, and the server enforces them on every call. Built and hosted in Switzerland by a triathlete; data stays on our own servers (Swiss revDSG / GDPR).
Your endurance training data in your AI assistant: activities, recovery, plan, workout edits.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent training activities and wellness data, then create, update, or delete structured workouts through intervals.icu so they sync to Garmin Connect and a watch.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent activities and wellness metrics (sleep, HRV, resting heart rate) and to create, update, or delete structured workouts pushed to an intervals.icu calendar that syncs to Garmin Connect and the user's watch.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent activities and wellness data (sleep, HRV, resting heart rate) and to create, update, or delete structured planned workouts through intervals.icu, which syncs them to Garmin Connect and onto the user's watch.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read recent training and wellness data through intervals.icu and create, update, or delete structured workouts that sync to a Garmin watch.MIT