Hevy健身数据API服务

一个为Hevy健身应用提供API数据交互的MCP服务器,支持读取和写入健身数据,适用于健身数据分析和自动化管理。

  • by zurfyx
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 zurfyx/hevy-mcp

使用说明

hevy mcp

MCP服务器 Hevy 训练追踪API(v1)。将Hevy数据公开为Claude Desktop、Claude Code或任何MCP客户端可以调用的工具。

默认情况下为只读。通过 --write 启用变异工具(创建、更新、删除)。

OpenClaw特定的入职培训和sidecar设置: OPENCLAW.md.

入门指南

1.获取一个笨重的API密钥

从Hevy帐户设置生成API密钥(需要活动的Hevy订阅)。

2.设置您的环境

cp .env.example .env

编辑 .env 并添加您的API密钥:

HEVY_API_KEY=your-api-key-here

3.建造

cd hevy-mcp
pnpm install
pnpm build

4.本地测试

运行MCP检查器以验证服务器是否启动,并交互式浏览工具:

pnpm inspect

这将打开一个web UI,您可以在其中查看注册的工具,并根据实时API调用它们。你也可以跑步 pnpm start 验证服务器启动时没有错误。

5.配置您的MCP客户端

服务器自动加载 .env 从项目根目录(相对于构建的JS解析,因此无论工作目录如何,它都能工作)。如果您已经设置 .env 在步骤2中,配置只需要命令和路径:

{
  "mcpServers": {
    "hevy": {
      "command": "node",
      "args": ["/absolute/path/to/hevy-mcp/build/index.js"]
    }
  }
}

或者,您可以通过配置传递密钥 env 块而不是使用 .env 文件:

{
  "mcpServers": {
    "hevy": {
      "command": "node",
      "args": ["/absolute/path/to/hevy-mcp/build/index.js"],
      "env": {
        "HEVY_API_KEY": "<your-hevy-api-key>"
      }
    }
  }
}

示例配置提供在 docs/claude-config-example.json.

要启用写访问(创建/更新/删除),请添加 "--write" 到 args:

"args": ["/absolute/path/to/hevy-mcp/build/index.js", "--write"]

工具

读取工具(始终启用)

工具 说明
list_workouts 使用分页和日期过滤器列出训练
get_workout 按ID获取单次锻炼
get_workout_count 获取锻炼总数
get_workout_events 获取某个日期以来的锻炼事件(创建/更新/删除)
list_routines 列出带分页的例程
get_routine 按ID获取单个例程
list_exercise_templates 列出带分页的练习模板
get_exercise_template 按ID获取单个练习模板
list_routine_folders 列出带分页的常规文件夹
get_routine_folder 按ID获取单个例程文件夹

编写工具(必需 --write)

工具 说明
create_workout 通过练习和套装创建新的锻炼计划
update_workout 更新现有训练
delete_workout 删除训练
create_routine 创建新例程
update_routine 更新现有例程
delete_routine 删除例程
create_exercise_template 创建自定义练习模板
create_routine_folder 创建例程文件夹
update_routine_folder 重命名例程文件夹
delete_routine_folder 删除例程文件夹

建筑

hevy-mcp/
├── package.json
├── tsconfig.json
├── .env.example
├── src/
│   ├── index.ts          # Entry point
│   ├── env.ts            # .env loader (resolves relative to project root)
│   ├── hevy-client.ts    # Hevy API HTTP client
│   └── tools/
│       ├── read.ts       # Read-only tool registrations
│       └── write.ts      # Mutating tool registrations
└── build/                # Compiled output (git-ignored)

入口点(src/index.ts)

验证 HEVY_API_KEY 环境变量,解析 --write CLI标志,创建客户端和服务器,注册工具,并通过stdio连接。如果未设置API密钥,服务器将立即退出并返回错误。

HTTP客户端(src/hevy-client.ts)

HevyClient 将Hevy REST API封装在 https://api.hevyapp.com.它通过 api-key 在每个请求上显示标头并公开 get, post, put,以及 delete 方法。A. getAll 助手自动分页列表端点并返回组合结果。

工具注册(src/tools/)

工具分为两个模块-- read.ts 和 write.ts --每次导出一个 register*Tools(server, client) 功能。这种分离允许入口点仅在以下情况下有条件地加载写工具 --write 传递,默认情况下保持服务器只读。

每个工具都使用Zod模式进行输入验证(由MCP SDK自动处理),并返回JSON响应作为文本内容。

设计决策

  • 默认情况下为只读。 写入工具可通过以下方式选择加入 --write 以防止意外突变。这与此仓库中兄弟MCP服务器使用的模式相匹配。
  • API上的薄包装。 工具以最小的转换直接映射到Hevy API端点。服务器将结构化的JSON响应传递给LLM,以便它可以自己解释数据。
  • 自动分页。 getAll 迭代分页端点的所有页面,对于需要完整数据集的工具或工作流非常有用。
  • 没有令牌刷新。 与基于OAuth的API不同,Hevy使用静态API密钥,因此不需要刷新流。

文档