mcpField
E
exercisedb

exercisedb

本地服务
github.com/CloudCorpRecords健康医疗01 周前更新

关于 exercisedb

exercisedb 是面向训练应用和 Agent 的 YMove 运动 API 的 MCP 服务与命令行工具,可搜索带视频的动作目录并生成训练计划,结果保留上游 JSON 格式。

主要功能

  1. 01按条件搜索动作
  2. 02获取动作详情和视频链接
  3. 03生成含组数与次数的训练
  4. 04生成多周训练计划
  5. 05列出肌群和动作类型

适用场景

  1. 01按肌群、器材或难度查找视频动作
  2. 02为指定肌群制定训练内容
  3. 03创建周期化多周计划

MCP 相关

它将 YMove API 的六项操作作为工具提供给 MCP 客户端,包括动作搜索、训练生成和目录词汇查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-exercisedb": {
"command": "npx",
"args": [
"-y",
"@reneturcios/exercisedb"
]
}
}
}
启动命令npx -y @reneturcios/exercisedb

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/exercisedb0.1.0
ocighcr.io/cloudcorprecords/exercisedb:0.1.0

工具

6

收录的工具列表 · 更新于 1 周前

参数类型必填说明
pageinteger否页码。
searchstring否全文搜索。
hasVideoboolean否仅包含带视频的训练动作。
pageSizeinteger否每页结果数。
equipmentstring否器材筛选条件。
difficultystring否难度筛选条件。
muscleGroupstring否肌群筛选条件。
exerciseTypestring否训练动作类型筛选条件。

详细介绍

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。