oci ghcr.io/rwestergren/hevy-mcp:0.1.6stdioMITupdated 4mo ago
Fork notice. This is an independently-maintained fork of chrisdoc/hevy-mcp, repackaged for multi-tenant MCP gateways. It ships the same Hevy tools wrapped in supergateway as an OCI image that speaks MCP streamable-HTTP over HTTP, instead of stdio. Use the upstream hevy-mcp npm package for local/stdio use in Claude Desktop, Cursor, etc.
Hevy MCP (Remote) で何ができる?
hevy-mcp-remote: Hosted / gateway-ready MCP for Hevy Fitness
Fork notice. This is an independently-maintained fork of
chrisdoc/hevy-mcp, repackaged for multi-tenant MCP gateways. It ships the same Hevy tools wrapped in supergateway as an OCI image that speaks MCP streamable-HTTP over HTTP, instead of stdio. Use the upstreamhevy-mcpnpm package for local/stdio use in Claude Desktop, Cursor, etc.
A Model Context Protocol (MCP) server for the Hevy fitness tracking app, packaged as a supergateway-wrapped OCI image for hosting behind an MCP gateway. Exposes MCP streamable-HTTP on /mcp and health on /healthz; reads HEVY_API_KEY from the container environment.
📋 Table of Contents
- Features
- Quick Start
- Prerequisites
- Installation
- Why hevy-mcp?
- Configuration
- Available MCP Tools
- Development & Contributing
🚀 Features
- Workout Management: Fetch, create, and update workouts.
- Routine Management: Access and manage workout routines.
- Exercise Templates: Browse available exercise templates with in-memory caching.
- Folder Organization: Manage routine folders.
- Webhook Subscriptions: Create, view, and delete webhook subscriptions for workout events.
🏁 Quick Start
Pick the workflow that fits your setup:
| Scenario | Command | Requirements |
|---|---|---|
| One-off stdio run | HEVY_API_KEY=sk_live... npx -y hevy-mcp |
Node.js ≥ 24, Hevy API key |
| Local development | npm install && npm run build && npm start |
.env with HEVY_API_KEY |
🛠️ Prerequisites
- Node.js: v24 or higher (strongly recommended to use the exact version pinned in
.nvmrc). - npm: v10 or higher.
- Hevy API key: Required for all operations (available with Hevy PRO).
📦 Installation
Run via npx (Recommended)
You can launch the server directly without cloning:
HEVY_API_KEY=your_hevy_api_key_here npx -y hevy-mcp
Manual Installation
# Clone the repository
git clone https://github.com/chrisdoc/hevy-mcp.git
cd hevy-mcp
# Install dependencies
npm install
# Create .env and add your keys
cp .env.sample .env
# Edit .env and add your HEVY_API_KEY
🔗 Integration
Claude Desktop Configuration
To use this server with Claude Desktop, add the following to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"hevy-mcp": {
"command": "npx",
"args": ["-y", "hevy-mcp"],
"env": {
"HEVY_API_KEY": "sk_live_your_key_here"
}
}
}
}
Cursor Configuration
Add this server under "mcpServers" in ~/.cursor/mcp.json:
{
"mcpServers": {
"hevy-mcp": {
"command": "npx",
"args": ["-y", "hevy-mcp"],
"env": {
"HEVY_API_KEY": "your-api-key-here"
}
}
}
}
✨ Why hevy-mcp?
- 🚀 High Performance: Built with the Oxc toolchain (
oxlint/oxfmt) for near-instant linting and formatting. - 🛡️ Type Safety: Fully type-safe implementation using Zod and Kubb-generated API clients.
- 📉 Observability: Built-in Sentry monitoring for error tracking and performance profiling.
- ⚡ Optimized: Includes in-memory caching for exercise templates to reduce API latency.
⚙️ Configuration
Supply your Hevy API key via:
- Environment Variable:
HEVY_API_KEY(in.envor system environment). - CLI Argument:
--hevy-api-key=your_key(after--in npm scripts).
# Example .env
HEVY_API_KEY=your_hevy_api_key_here
📡 Sentry Monitoring
hevy-mcp includes Sentry monitoring to observe errors and usage in production. It initializes @sentry/node with tracing enabled and PII collection disabled by default.
🐳 Running behind an MCP gateway (supergateway contract)
The MCP server itself speaks stdio only. For multi-tenant gateway
deployments (e.g. mcp-gateway-poc),
this repo ships a Dockerfile that wraps the stdio binary with
supergateway so a single
container exposes MCP streamable-HTTP.
The image follows the same contract every gateway-hosted MCP uses:
- MCP streamable-HTTP on
0.0.0.0:$PORTat/mcp - Health endpoint at
/healthz - Stateful sessions (
Mcp-Session-Idhonored) HEVY_API_KEYis read from the container environment and passed to the spawned stdio child
Images are published to ghcr.io/rwestergren/hevy-mcp from main and from
any manually cut GitHub release. Build locally with:
docker build -t hevy-mcp:local .
docker run --rm -e HEVY_API_KEY=sk_live_... -p 8080:8080 hevy-mcp:local
curl http://localhost:8080/healthz
End users running hevy-mcp directly should use the stdio/npx flow above;
the Docker image is aimed at gateway operators, not individual clients.
🛠️ Available MCP Tools
| Category | Tools |
|---|---|
| Workouts | get-workouts, get-workout, create-workout, update-workout, get-workout-count, get-workout-events |
| Routines | get-routines, get-routine-by-id, create-routine, update-routine |
| Templates | get-exercise-templates, get-exercise-template, search-exercise-templates |
| Folders | get-routine-folders, get-routine-folder, create-routine-folder |
| Webhooks | get-webhook-subscription, create-webhook-subscription, delete-webhook-subscription |
👨💻 Development & Contributing
Quick Commands
- Build:
npm run build - Lint/Format:
npm run check(uses oxlint/oxfmt) - Unit Tests:
npx vitest run --exclude tests/integration/** - Full Test Suite:
npm test(requiresHEVY_API_KEY)
For a detailed senior engineer guide, please refer to AGENTS.md.
API Client Generation
The API client is automatically generated from the OpenAPI spec using Kubb:
npm run build:client
📄 License & Acknowledgements
- License: MIT
- Credits: Model Context Protocol, Hevy Fitness.
Contributions are welcome! Please open an issue or PR for any major changes.
インストール
Hevy MCP (Remote) をクライアントに追加します。お使いのものを選んでください。
claude mcp add ghcr-io-rwestergren-hevy-mcp-0-1-6 -- docker run -i --rm ghcr.io/rwestergren/hevy-mcp:0.1.6codex mcp add ghcr-io-rwestergren-hevy-mcp-0-1-6 -- docker run -i --rm ghcr.io/rwestergren/hevy-mcp:0.1.6amp mcp add ghcr-io-rwestergren-hevy-mcp-0-1-6 -- docker run -i --rm ghcr.io/rwestergren/hevy-mcp:0.1.6{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ghcr-io-rwestergren-hevy-mcp-0-1-6","command":"docker","args":["run","-i","--rm","ghcr.io/rwestergren/hevy-mcp:0.1.6"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"type": "local",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ghcr-io-rwestergren-hevy-mcp-0-1-6": {
"command": {
"path": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rwestergren/hevy-mcp:0.1.6"
]
}
}
}
}Add to your Zed `settings.json`.
docker run -i --rm ghcr.io/rwestergren/hevy-mcp:0.1.6Run `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
スコア
39 / 100
情報不足
- ドキュメント25/25
- メンテナンス13/25
- 信頼性13/20
- 機能0/15
- 導入のしやすさ12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 119 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
バージョン履歴
| バージョン | 公開日 |
|---|---|
| 0.1.6最新 | 2026年5月5日 |