WI

willtheodore/intervals-icu-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

6 stars 3 forks 质量 74 趋势 18MIT

MCP server for Intervals.icu — talk to your training data

概览

Connect Claude to your Intervals.icu training data. Ask questions about your fitness, plan workouts, and manage your calendar — all in plain English. - "What did I do last week? How does my training compare to the week before?" - "How has my fitness and fatigue changed over the last 3 months?" - "What's my best 20-minute power from the past year?" - "Create a 45-minute threshold workout and add it to my library." - "Add a race to my calendar for next Saturday and mark it as an A race." click at the top of this page, unzip it, then open a terminal and cd into the unzipped folder. Run these three commands from your terminal. They install dependencies, build the server, and launch an interactive setup wizard: The wizard will ask for your API key, write your .env file, and offer to update your Claude Desktop config automatically. When it's done, restart Claude Desktop and you're ready to go. Log into Intervals.icu, go to , and copy your API key.

README

以下为原文 README 节选,完整内容请查看原文。

intervals-icu-mcp

Connect Claude to your Intervals.icu training data. Ask questions about your fitness, plan workouts, and manage your calendar — all in plain English.

What you can ask Claude

  • “What did I do last week? How does my training compare to the week before?”
  • “How has my fitness and fatigue changed over the last 3 months?”
  • “What’s my best 20-minute power from the past year?”
  • “Create a 45-minute threshold workout and add it to my library.”
  • “Add a race to my calendar for next Saturday and mark it as an A race.”

Getting Started

What you’ll need

1. Get the code

With Git:

git clone https://github.com/willtheodore/intervals-icu-mcp.git
cd intervals-icu-mcp

Without Git: click Code → Download ZIP at the top of this page, unzip it, then open a terminal and cd into the unzipped folder.

Run these three commands from your terminal. They install dependencies, build the server, and launch an interactive setup wizard:

npm install
npm run build
npm run setup

The wizard will ask for your API key, write your .env file, and offer to update your Claude Desktop config automatically. When it’s done, restart Claude Desktop and you’re ready to go.

Option B: Manual setup

2. Get your API key

Log into Intervals.icu, go to Settings → Developer Settings, and copy your API key.

3. Install dependencies and build

npm install
npm run build

4. Create a .env file

Copy the example and fill in your details:

cp .env.example .env

Edit .env:

INTERVALS_API_KEY=your_api_key_here
INTERVALS_ATHLETE_ID=0   # Leave as 0 to use your own account

5. Add to Claude Desktop

Find your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Open it and add the intervals entry under mcpServers (replace the path with where you cloned this repo):

{
  "mcpServers": {
    "intervals": {
      "command": "node",
      "args": ["/absolute/path/to/intervals-icu-mcp/dist/index.js"],
      "env": {
        "INTERVALS_API_KEY": "your_api_key_here",
        "INTERVALS_ATHLETE_ID": "0"
      }
    }
  }
}

What these fields mean:

  • command — the program that runs the server (node)
  • args — the path to the built server file (update this to match your actual path)
  • env — environment variables passed to the server; put your API key here

6. Restart Claude Desktop

Close and reopen Claude Desktop. The Intervals tools will be available in any new conversation.

Verifying it works

Start a new Claude conversation and ask:

“What activities did I do last week?”

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "intervals": { "command": "node", "args": ["/absolute/path/to/intervals-icu-mcp/dist/index.js"], "env": { "INTERVALS_API_KEY": "your_api_key_here", "INTERVALS_ATHLETE_ID": "0" } } } }