Octiv健身MCP服务器
连接到的MCP(模型上下文协议)服务器 Octiv健身 API,让您直接在对话中向Claude询问您的健身课程安排和预订。
先决条件
- Python 3.10或更新版本
- 紫外线 --快速Python包管理器
- 您的Octiv登录凭据(电子邮件+密码)
安装
cd octiv-mcp
uv sync这创建了一个 .venv 并安装所有运行时依赖项。还要安装开发工具(ruff、ty、pytest):
uv sync --group dev配置
服务器从环境变量中读取凭据:
| 变量 | 必填 | 描述 |
|---|---|---|
OCTIV_USERNAME | ✅ | 您的octiv登录电子邮件 |
OCTIV_PASSWORD | ✅ | 您的Octiv密码 |
OCTIV_TENANT_ID | 可选 | 您的健身房租户ID(如果省略,则自动检测) |
OCTIV_LOCATION_ID | 可选 | 健身房的位置ID(如果省略,则自动检测) |
OCTIV_PROGRAMME_IDS | 可选 | 逗号分隔的WOD程序ID。如果省略, get_wod 将提示您从可用的程序中进行选择。 |
服务器将您的身份验证令牌(约1年有效期)和用户配置文件缓存在 ~/.octiv_mcp/ 因此,它不会在每次通话时重新登录。
在Claude Code中设置
将服务器添加到您的Claude Code MCP配置中。编辑 ~/.claude/claude_mcp_config.json (或创建它):
{
"mcpServers": {
"octiv": {
"command": "uv",
"args": ["run", "--project", "/path/to/octiv-mcp", "python", "/path/to/octiv-mcp/server.py"],
"env": {
"OCTIV_USERNAME": "your@email.com",
"OCTIV_PASSWORD": "yourpassword"
}
}
}
}然后重新启动Claude Code。您可以通过以下方式进行测试:
/mcp在Claude Desktop中设置(共同工作)
在以下位置编辑您的Claude Desktop配置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"octiv": {
"command": "uv",
"args": ["run", "--project", "/path/to/octiv-mcp", "python", "/path/to/octiv-mcp/server.py"],
"env": {
"OCTIV_USERNAME": "your@email.com",
"OCTIV_PASSWORD": "yourpassword"
}
}
}
}保存后重新启动Claude Desktop。
可用工具
get_weekly_schedule
获取给定一周的完整课程表。
参数:
week_offset(可选,整数):0=本周,1=下周,-1=上周。默认为0.
示例提示:
- *“这周有什么课?”*
- *“给我看看下周的日程安排”*
______________________________________________________________________
get_schedule_for_date
获取特定日期或日期范围的课程表。
参数:
start_date(必填):日期YYYY-MM-DD格式end_date(可选):结束日期YYYY-MM-DD格式(默认为start_date)
示例提示:
- *“明天有什么节目?”*
- *“显示周一至周三的课程”*
______________________________________________________________________
get_my_bookings
只获取类 您已被个人预订.
参数:
start_date(可选):默认为今天end_date(可选):默认为从今天起7天
示例提示:
- *“这周我订了什么课?”*
- *“我接下来7天的日程安排是什么?”*
______________________________________________________________________
get_programmes
列出健身房的所有可用训练计划。使用此功能可发现用于过滤WOD的程序ID。
参数: 无
示例提示:
- *“我的健身房提供什么课程?”*
- *“显示可用的程序”*
______________________________________________________________________
get_wod
获取 每日锻炼计划(WOD) 用于特定日期或日期范围。返回热身、所有练习(包括描述和测量单位)和冷却。
参数:
date(可选):日期YYYY-MM-DD格式。默认为今天。end_date(可选):包括多日范围的结束日期。默认为date.programme_ids(可选):逗号分隔的程序ID(例如。"195,196").回落到OCTIV_PROGRAMME_IDSenv var。如果两者都没有设置,该工具将返回可用程序的列表,并要求您选择一个。
示例提示:
- *“今天的WOD是什么?”*
- *“显示本周的训练”*
- *“星期四的WOD是什么?”*
查找健身房的课程ID
当你第一次打电话 get_wod,如果没有配置任何程序,服务器将自动返回您健身房的可用程序列表——只需选择一个并重新询问。
您也可以致电 get_programmes 随时浏览列表:
*“我的健身房提供什么课程?”*
一旦你知道你想要的ID,你可以:
- 通过
programme_ids直接在您的提示中: *“今天的CrossFit WOD是什么?(节目195)”* - 或设置
OCTIV_PROGRAMME_IDS=195在MCP配置中自动使用
备注
- 服务器连接到
https://api.octivfitness.com - 身份验证令牌缓存在
~/.octiv_mcp/token.json有效期约为1年 - 如果更改密码,请删除
~/.octiv_mcp/token.json强制重新登录 OCTIV_TENANT_ID和OCTIV_LOCATION_ID首次使用时会从您的个人资料中自动检测到- 使用
get_programmes查找健身房可用的课程ID
贡献
欢迎投稿!看 贡献.md 有关设置说明、代码风格指南以及如何提交pull请求。
许可证
麻省理工学院——见 许可证.
测试
安装测试依赖项(已包含在 requirements.txt):
uv sync --group dev运行完整的测试套件:
uv run pytest tests/ -v棉绒和格式:
uv run ruff check .
uv run ruff format .类型检查:
uv run ty check .测试使用 respx 模拟所有HTTP调用-不需要真正的API凭据。
