Token导航 LogoToken导航TokenDH.com
Wahoo Systm MCP logo
AI代理stdio官方级别未说明来源级核验

Wahoo Systm MCP

MCP Server

Wahoo SYSTM MCP服务器是一个Python服务,用于连接大型语言模型(LLMs)与Wahoo SYSTM API,实现训练数据和锻炼计划的管理。

工具数

10

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

joaodrp

提供方

joaodrp

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run wahoo-systm-mcp-server

详细介绍

Wahoo SYSTM MCP Server

Python MCP server bridging LLMs to the Wahoo SYSTM API for training data and workout management.

主要特点

  • 日历管理:查看、安排、重新安排和删除计划的锻炼
  • 锻炼库:使用高级过滤功能(运动、持续时间、TSS、4DP焦点、强度)浏览和搜索1000+个训练
  • 锻炼详细信息:访问完整的锻炼结构,包括间隔目标、设备要求和关键指标
  • 骑手简介:检索当前的4DP值、骑手类型分类、优缺点、cTHR和心率区域
  • 体能测试历史:通过完整的4DP分析访问完整的正面和半月测试结果
  • AI集成:通过MCP标准返回针对LLM消费优化的结构化JSON响应

兼容客户端

任何与模型上下文协议(MCP)兼容的客户端都应该工作。请参阅 模型上下文协议:入门 引言部分进行了总体概述。

安装说明

先决条件

安装选项

根据您的MCP客户端选择以下方法之一:

选项A:MCPB捆绑包(建议用于Claude Desktop)

不需要依赖关系。下载 .mcpb 捆绑从 发布 页面, 双击以使用Claude Desktop打开,然后按照提示输入 您的证书。

选项B:通过uvx直接安装

需要 紫外线 待安装。不需要本地克隆。请参阅下面的客户特定说明。

选项C:本地克隆(用于开发)

需要Python 3.11+和 紫外线.

git clone https://github.com/joaodrp/wahoo-systm-mcp.git
cd wahoo-systm-mcp
uv sync

客户端配置

Claude Desktop

使用上述选项A(MCPB捆绑包)进行最简单的设置。

手动配置(备选)

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "wahoo-systm": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/joaodrp/wahoo-systm-mcp.git", "wahoo-systm-mcp"],
      "env": {
        "WAHOO_USERNAME": "your_email@example.com",
        "WAHOO_PASSWORD": "your_password"
      }
    }
  }
}

文件: 克劳德桌面MCP设置

Claude Code

使用凭据添加服务器:

claude mcp add wahoo-systm \
  -e WAHOO_USERNAME=your_email@example.com \
  -e WAHOO_PASSWORD=your_password \
  -- uvx --from git+https://github.com/joaodrp/wahoo-systm-mcp.git wahoo-systm-mcp

验证配置:

claude mcp get wahoo-systm

或者,如果您是通过Claude Desktop安装的,则可以导入服务器:

claude mcp add-from-claude-desktop

文件: 克劳德代码MCP

ChatGPT (remote MCP only)

ChatGPT目前仅支持远程MCP服务器(不支持本地)。运行HTTP 服务器模式并将其托管在可访问的地方,然后通过设置添加它→ 应用程序和连接器→ 创建。

文件: 开发者模式+MCP连接器应用程序和连接器

OpenCode

在下添加MCP服务器 mcp 在您的OpenCode配置中:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wahoo-systm": {
      "type": "local",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/joaodrp/wahoo-systm-mcp.git", "wahoo-systm-mcp"],
      "env": {
        "WAHOO_USERNAME": "your_email@example.com",
        "WAHOO_PASSWORD": "your_password"
      }
    }
  }
}

文件: OpenCode MCP服务器

HTTP服务器模式(可选)

如果要通过HTTP运行此服务器(用于基于web或远程MCP客户端),请使用 HTTP入口点:

uv run wahoo-systm-mcp-server

如果您没有克隆仓库,可以直接用以下命令运行它 uvx:

uvx --from git+https://github.com/joaodrp/wahoo-systm-mcp.git wahoo-systm-mcp-server

您可以使用环境变量覆盖主机/端口或传输:

HTTP_HOST=0.0.0.0 HTTP_PORT=9000 uv run wahoo-systm-mcp-server

环境变量

变量目的
WAHOO_USERNAMEWahoo SYSTM电子邮件地址
WAHOO_PASSWORDWahoo SYSTM密码
HTTP_HOSTHTTP绑定主机(仅HTTP模式,默认: 127.0.0.1)
HTTP_PORTHTTP绑定端口(仅限HTTP模式,默认值: 8000)
HTTP_TRANSPORTHTTP传输(http, streamable-http, sse)

服务器在启动时自动进行身份验证,并在进程期间维护会话。

可用工具

日历和日程安排

  • get_calendar:使用完整的锻炼详细信息和议程ID检索日期范围内的计划锻炼
  • schedule_workout:将库中的锻炼添加到日历中的特定日期
  • reschedule_workout:将计划的锻炼调整到其他日期
  • remove_workout:从日历中取消/删除计划的锻炼

