关于 exercisedb
exercisedb 是面向训练应用和 Agent 的 YMove 运动 API 的 MCP 服务与命令行工具,可搜索带视频的动作目录并生成训练计划,结果保留上游 JSON 格式。
主要功能
- 01按条件搜索动作
- 02获取动作详情和视频链接
- 03生成含组数与次数的训练
- 04生成多周训练计划
- 05列出肌群和动作类型
适用场景
- 01按肌群、器材或难度查找视频动作
- 02为指定肌群制定训练内容
- 03创建周期化多周计划
MCP 相关
它将 YMove API 的六项操作作为工具提供给 MCP 客户端,包括动作搜索、训练生成和目录词汇查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | 页码。 |
| search | string | 否 | 全文搜索。 |
| hasVideo | boolean | 否 | 仅包含带视频的训练动作。 |
| pageSize | integer | 否 | 每页结果数。 |
| equipment | string | 否 | 器材筛选条件。 |
| difficulty | string | 否 | 难度筛选条件。 |
| muscleGroup | string | 否 | 肌群筛选条件。 |
| exerciseType | string | 否 | 训练动作类型筛选条件。 |
详细介绍
exercisedb
一个基于 YMove 运动 API 的 MCP 服务和命令行工具。该 API 收录了 1,400 多个带视频的运动项目。六种工具涵盖训练应用或 Agent 日常会向该目录提出的问题:查找符合筛选条件的运动项目、查看某个项目的完整信息、为指定肌群生成训练计划、生成完整的多周训练方案,以及读取筛选条件所依据的两种词汇表(肌群和运动类型)及其各自的运动项目数量。
API 返回什么,工具就原样返回什么:每种工具都会返回一个文本项,其中包含上游 JSON,不做任何更改。数据不会被重新整理、缓存或存储,因此 API 自身的属性也会原样传递,例如,运动视频 URL 由上游服务签名,有效期为 48 小时。
六种工具:
search_exercises— 按自由文本、肌群、运动类型、器材和难度筛选目录,可仅保留带视频的运动项目,并分页浏览结果。所有参数均为可选。get_exercise— 按 ID 或 slug 获取一个运动项目:视频 URL、说明以及锻炼到的肌肉。generate_workout— 生成包含组数、次数和休息时间的结构化训练计划。muscleGroup为必填项,接受肌群数组;也接受单个字符串,并将其视为只包含一个元素的数组。器材、运动类型、难度、运动项目数量、结构、轮数以及热身 / 冷身模块均可调整。generate_program— 生成带有周期化安排的多周训练方案,可根据目标、难度、每周训练天数、周数和可用器材进行定制。list_muscle_groups— 列出目录中的所有肌群及其运动项目数量。list_exercise_types— 列出所有运动类型及其数量。
REST API 文档中提到、但工具集未公开的参数会有意省略:搜索工具不提供白色背景 / 健身房视频或视频标签筛选条件,也不提供包含 / 排除视频列表的开关。
配置
该 API 需要密钥。运行前请设置 YMove 密钥:
export YMOVE_API_KEY="..."
每个请求都会在 X-API-Key 标头中携带密钥。未设置密钥时,调用会在任何请求离开进程之前失败,并显示 YMOVE_API_KEY is not set。任何请求发出前也会进行验证:缺少必填参数时会报告 <tool>: missing required argument: <name>,参数类型错误时会报告 <tool>: argument <name> has the wrong type。上游请求失败时会报告 upstream error: HTTP <status> from ymove-api;如果完全无法连接 API,则会报告 upstream unreachable: ymove-api。
命令行工具
每种工具都是一个子命令,接受一个 JSON 参数字符串:
npx @reneturcios/exercisedb search_exercises '{"muscleGroup":"chest","hasVideo":true}'
npx @reneturcios/exercisedb get_exercise '{"id":"barbell-squat"}'
npx @reneturcios/exercisedb generate_workout '{"muscleGroup":["chest","triceps"],"exerciseCount":8}'
npx @reneturcios/exercisedb generate_program '{"goal":"strength","weeks":6,"daysPerWeek":3}'
npx @reneturcios/exercisedb list_muscle_groups '{}'
npx @reneturcios/exercisedb --version
输出为未经修改的上游 JSON 正文。退出代码:成功时为 0,运行时错误时为 1(包括验证、API 密钥或上游错误),用法错误时为 2。
MCP 服务
npx -y @reneturcios/exercisedb mcp
MCP 客户端配置:
{
"mcpServers": {
"exercisedb": {
"command": "npx",
"args": ["-y", "@reneturcios/exercisedb", "mcp"],
"env": { "YMOVE_API_KEY": "..." }
}
}
}
Docker
docker run -i -e YMOVE_API_KEY="..." ghcr.io/cloudcorprecords/exercisedb
docker run --rm -e YMOVE_API_KEY="..." ghcr.io/cloudcorprecords/exercisedb list_exercise_types '{}'
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # run the CLI from source
许可证
MIT — Copyright (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。