动态MCP协议服务器

一个为Intervals.icu训练分析平台提供的动态MCP协议服务器,自动生成并代理所有API工具调用,实现零代码维护和全API覆盖。

  • by derrix060
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 derrix060/intervals-mcp

使用说明

间隔mcp

一个动态MCP(模型上下文协议)服务器 间隔icu --自行车手、跑步者和铁人三项运动员的训练分析平台。

服务器在启动时读取Intervals.icu OpenAPI规范,自动生成 144工具 (截至2026年2月),覆盖整个API,并代理对真实API的工具调用。当Intervals.icu API更改时,只需重新启动服务器即可获取新的端点-不需要更改代码。

为什么

Intervals.icu拥有丰富的API,有146个端点,涵盖活动、健康、锻炼、力量曲线、装备、日历活动等。从LLM使用它需要为每个端点手写工具定义或构建通用代理。

该服务器采用代理方法:它获取官方的OpenAPI规范,将每个操作转换为具有适当参数模式的MCP工具,并自动处理身份验证和运动员ID注入。其结果是,任何兼容MCP的客户端(Claude Code、Claude Desktop等)都可以完全访问您的Intervals.icu数据,而无需任何手动工具定义。

好处

  • API全面覆盖 --所有非文件上传端点都可以作为工具使用,直接从官方规范生成
  • 零维护 -API更改将在下一次重新启动时获得,无需修改代码
  • 运动员ID自动注射 --The athleteId 参数在每次调用时都会自动填充,因此LLM永远不需要请求它
  • 格式灵活性 --通过以下方式支持CSV、FIT或其他格式的端点 {ext} 用可选的 ext 参数(默认为JSON)
  • 标签过滤 --通过包含或排除OpenAPI标签,仅公开所需的端点
  • 单个二进制 --内置Go,编译成一个没有运行时依赖关系的静态二进制文件

安装

Homebrew(macOS和Linux)

brew tap derrix060/intervals-mcp https://github.com/derrix060/intervals-mcp
brew install intervals-mcp

随着 go install

需要 去 1.21或更高版本。

go install github.com/derrix060/intervals-mcp@latest

这将二进制文件放入您的 $GOPATH/bin (或 $HOME/go/bin 默认情况下)。

来源

git clone https://github.com/derrix060/intervals-mcp.git
cd intervals-mcp
go build -o intervals-mcp .

配置

服务器完全通过环境变量进行配置。

变量 必填 描述
INTERVALS_API_KEY 是 您的Intervals.icu API密钥
INTERVALS_ATHLETE_ID 是 您的运动员ID(例如。 i12345)
INTERVALS_BASE_URL 没有 API基本URL(默认值: https://intervals.icu)
INTERVALS_INCLUDE_TAGS 否 要包含逗号分隔的标签(例如。 Wellness,Activities)
INTERVALS_EXCLUDE_TAGS 否 要排除的逗号分隔标签

INTERVALS_INCLUDE_TAGS 和 INTERVALS_EXCLUDE_TAGS 它们是相互排斥的——设置一个或两个,而不是两个。

查找您的凭据

  1. 登录 间隔icu
  2. 首选 设置>开发人员设置
  3. 生成API密钥-这是您的 INTERVALS_API_KEY
  4. 您的运动员ID显示在同一页面上(格式: i12345)--这是你的 INTERVALS_ATHLETE_ID

使用Claude代码

添加到您的Claude Code MCP配置中(~/.claude/claude_desktop_config.json 或通过 claude mcp add):

{
  "mcpServers": {
    "intervals-icu": {
      "command": "/path/to/intervals-mcp",
      "env": {
        "INTERVALS_API_KEY": "your-api-key",
        "INTERVALS_ATHLETE_ID": "i12345"
      }
    }
  }
}

或者使用CLI:

claude mcp add intervals-icu /path/to/intervals-mcp \
  -e INTERVALS_API_KEY=your-api-key \
  -e INTERVALS_ATHLETE_ID=i12345

配置后,您可以向Claude询问以下问题:

  • “显示我最近的活动”
  • “我目前的健身总结是什么?”
  • “获取我本周的健康数据”
  • “列出我即将进行的锻炼”
  • “显示我过去90天的功率曲线”

使用Claude Desktop

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "intervals-icu": {
      "command": "/path/to/intervals-mcp",
      "env": {
        "INTERVALS_API_KEY": "your-api-key",
        "INTERVALS_ATHLETE_ID": "i12345"
      }
    }
  }
}

标签过滤

若要仅公开API的一个子集,请使用标记筛选。标记对应于 Intervals.icu API文档.

仅包括健康和活动终点:

INTERVALS_INCLUDE_TAGS="Wellness,Activities"

排除与齿轮相关的端点:

INTERVALS_EXCLUDE_TAGS="Gear"

与其他Intervals.icu MCP服务器的比较

Intervals.icu还有其他几个MCP服务器。所有这些工具都是手动定义的,这意味着它们只覆盖API的一小部分,并且每当添加或修改端点时都需要更改代码。

项目 语言 工具 动态? 上次更新 状态
这个项目 去 144 是 2026-02 活跃的
mvilanova/间隔mcp服务器 Python 6 否 2025-12 过时
自由/生锈的间歇 锈蚀 57 否 2026-02 激活
eddmann/间隔重症监护室mcp Python 48 否 2025-11 过时
Gesteves/国内 TypeScript 43* 否 2026-02 活动中
patrickmichi/间隔重症监护室mcp TypeScript 约30 否 2026-02 新
乔治格雷先生/重症监护室重症监护室 TypeScript 12 否 2025-07 过时
不信任/间隔ICU MCP TypeScript 4 否 2025-10 过时

* domestique跨越多个平台(Intervals.icu+Whoop+TrainerRoad+CORE),因此并非所有43个工具都针对Intervals.icu。

主要区别

  • API全面覆盖:最全面的硬编码服务器有57个工具。该项目公开了144个-整个API减去2个文件部署端点,这些端点对LLM工具的使用没有意义。
  • 零维护:当Intervals.icu添加或更改端点时,每个硬编码服务器都会落后。该项目在启动时阅读了官方的OpenAPI规范,因此只需重新启动即可。
  • 标签过滤:没有其他服务器允许您通过标签包含或排除端点组。
  • 单二进制,无运行时:与Rust服务器一样,这会编译成一个二进制文件。与Python和TypeScript服务器不同,它没有解释器、虚拟环境或 node_modules 管理。

运作原理

  1. 启动时,服务器从以下位置获取OpenAPI 3.0规范 https://intervals.icu/api/v1/docs
  2. 使用 operationId 作为工具名称
  3. 路径和查询参数成为具有适当JSON模式类型的工具输入属性
  4. 请求主体作为一个单一的 body 参数
  5. 检测运动员ID参数,并从环境变量中自动注入
  6. 当LLM调用工具时,处理程序会构建一个HTTP请求,使用Basic Auth进行身份验证,并返回响应

许可证

麻省理工学院