TrainingPeaks MCP Server 是一个基于 Model Context Protocol(MCP)的开源服务器,用于把 TrainingPeaks 与 Claude Desktop、Claude Code、Cowork 等 AI 助手连接起来。它不依赖官方 TrainingPeaks API(该 API 需要审批),而是采用安全 Cookie 认证,任何账号用户都可在几分钟内完成配置。
主要能力
- 查询训练:用自然语言查询训练记录、训练详情与训练评论。
- 体能指标分析:查询 CTL/ATL/TSB 等体能数据,查看每周 TSS 与 ATP 目标进度。
- 功率 PR 与趋势:对比功率个人纪录,例如比较今年与去年的 FTP 进展。
- 结构化训练创建:根据对话自动生成间歇结构,服务器自动计算时长、IF 与 TSS,例如“构建一个 4x8 分钟阈值训练,带热身和冷身”。
- 日历管理:创建、更新、删除训练、赛事、备注、装备与设置;支持全天计划(YYYY-MM-DD)和指定开始时间(YYYY-MM-DDTHH:MM:SS)。
- 复制与排期:将上周长距离骑行复制到本周六,或为某日安排灵活性训练。
- 健康数据记录:记录体重、睡眠时长等。
- 区间与阈值:设置 FTP、LTHR、阈值配速并更新功率区间;区间按运动类型定位,并使用 TrainingPeaks 自身的区间计算器重算区间带,尊重运动员的计算方法(如 %LTHR、Karvonen、Andy Coggan 等)。
- 其他:训练库、力量训练、教练账号下的运动员分组、多周训练计划、赛事日历与距离 A 级赛事周数。
使用方式
认证支持三种方式:
- 从浏览器自动提取 Cookie:需已登录 TrainingPeaks,macOS 可能弹出钥匙串或完全磁盘访问权限提示,属正常现象。
- 手动输入 Cookie:登录 app.trainingpeaks.com,打开开发者工具(F12)→ Application → Cookies,找到 Production_tpAuth 并复制其值,运行 tp-mcp auth 后粘贴。
- 环境变量(无头服务器、容器、CI):设置 TP_AUTH_COOKIE 为 Production_tpAuth 的值,或在 MCP 客户端配置的 env 块中添加。该方式为受支持的一等认证方式,优先于系统钥匙串和加密文件被检查。
安装可通过 Claude Code 自动完成(粘贴提示词后由 Claude 处理安装并引导认证),或手动配置。获取配置片段后,编辑 claude_desktop_config.json(macOS 路径 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 路径 %APPDATA%\Claude\claude_desktop_config.json),粘贴到 mcpServers 内,重启 Claude Desktop 即可。
安全设计
- Cookie 从不以明文存储;加密文件回退方案使用 AES-256-GCM 认证加密、PBKDF2 派生密钥(600,000 次迭代)和机器特定盐。
- AI 助手(Claude)永远看不到 Cookie 值:工具结果会清洗包含 cookie、token、auth、credential、password、secret 的键;BrowserCookieResult 和 CredentialResult 的 repr 只显示 cookie=<present>;异常信息仅使用异常类型名;Cookie 值从不写入日志。
- 浏览器 Cookie 提取仅访问 .trainingpeaks.com(域名硬编码,Claude 无法通过工具参数修改,唯一参数是 browser)。
- 仅使用 stdio 传输,无 HTTP 服务器、无开放端口、无远程访问。
- 认证流程为两步:Cookie 换取短期 OAuth 访问令牌(1 小时过期),令牌在内存中缓存并在过期前自动刷新;API 调用使用 Bearer 令牌而非 Cookie。会话 Cookie 过期(通常数周后)时,可在 Claude 中使用 tp_refresh_auth 或重新运行 tp-mcp auth。
- v2.0 增加完整日历管理写权限,所有变更经过 Pydantic 验证;服务器无法访问账单或支付信息。
- 项目完全开源,可审计所有代码。
结构化训练与工具调用
创建和更新训练时可使用简化的 structure 对象,也可使用 TrainingPeaks 构建器格式的原生 structured_workout 负载,单次调用只能二选一。省略 duration_minutes 和 tss_planned 时由结构自动推导,显式传入则覆盖推导值。已有原生结构的训练在 tp_get_workout 中会以 structured_workout 返回。训练评论通过 tp_get_workout()["workout_comments"] 或 tp_get_workout_comments() 获取。
MCP Apps 内联图表
在支持 MCP Apps 扩展(2026-07-28 规范)的客户端上,部分工具可在对话中内联渲染交互式 UI,同时返回常规文本负载;其他客户端行为不变,文本答案始终完整。截至 2026 年 7 月,Claude 客户端仍通过 2026 年前协议连接本地 stdio 服务器,因此应用已就绪但不会渲染,工具文本输出不受影响。
限制
- 基于测试(Distance/Time)方法的区间集无法直接设置阈值,因为不存在稳定值;工具会检测并返回 TEST_BASED_METHOD(不写入任何内容),此类区间集需在 TrainingPeaks UI 中通过测试配置。
- 需要手动配置,且 Cookie 会话过期后需重新认证或刷新。
- 无头环境使用 TP_AUTH_COOKIE 时需注意环境变量可被同一用户下的进程及 docker inspect 读取,建议从密钥管理器注入,切勿硬编码到 Dockerfile、compose 文件或提交到 git。
- 桌面环境推荐钥匙串/加密文件存储(选项 A、B),TP_AUTH_COOKIE 用于无头与容器场景。
其余具体安装命令、客户端配置示例和代码细节以项目仓库实际内容为准,文中未提供的功能、收费、平台或效果暂未提供。