锻炼库

\[!注意\] 目前,只有自行车有专门的锻炼搜索工具(get_cycling_workouts)具有运动特定的过滤器,如4DP焦点和自行车类别。对于其他运动(跑步、力量训练、瑜伽、游泳),请使用通用 get_workouts 工具。
  • get_workouts:使用运动、持续时间、TSS、搜索词和排序选项的过滤器浏览整个锻炼库
  • get_cycling_workouts:使用4DP焦点、频道、类别和强度过滤器进行专门的自行车锻炼搜索
  • get_workout_details:获取完整的锻炼信息,包括间隔目标、设备和TSS

骑手简介

  • get_rider_profile:检索当前的4DP值(NM、AC、MAP、FTP)、骑手类型分类、优缺点、cTHR和心率区域
\[!注意\] 心率区域根据cTHR计算,以匹配运动员个人资料UI。 响应包括上下文的最后测试日期。

体能测试

  • get_fitness_test_history:列出所有已完成的正面和半月测试,包括4DP结果、骑手类型和日期
  • get_fitness_test_details:访问详细的测试数据,包括逐秒功率/节奏/HR、功率曲线最佳值和分析

示例用法

日历管理

  • “本周我的SYSTM日历上有什么?”
  • “周六安排九把锤子”
  • “将明天的训练移至周四”
  • “从SYSTM中删除周五的锻炼”

锻炼发现

  • “找到一个45-60分钟的最佳锻炼时间”
  • “SYSTM训练的目标是MAP吗?”
  • “显示1小时内最受欢迎的自行车锻炼”
  • “寻找低强度的恢复骑行”

锻炼详情

  • “告诉我Omnium训练的情况”
  • “Half Monty的结构是什么?”

4DP配置文件和测试

  • “我目前的4DP配置文件是什么?”
  • “显示我的体能测试历史记录”
  • “比较我最近的两个Full Frontal结果”

发展

项目结构

wahoo-systm-mcp/
├── src/
│   └── wahoo_systm_mcp/
│       ├── __init__.py
│       ├── __main__.py        # Stdio entry point
│       ├── main.py            # HTTP entry point
│       ├── models.py          # MCP tool response models
│       ├── types.py           # Shared typing aliases
│       ├── server/
│       │   ├── __init__.py
│       │   ├── app.py         # FastMCP app builder
│       │   ├── config.py      # HTTP config
│       │   ├── lifecycle.py   # Lifespan management
│       │   └── register.py    # Tool registration
│       ├── tools/
│       │   ├── __init__.py
│       │   ├── calendar.py
│       │   ├── library.py
│       │   └── profile.py
│       └── client/
│           ├── __init__.py
│           ├── api.py         # WahooClient (GraphQL)
│           ├── config.py      # API configuration
│           ├── models.py      # API response models
│           └── queries.py     # GraphQL queries
├── tests/
│   ├── __init__.py
│   ├── conftest.py            # Shared fixtures
│   ├── test_client.py
│   ├── test_entrypoints.py    # CLI entry point tests
│   ├── test_integration.py    # Integration tests
│   ├── test_models.py
│   └── test_server.py
├── docs/
│   └── wahoo-graphql-spec.md  # API specification
├── .github/
│   └── workflows/             # CI/CD pipelines
├── .env.example               # Environment template
├── .mcpbignore                # MCPB bundle exclusions
├── justfile                   # Development commands
├── manifest.json              # MCPB bundle manifest
├── pyproject.toml
├── CHANGELOG.md
└── README.md

设置开发环境

# Install all dependencies
just install

# Or manually with uv
uv sync --dev

复制 .env.example.env 并填写您的Wahoo SYSTM证书以进行本地开发。

开发命令

just 查看所有可用命令:

just           # List all commands
just test      # Run unit tests
just test-cov  # Run tests with coverage
just lint      # Lint with ruff
just typecheck # Type check with mypy
just check     # Run all checks (lint + typecheck)
just format    # Format code
just fix       # Fix lint issues and format
just serve     # Run the MCP server

测试

# Unit tests (no credentials needed)
just test

# Unit tests with coverage
just test-cov

# Integration tests (requires .env with credentials)
just test-integration

# All tests (unit + integration)
just test-all

过梁和类型检查

just lint      # Lint with ruff
just typecheck # Type check with mypy
just check     # Run both
just fix       # Auto-fix issues and format

API信息

此服务器使用位于的Wahoo SYSTM GraphQL API https://api.thesufferfest.com/graphql.该实现基于反向引擎化web应用程序的API调用。

安全说明

  • 凭据仅在会话期间存储在内存中
  • 身份验证令牌在服务器重新启动之间不会持久化

致谢

这个项目的灵感来自 suffersync bakermat将Wahoo SYSTM训练同步到intervals.icu。

贡献和许可

欢迎通过pull请求进行贡献。根据MIT许可证获得许可。

目录标签

目录标签

PythonClaudeAI代理训练数据管理本地部署锻炼计划API桥接LLM集成健身数据分析

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP