Get the FREE Ultimate OpenClaw Setup Guide →

rusty-intervals

Fast and lightweight MCP server for intervals.icu

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio like-a-freedom-rusty-intervals-mcp docker run -i rusty-intervals:latest \
  --env INTERVALS_ICU_API_KEY="your_api_key_here" \
  --env INTERVALS_ICU_ATHLETE_ID="i123456"

How to use

rusty-intervals is a token-efficient MCP server for Intervals.icu, implemented in Rust to minimize LLM context usage while exposing a rich set of tools across nine categories (Activities, Activity Analysis, Athlete, Wellness, Events/Calendar, Performance/Curves, Workout Library, Gear Management, Sport Settings). The server auto-generates its toolset from the live Intervals.icu OpenAPI spec, so new endpoints and schemas appear after startup without manual updates. Tools return compact, summarized results by default, with opt-in expansions when detailed payloads are needed. To use it, provide your Intervals.icu API key and your athlete ID, then run the server via Docker or a local Rust build. The MCP surface includes predefined prompts (templates) and a single MCP resource (Athlete profile) to keep context focused on what the LLM needs for the current task.

How to install

Prerequisites:

  • Docker installed on your machine
  • Or Rust toolchain (Rust 1.92+ with Cargo) if you prefer building from source

Option A: Install via Docker (recommended for quick start)

  1. Build or pull the image (if you don’t have a prebuilt image, build locally):
# If you have a Dockerfile in the repo
# docker build -t rusty-intervals:latest .
  1. Create an environment file with your credentials:
cat > intervals-icu.env <<EOF
INTERVALS_ICU_API_KEY=your_api_key_here
INTERVALS_ICU_ATHLETE_ID=i123456
EOF
  1. Run the container, wiring in the env file as needed by your setup:
docker run -i --env-file intervals-icu.env rusty-intervals:latest

Option B: Build from source with Cargo (Rust)

  1. Install Rust (1.92+) and Cargo from https://rustup.rs/
  2. Clone the repository and build:
git clone https://github.com/like-a-freedom/rusty-intervals-mcp.git
cd rusty-intervals-mcp
cargo build --release
  1. Create an environment file and run the binary:
cp .env.example .env
# Edit .env to add credentials:
# INTERVALS_ICU_API_KEY=your_api_key_here
# INTERVALS_ICU_ATHLETE_ID=i123456
export INTERVALS_ICU_API_KEY=your_api_key_here
export INTERVALS_ICU_ATHLETE_ID=i123456
./target/release/intervals_icu_mcp

Option C: Install via cargo install (if the crate publishes a binary)

cargo install --path crates/intervals_icu_mcp
export INTERVALS_ICU_API_KEY=your_api_key_here
export INTERVALS_ICU_ATHLETE_ID=i123456
intervals_icu_mcp

Additional notes

Environment variables: you must provide INTERVALS_ICU_API_KEY and INTERVALS_ICU_ATHLETE_ID either via a .env file or directly in your shell. The server fetches tool definitions dynamically from the Intervals.icu OpenAPI spec at startup, so occasional restarts may be needed after API schema changes. When running in Docker, consider using a mounted volume for the .env file or an --env-file to separate credentials from image metadata. If you see token-bloat in responses, rely on the default compact mode; you can opt-in to expanded fields per call if you truly need full payload details. The MCP surface includes a single resource (Athlete profile) plus 7 prompts to drive common training and performance analyses.

Related MCP Servers

Sponsor this space

Reach thousands of developers