HTTP模型上下文协议服务器

一个为Hevy健身追踪器API设计的HTTP模型上下文协议服务器,提供核心API操作作为MCP工具,适用于AI聊天机器人连接健身数据。

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

使用说明

hevy http mcp

HTTP模型上下文协议(MCP)服务器 Hevy 运动跟踪器API。 这个项目的灵感来自 @chrisdoc的hevy mcp该解决方案侧重于stdio传输,我需要HTTP,因此这个项目诞生了。

如果你想将你的锻炼数据连接到人工智能聊天机器人,这个MCP很有用,比如 戳.

通过HTTP传输将所有核心Hevy API操作(训练、常规、训练模板、常规文件夹)显示为MCP工具,因此任何兼容MCP的客户端都可以远程连接。

技术栈

内置于 极乐世界, elysia mcp,以及 ofetch.

先决条件

快速开始

# Clone the repository
git clone <repo-url> hevy-http-mcp
cd hevy-http-mcp

# Install dependencies
bun install

# Create your .env from the example
cp .env.example .env
# Edit .env and fill in HEVY_API_KEY and MCP_API_KEY

# Start the server
bun run start

MCP端点将在 http://localhost:3000/mcp.

开发模式(热重载)

bun run dev

检查员

bun run inspect

打开指向本地服务器的MCP检查器UI。

配置

所有配置都是通过环境变量(或 .env 文件)。

变量 必填 默认 描述
HEVY_API_KEY 是 - 您的Hevy API密钥
MCP_API_KEY 是 -- 客户端必须发送密钥才能与此MCP服务器进行身份验证
PORT 没有 3000 HTTP端口
HOST 没有 127.0.0.1 HTTP主机
LOG_LEVEL 没有 info 记录冗长(debug, info, warn, error)

认证

每一个请求 /mcp 必须包括 Authorization 头球

Authorization: Bearer <MCP_API_KEY>

接收没有有效密钥的请求 401 或 403 响应。

MCP客户端配置

光标/克劳德桌面(可流式HTTP)

{
  "mcpServers": {
    "hevy": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "Authorization": "Bearer <your-mcp-api-key>"
      }
    }
  }
}

可用工具

锻炼

工具 说明
get-workouts 分页的锻炼列表
get-workout 按ID列出的单次锻炼
create-workout 创建新的锻炼计划
update-workout 更新现有训练
get-workout-count 训练总数
get-workout-events 训练更新/删除事件(分页)

惯例

工具 说明
get-routines 分页的例程列表
get-routine-by-id 按ID列出的单个例程
create-routine 创建新例程
update-routine 更新现有例程

练习模板

工具 说明
get-exercise-templates 分页的练习模板列表
get-exercise-template 按ID列出的单个模板

常规文件夹

工具 说明
get-routine-folders 分页文件夹列表
create-routine-folder 创建新文件夹
get-routine-folder 按ID列出单个文件夹

项目结构

hevy-http-mcp/
├── .env.example          # Environment variable template
├── package.json
├── tsconfig.json
├── README.md
└── src/
    ├── index.ts           # Entry point — Elysia server + MCP plugin setup
    ├── config.ts          # Environment variable loading & validation
    ├── logger.ts          # Structured logger with levels
    ├── hevy/
    │   ├── index.ts       # Re-exports
    │   ├── client.ts      # Hevy API client (ofetch)
    │   └── types.ts       # TypeScript types for all Hevy API entities
    └── tools/
        ├── index.ts       # Re-exports all tool registrations
        ├── helpers.ts     # Shared MCP response builders + error wrapper
        ├── workouts.ts    # Workout tools
        ├── routines.ts    # Routine tools
        ├── templates.ts   # Exercise template tools
        └── folders.ts     # Routine folder tools

安全

注: 这个项目是用Claude编码的。人工智能可能会出错,因此我不能保证代码是100%安全的

  • 代码中没有秘密 --所有凭据都是从环境变量加载的。
  • .env 被忽视;仅 .env.example (带有占位符值)已提交。
  • MCP端点受API密钥认证保护;未经身份验证的请求在到达任何工具处理程序之前都会被拒绝。
  • Hevy API密钥仅在服务器端发送到 api.hevyapp.com 并且永远不会暴露于MCP客户端。

许可证

麻省理工学院