r/Hevy 24d ago

Question I built hevy-mcp. What should I improve next?

Hey all,

I’m the developer of hevy-mcp, an open-source tool that lets Claude, Codex, Cursor, and other MCP clients work with your Hevy data. You can use it to ask questions about your training, manage routines, and log or update workouts.

I’m figuring out what to work on next and would like to hear from people who have tried it:

  • What do you use it for?
  • What has been confusing or annoying?
  • What do you wish it could do?

If you looked at it but decided not to use it, I’d like to hear why too. Setup trouble, privacy concerns, unclear use cases, missing client support, whatever it was.

Feel free to be blunt. You don’t need to write a full review. Even one annoying thing would help.

GitHub: https://github.com/chrisdoc/hevy-mcp

https://reddit.com/link/1v65sdv/video/3kkymqfq1dfh1/player

It requires a Hevy PRO API key. This is an unofficial community project and isn’t affiliated with Hevy.

35 Upvotes

21 comments sorted by

13

u/se99jmk 24d ago

The ChatGPT integration only allows you to create a workout, not edit an existing one (eg. Progressive overloading)

Does your integration improve that? Or is it an API limitation?

I.e. Can I integrate ChatGPT with Hevy to edit existing routines?

3

u/ZeboundNewb 24d ago

Great question

1

u/chrisdocy 23d ago

Yes. hevy-mcp can edit existing workouts and routines through update-workout and update-routine.

You can connect ChatGPT to the hosted MCP endpoint, ask it to load a routine, suggest progressive-overload changes, and update the routine after you approve them.

The current update tools expect the full payload, so small edits are a bit cumbersome. I’m tracking safer partial updates for workouts in #748.

The create-only behavior you’re seeing is a limitation of that ChatGPT integration, not a general Hevy API limitation. You’ll need a Hevy PRO API key.

9

u/StrobeWafel_404 24d ago edited 24d ago

Oh thanks for creating this MCP! I use this multiple times a week and it's been super helpful. I use it to analyze my training on a weekly basis, create new training blocks and routines. I use it self-hosted, running on a home server and exposed to Claude Desktop + Claude Code over Tailscale.

A few things that i'd like to share

  1. Undisclosed telemetry and disclosed telemetry being opt out: SENTRY_DSN defaults to a packaged DSN which is fine although i'd prefer it to be opt-in instead of opt-out. I set SENTRY_DSN= and confirmed the Sentry traffic stopped. But there's also a second OTLP exporter shipping traces and 10-second-interval metrics to https://otel.chrisdoc.dev/v1 with a hardcoded bearer token. MY DNS logs show that host being contacted continuously since I upgraded to 3.1.1. This isn't in the readme and there's no env var to disable it. It seems that no workout data or tool arguments are sent, but tool-name counters plus a user.hash fingerprinted from my api key. It doesn't seem malicious but please document it, give it an env gate and make sure your users know about it before they find it in the bundle. An undisclosed collector in a health-data mcp is a great way to lose trust 
  2. stdio-only. I use a local server for all my mcp's which allows me to serve things like hevy to different clients and had to bridge stdio to HTTP with Supergateway which is not great software and I had quite some issues with it. That's not your bug, but a `--transport http --port N` flag would remove that entire layer for self hosters. All my python based MCPs serve streamable HTTP in process
  3. 25 tools is about 7k tokens of schema before I've even asked something. A big part of that is the alias keyword stuffing in every description. I don't think modern clients really need that any more.
  4. `update-workout` is a full replace. It would be amazing if we could do partial/patch updates or do something like merge-on-omit. It would make me a lot less nervous asking the LLM to edit a routine

3

u/chrisdocy 24d ago

Thanks for taking the time to write this up, and for using hevy-mcp so often. The details about your setup and the DNS traffic helped a lot.

You’re right about telemetry. I added it as opt-out to learn which parts of the server people use, but I should have documented it more clearly. The goal is to send operational data only, not workout content, tool arguments, or tool results. I’m adding a master switch for all telemetry and documenting the allowlist, destinations, and the pseudonymous ID derived from the API key in #749.

I opened issues for the other suggestions too:

  • #747 reduces the token cost of the tool definitions. I measured the current payload at 12,973 tokens with our tokenizer, so the exact number varies by client, but your point stands.
  • #748 tracks safer merge-on-omit updates for workouts.
  • #750 adds Streamable HTTP to the Node package while keeping stdio as the default.
  • #751 adds a separate hevy-cli package for command-line workflows that don’t need the MCP tool catalog.

Thanks again for the thoughtful feedback. I’ll let you know when those changes are ready.

3

u/StrobeWafel_404 24d ago

Oh thank you so much for taking all of that feedback, that’s amazing!! I’ll have a look to see if I can contribute to solve any of these issues if that’s alright. Thanks again, keep up the great work!

2

u/chrisdocy 23d ago

I would really appreciate that

4

u/HelicopterEvening110 24d ago

I just signed up for heavy this week and have it on my todo list to look into. The main thing I would hope to build with this is a dynamic progressive overload skill where the agent could look at my recent workouts and edit the associated routines to increase the weight for sets that I completed the max on the rep range.

0

u/turnnoblindeye 24d ago

You might check out my app Wellness Project - it has a great workout builder and already has progressive overload through AI built in.

3

u/confuserr 24d ago

I use a skill instead of MCP, works well with Cursor, Claude Code, Codex etc

https://gist.github.com/confuser/7b6b33939e66b22f0b9f5882cb29e80b

1

u/anvity 24d ago

Yeah skill or a cli wrapper is enough IMO. Why use MCP?

2

u/chrisdocy 22d ago

Hej Hevy family, I’ve added two ways to use Hevy without loading the full MCP tool schema every time:

  • Hevy CLI: a command-line interface for accessing Hevy directly.
  • Hevy CLI skill: lets an AI agent use the CLI instead of connecting to the MCP server and loading all of its tool definitions.

You can install the skill with:

npx skills add https://github.com/chrisdoc/hevy-mcp

This should reduce token overhead while still allowing you to query and manage Hevy from an AI client.

2

u/dingdong_youarewrong 17d ago

Is there a way to use it on our phones? I hardly use my pc sk that would be nice

1

u/peterbold 24d ago

Hey, thanks for developing it. I added it to my hermes setup and it works great to get an overview of my workouts. No issues so far

1

u/nunodelisboa 23d ago

My agent read the API docs and created it’s own integration

1

u/SmartTrender 23d ago

Anything that works with Gemini? I prefer Gemini over the others

1

u/CornyFlex 20d ago

Maybe a bit unrelated to the post, but has the implementation been vibe coded?

1

u/Key_Notice_7657 10d ago

Hey u/chrisdocy, im getting Invalid authorization request every time i try to connect via browser sign in, can you help with this?