关于 intervals-icu-mcp
intervals-icu-mcp 将 Intervals.icu 训练数据和分析能力开放给 MCP 客户端,适合需要查看或管理训练活动、恢复指标及计划的运动者。它覆盖读写操作,并提供资源、提示词以及可配置的删除防护。
主要功能
- 01查询和管理训练活动
- 02分析训练流、间歇和表现曲线
- 03读取 HRV、睡眠与恢复指标
- 04管理日历、训练计划和装备
- 05提供训练分析提示词与资源
- 06配置删除操作防护模式
适用场景
- 01查看近期活动和训练表现
- 02检查 HRV、睡眠及恢复趋势
- 03规划日历中的训练和比赛
- 04创建训练内容并维护装备记录
MCP 相关
MCP 服务通过 stdio 提供 69 个工具、4 个资源和 9 个提示词,涵盖 Intervals.icu 的活动、健康指标、日历、训练库等数据。也支持 HTTP 和 SSE 传输以供远程部署。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
67收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 获取的活动数量 |
| days_back | integer | 否 | 回溯的天数 |
| athlete_id | any | 否 | 运动员 ID(管理多个运动员的教练使用) |
详细介绍
Intervals.icu MCP 服务

用于集成 Intervals.icu 的 Model Context Protocol(MCP)服务。通过 Claude、ChatGPT 和其他大模型访问训练数据、健康指标和表现分析。
最初基于 eddmann/intervals-icu-mcp(采用 MIT 许可)。本项目是独立的后续项目,修复了大量错误并加入了新功能,详情请参阅 CHANGELOG.md。
概览
共 69 个工具,涵盖活动、活动分析、活动消息、运动员资料、健康状况、赛事/日历、表现曲线、训练计划库、装备、运动设置和自定义项目;此外还有 4 个 MCP 资源(运动员资料、训练计划语法、赛事类别、自定义项目架构)和 9 个 MCP 提示词(训练分析、恢复检查、每周规划等)。各类别的详细分类请参阅可用工具。
快速开始
或者,只需 30 秒即可在 Claude Desktop 中完成设置:
- 获取你的 API 密钥和运动员 ID
- 将以下内容添加到 Claude Desktop 配置中:
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
- 重启 Claude,然后提问 “显示我过去 7 天的活动。”
想使用 Claude Code、Cursor 或 ChatGPT?请参阅客户端配置。想从源代码运行或使用 Docker?请参阅安装与设置。
前置条件
安装 uv——它能通过一个工具处理 Python、依赖项和执行。在 macOS/Linux 上运行 curl -LsSf https://astral.sh/uv/install.sh | sh(或运行 brew install uv;Homebrew 已不再为 Intel Mac 安装),在 Windows 上运行 powershell -c "irm https://astral.sh/uv/install.ps1 | iex"。之后,uvx 会自动获取 Python 和软件包。如果 MCP 客户端找不到 uvx,请将 command 设置为 which uvx 输出的完整路径。也支持使用 Docker 作为替代方案。
Intervals.icu API 密钥设置
安装前,请获取 Intervals.icu API 密钥:
- 前往 https://intervals.icu/settings → Developer → Create API Key。
- 复制密钥,并从个人资料 URL 中记下你的运动员 ID(格式:
i123456)。
安装与设置
如果使用推荐的设置,则无需单独安装任何内容。 uvx(随 uv 一起提供)会在 MCP 客户端首次启动时自动下载并缓存 intervals-icu-mcp 软件包——只需将客户端配置中的配置片段粘贴到客户端即可完成设置。
替代方案:从源代码安装 — 适用于开发或本地修改
git clone https://github.com/hhopke/intervals-icu-mcp.git
cd intervals-icu-mcp
uv sync
uv run intervals-icu-mcp-auth # interactive credential setup; or create .env manually:
# INTERVALS_ICU_API_KEY=your_api_key_here
# INTERVALS_ICU_ATHLETE_ID=i123456
然后将 MCP 客户端指向此代码库——请参阅下方各客户端中的 从源代码安装 配置片段。
替代方案:Docker
docker build -t intervals-icu-mcp .
# Interactive credential setup (creates intervals-icu-mcp.env in the current directory):
touch intervals-icu-mcp.env # pre-create the file so Docker mounts it as a file, not a dir
docker run -it --rm \
-v "$(pwd)/intervals-icu-mcp.env:/app/.env" \
--entrypoint= intervals-icu-mcp:latest \
python -m intervals_icu_mcp.scripts.setup_auth
或者手动创建 intervals-icu-mcp.env(格式与上面的 .env 相同)。
然后将 MCP 客户端指向 Docker 镜像——请参阅下方各客户端中的 Docker 配置片段。
客户端配置
此服务通过 stdio 使用 MCP,可与任何兼容的客户端配合使用。点击客户端名称可展开。如果你按照快速开始(uvx)操作,请使用第一个配置块;如果使用了上面的源代码或 Docker 替代方案,请使用同一折叠区域中的对应配置。
Claude Desktop
将以下内容添加到配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
从源代码安装(需要执行 git clone + uv sync + uv run intervals-icu-mcp-auth):
{
"mcpServers": {
"intervals-icu": {
"command": "uv",
"args": ["run", "--directory", "/ABSOLUTE/PATH/TO/intervals-icu-mcp", "intervals-icu-mcp"]
}
}
}
Docker:
{
"mcpServers": {
"intervals-icu": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/ABSOLUTE/PATH/TO/intervals-icu-mcp.env:/app/.env", "intervals-icu-mcp:latest"]
}
}
}
Claude Code
将此服务注册为用户级 MCP 服务:
claude mcp add intervals-icu --scope user \
--env INTERVALS_ICU_API_KEY=your-key \
--env INTERVALS_ICU_ATHLETE_ID=i123456 \
-- uvx intervals-icu-mcp
然后在任意 Claude Code 会话中运行 /mcp,确认 intervals-icu 已连接。
Cursor
添加到 ~/.cursor/mcp.json(或项目本地的 .cursor/mcp.json):
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
重启 Cursor,然后打开 设置 → MCP,确认列表中已显示此服务。
ChatGPT — 需要付费套餐、开发者模式和可公开访问的 URL (端到端演练尚未验证)
ChatGPT 的自定义 MCP 连接器流程需要通过 HTTP 运行服务并使用隧道将其公开,然后在 ChatGPT 的开发者模式设置中注册 URL。完整演练、套餐等级要求和安全说明,请参阅 docs/chatgpt-connector.md。
使用方法
用自然语言让 Claude 与你的 Intervals.icu 数据交互。以下是一些入门提示词:
"Show me my activities from the last 30 days"
"Am I overtraining? Check my CTL, ATL, and TSB"
"How's my recovery this week? Show HRV and sleep trends"
"Create a sweet spot cycling workout for tomorrow"
"What's my 20-minute power and FTP?"
按类别整理的完整示例提示词目录,请参阅 docs/examples.md。
可用工具
69 个工具、4 个资源和 9 个提示词模板。以下为一行摘要,完整参考请见 docs/tools.md。
| 类别 | 工具数 | 摘要 |
|---|---|---|
| 活动 | 13 | 查询、搜索、更新、删除和下载活动 |
| 活动分析 | 8 | 数据流、区间、最佳成绩、直方图 |
| 活动消息 | 2 | 读取和发布活动备注、评论及教练反馈 |
| 运动员 | 5 | 可访问的运动员、个人资料和运动员备注、CTL/ATL/TSB 分析、体能图表时间序列 |
| 健康状况 | 3 | HRV、睡眠、恢复指标 |
| 赛事 / 日历 | 12 | 计划训练、比赛、备注、ATP 周期化(支持批量操作) |
| 表现 / 曲线 | 3 | 带区间的功率、心率和配速曲线 |
| 训练计划库 | 8 | 浏览、创建和删除文件夹及训练计划;创建(含批量创建)、更新和删除训练计划库中的训练 |
| 装备管理 | 6 | 跟踪装备和维护提醒 |
| 运动设置 | 4 | FTP、FTHR、配速阈值和区间 |
| 自定义项目 | 5 | 用户自定义项:自定义图表、字段、区间、仪表板面板 |
删除安全模式
破坏性工具受可选环境变量 INTERVALS_ICU_DELETE_MODE(safe / full / none,默认值为 safe)控制。这是模型无法访问的服务端限制,因此无法调用未注册的工具。完整模式表、响应结构和 TZ 缓冲区的设计依据,请参阅 docs/tools.md。
远程部署(HTTP / SSE)
默认情况下,服务通过 stdio 运行,这是适用于 Claude Desktop、Claude Code 和 Cursor 等本地客户端的传输方式。HTTP 和 SSE 传输方式可用于远程或托管场景。
⚠️ MCP 没有内置身份验证——切勿在没有隧道(Tailscale、Cloudflare Tunnel)或带身份验证的反向代理的情况下,将 HTTP 模式的服务暴露在不可信网络中。
传输标志和完整安全模型请参阅 docs/remote-deployment.md。
文档
- 示例提示词 — 按类别整理的自然语言提示词完整目录
- 工具参考 — 完整的工具、资源和提示词清单
- 架构概览 — 介绍服务、中间件、客户端和工具如何协同工作
- 远程部署(HTTP/SSE) — 托管/远程部署的传输方式、标志和安全模型
- 测试指南 — pytest + respx 的惯例、夹具和测试套件运行方法
- 更新日志 — 发布历史
- 添加新工具 — 贡献者逐步操作指南
反馈
你是如何使用这个项目的? 你常用哪些工具、提示词是什么样的、哪些地方会妨碍你——这些比我自己的猜测更能影响项目路线图。
展示与分享 · 问答 · 想法 · 综合讨论 — 也可以针对可复现的错误提交问题。
贡献
非常欢迎贡献,任何贡献都不嫌小——无论是修正拼写错误、改进参数说明、添加测试,还是开发全新工具。无需具备 Python 或 MCP 专业知识。请参阅 CONTRIBUTING.md;简而言之,提交 PR 前请运行 make can-release。适合新手的问题是一个轻松的起点。
赞助
本项目采用 MIT License 免费提供,我利用业余时间维护。如果它对你有帮助,GitHub Sponsors 可以支持项目持续开发——完全自愿;反馈或 PR 也同样有帮助。
许可证
MIT License — 详情请参阅 LICENSE 文件。
免责声明
本项目与 Intervals.icu 无关联,也未获得其认可或赞助。所有产品名称、徽标和品牌均为其各自所有者的财产。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。