Skip to content

docs: improve README onboarding and add demo - #679

Merged
chrisdoc merged 2 commits into
mainfrom
agent/improve-hevy-readme-demo
Jul 17, 2026
Merged

docs: improve README onboarding and add demo#679
chrisdoc merged 2 commits into
mainfrom
agent/improve-hevy-readme-demo

Conversation

@chrisdoc

@chrisdoc chrisdoc commented Jul 17, 2026

Copy link
Copy Markdown
Owner

What changed

  • Reworked the README landing section around the Hevy MCP value proposition and user outcomes.
  • Added a visible animated demo preview linked to the full 17.8-second MP4.
  • Added copy-paste setup for Codex, Claude Desktop, Cursor, stdio clients, Bun, and Docker.
  • Added practical prompts, troubleshooting, security guidance, and accurate documentation for all 25 tools.

Why

Make the repository easier to discover and help new users reach a successful first MCP call quickly.

Validation

  • npm run build passed.
  • npm run check:types passed.
  • npm run check passed.
  • Focused MCP registration and prompt tests passed: 12 tests.
  • README formatting and local-link checks passed.
  • Demo assets verified: 17.833 seconds, MP4 1.6 MB, GIF 2.5 MB.

The full pre-commit test hook was attempted but cannot pass in this sandbox because listener creation, live Hevy API access, and the local 1Password signing socket are unavailable.

Summary by CodeRabbit

  • Documentation
    • Reworked the README with clearer setup instructions for supported MCP clients, including bunx, Docker, and npx.
    • Updated the documented tool catalog to cover 25 available tools.
    • Added guidance on first questions, guided prompts, configuration, security, troubleshooting, and contributing.
    • Clarified hosted HTTP availability, authentication, browser access restrictions, and mutation behavior.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e87a4cb7-3f6b-4941-9b57-3e0e240c595d

📥 Commits

Reviewing files that changed from the base of the PR and between 17e3e0f and d232da2.

⛔ Files ignored due to path filters (2)
  • docs/assets/hevy-mcp-demo.gif is excluded by !**/*.gif
  • docs/assets/hevy-mcp-demo.mp4 is excluded by !**/*.mp4
📒 Files selected for processing (2)
  • .changeset/tasty-cameras-sip.md
  • README.md

📝 Walkthrough

Walkthrough

The README is substantially rewritten around onboarding, MCP capabilities, transport configuration, security, troubleshooting, and contribution guidance. A Changesets entry records a patch release for the documentation update.

Changes

README documentation update

Layer / File(s) Summary
Onboarding and stdio setup
README.md
The README adds Hevy MCP Server branding and restructures API-key, client configuration, Bun, npx, and Docker setup instructions.
MCP capabilities and transport documentation
README.md
Usage guidance, prompts, the 25-tool inventory, resources, HTTP transport details, authentication, advanced configuration, and cache behavior are updated.
Security, troubleshooting, and release metadata
README.md, .changeset/tasty-cameras-sip.md
Security, mutation retry, troubleshooting, and contribution guidance are revised, and a patch changeset records the README update.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • chrisdoc/hevy-mcp#289: Both changes substantially restructure the repository README and onboarding documentation.

Suggested labels: safe-changes, 5 min review

Poem

I’m a rabbit with docs in my burrow,
Making setup less tangled with sorrow.
Twenty-five tools now hop into view,
HTTP and security guidance too.
A patch leaf is tucked in the changeset bright—
Thump, thump, the README is right!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/improve-hevy-readme-demo

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

MCP tool token cost

Measured with o200k_base over the complete json-serialized mcp tools/list result payload: { tools }.
Targets are advisory and never fail CI.

Metric Current Target Status
Tools 25 ≤ 20 Above target
Total tokens 12667
Average tokens/tool 506.68 < 600 Within target

Change from baseline

Metric Baseline Current Delta
Tools 25 25 0
Total tokens 12667 12667 0
Average tokens/tool 506.68 506.68 0

Per-tool changes

Tool Baseline Current Delta
create-body-measurement 669 669 0
create-exercise-template 421 421 0
create-routine 564 564 0
create-routine-folder 166 166 0
create-workout 655 655 0
get-body-measurement 628 628 0
get-body-measurements 629 629 0
get-exercise-history 808 808 0
get-exercise-template 276 276 0
get-exercise-templates 308 308 0
get-routine 552 552 0
get-routine-folder 245 245 0
get-routine-folders 270 270 0
get-routines 586 586 0
get-training-summary 923 923 0
get-user-info 244 244 0
get-workout 522 522 0
get-workout-count 195 195 0
get-workout-events 670 670 0
get-workouts 540 540 0
search-exercise-templates 426 426 0
search-routines 465 465 0
update-body-measurement 667 667 0
update-routine 562 562 0
update-workout 672 672 0

Per-tool breakdown

Tool Tokens Share of total
get-training-summary 923 7.29%
get-exercise-history 808 6.38%
update-workout 672 5.31%
get-workout-events 670 5.29%
create-body-measurement 669 5.28%
update-body-measurement 667 5.27%
create-workout 655 5.17%
get-body-measurements 629 4.97%
get-body-measurement 628 4.96%
get-routines 586 4.63%
create-routine 564 4.45%
update-routine 562 4.44%
get-routine 552 4.36%
get-workouts 540 4.26%
get-workout 522 4.12%
search-routines 465 3.67%
search-exercise-templates 426 3.36%
create-exercise-template 421 3.32%
get-exercise-templates 308 2.43%
get-exercise-template 276 2.18%
get-routine-folders 270 2.13%
get-routine-folder 245 1.93%
get-user-info 244 1.93%
get-workout-count 195 1.54%
create-routine-folder 166 1.31%

Per-tool counts encode each complete tool object independently. The total encodes the complete { tools } envelope, so punctuation and separators mean the per-tool values need not sum exactly to the total.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Unit Test Results

  1 files   48 suites   4s ⏱️
639 tests 639 ✅ 0 💤 0 ❌
643 runs  643 ✅ 0 💤 0 ❌

Results for commit d232da2.

♻️ This comment has been updated with latest results.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly updates the README.md file to improve documentation, adding a demo section, detailed quick start instructions for Codex, Claude Desktop, and Cursor, an exhaustive list of the 25 registered tools, and a new troubleshooting section. The feedback suggests replacing absolute asset URLs pointing to the main branch with relative paths to ensure they remain functional across forks and branches.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread README.md
to the [Hevy](https://www.hevyapp.com/) fitness API. Ask about workout history,
analyze progress, browse routines and exercises, or create and update Hevy data
without leaving your assistant.
[Watch the 18-second demo](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4) · [Quick start](#quick-start) · [Explore all 25 tools](#tools)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using absolute URLs pointing to the main branch of the repository for assets can break when the repository is forked or when working on a different branch. It is highly recommended to use relative paths for files located within the same repository. This ensures the links remain functional and correct across all forks and branches.

Suggested change
[Watch the 18-second demo](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4) · [Quick start](#quick-start) · [Explore all 25 tools](#tools)
[Watch the 18-second demo](./docs/assets/hevy-mcp-demo.mp4) · [Quick start](#quick-start) · [Explore all 25 tools](#tools)

Comment thread README.md
The npm package and official container are **stdio-only** MCP executables. Your
client starts the process and communicates through standard input/output; this
is not an interactive terminal command or an HTTP service.
[![Hevy MCP demo showing an AI assistant analyzing six weeks of Hevy training data](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.gif)](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using absolute URLs pointing to the main branch of the repository for assets can break when the repository is forked or when working on a different branch. It is highly recommended to use relative paths for files located within the same repository. This ensures the links remain functional and correct across all forks and branches.

Suggested change
[![Hevy MCP demo showing an AI assistant analyzing six weeks of Hevy training data](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.gif)](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4)
[![Hevy MCP demo showing an AI assistant analyzing six weeks of Hevy training data](./docs/assets/hevy-mcp-demo.gif)](./docs/assets/hevy-mcp-demo.mp4)

@charliecreates charliecreates Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking

  • Please add an empty Changesets file for this documentation/assets PR (for example, via npx changeset --empty). CONTRIBUTING.md:242-257 requires a Changesets file for every pull request that changes documentation, and the required Check for changeset step in .github/workflows/build-and-test.yml:70-81 is currently failing on 5174cc127668c58b84dbfeb8df649866865fa5af with “Some packages have been changed but no changesets were found.” Until this is added, the PR cannot pass the required CI baseline.

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.13%. Comparing base (17e3e0f) to head (d232da2).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #679   +/-   ##
=======================================
  Coverage   96.13%   96.13%           
=======================================
  Files          46       46           
  Lines        1942     1942           
  Branches      535      535           
=======================================
  Hits         1867     1867           
  Misses         24       24           
  Partials       51       51           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@chrisdoc
chrisdoc marked this pull request as ready for review July 17, 2026 10:54
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jul 17, 2026

Copy link
Copy Markdown

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

Qodo Logo

@mergify

mergify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@chrisdoc
chrisdoc merged commit 24791b0 into main Jul 17, 2026
27 of 29 checks passed
@chrisdoc
chrisdoc deleted the agent/improve-hevy-readme-demo branch July 17, 2026 10:55
@qodo-code-review

qodo-code-review Bot commented Jul 17, 2026

Copy link
Copy Markdown

PR Summary by Qodo

docs: improve README onboarding and add demo assets

📝 Documentation ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Rework README to emphasize Hevy MCP value, outcomes, and a fast “first call” path.
• Add an embedded demo preview and expanded setup snippets for common MCP clients.
• Document guided prompts, all 25 tools/resources, troubleshooting, and security notes.
Diagram

graph TD
  U(["User"]) --> C["MCP client"] --> S(["hevy-mcp (stdio)"]) --> A[("Hevy API")]
  R["README / Quick start"] --> D["Demo GIF/MP4"]
  R --> C --> W(["Hosted Worker (HTTP)"]) --> A

  subgraph Legend
    direction LR
    _u(["Actor"]) ~~~ _svc(["Service"]) ~~~ _doc["Documentation"] ~~~ _db[("External API")]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Split long reference sections into /docs and keep README as a landing page
  • ➕ Reduces README length and improves scanability for first-time users
  • ➕ Allows deeper pages for tools/prompts/troubleshooting with clearer navigation
  • ➕ Easier to maintain without overwhelming the repository front page
  • ➖ More clicks for users who prefer a single-page reference
  • ➖ Requires additional structure (docs index, link strategy) to avoid fragmentation
2. Generate tool/prompt tables from source at build time
  • ➕ Prevents drift between implementation and documentation
  • ➕ Makes it cheaper to add/change tools without manual table edits
  • ➕ Can enforce completeness (e.g., CI check for doc sync)
  • ➖ Adds scripting/build complexity and potential CI friction
  • ➖ Generated markdown may be harder to hand-tune for readability

Recommendation: The PR’s approach (a richer, copy-paste-first onboarding README with an embedded demo) is appropriate for an MCP server where time-to-first-call drives adoption. If the README continues to grow, consider moving the large tool/resource catalog to /docs or auto-generating the tool list to keep accuracy high while reducing ongoing maintenance.

Files changed (2) +245 / -131

Documentation (1) +240 / -131
README.mdRewrite onboarding, add demo, and expand tools/prompts documentation +240/-131

Rewrite onboarding, add demo, and expand tools/prompts documentation

• Restructures the README around a clearer value proposition, adds an embedded demo preview linked to an MP4, and provides client-specific setup steps (Codex, Claude Desktop, Cursor, generic stdio, bunx, Docker). Expands reference content with guided prompts, a complete 25-tool catalog plus resources, hosted/self-hosted HTTP notes, troubleshooting, and refined security guidance.

README.md

Other (1) +5 / -0
tasty-cameras-sip.mdAdd patch changeset for README update +5/-0

Add patch changeset for README update

• Introduces a Changesets entry marking a patch release for the package due to documentation updates.

.changeset/tasty-cameras-sip.md

@charliecreates

Copy link
Copy Markdown
Contributor

PR #679 merged while I was reviewing the current head, so I didn’t submit a stale post-merge formal review. I checked the README claims against the tool, prompt, resource, runtime, and release configuration and found no blocking issue. The absolute raw GitHub demo links are less fork/branch-portable than relative links, but that’s non-blocking.

@github-actions github-actions Bot mentioned this pull request Jul 17, 2026
@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (1) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 65 rules

Grey Divider


Action required

1. README passes HEVY_API_KEY via CLI 📘 Rule violation ⛨ Security
Description
The updated README instructs users to provide the Hevy API key in command-line arguments (via `--env
HEVY_API_KEY=...`), which violates the requirement to never pass API keys via CLI arguments. CLI
history/process listings can expose secrets, so the docs should require HEVY_API_KEY to come from
the environment only.
Code

README.md[R81-84]

+codex mcp add hevy \
+  --env HEVY_API_KEY=your-hevy-api-key \
+  -- npx -y hevy-mcp
+```
Relevance

⭐⭐ Medium

Repo removed CLI API-key args, but no precedent on Codex --env HEVY_API_KEY=... documentation.

PR-#617
PR-#568

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 2033893 forbids passing API keys via CLI arguments and requires the key to be
sourced from HEVY_API_KEY env var only. The README adds an example that includes `--env
HEVY_API_KEY=your-hevy-api-key`, which is an API key provided through CLI arguments.

Rule 2033893: Disallow API keys in CLI arguments; require HEVY_API_KEY env var
README.md[81-84]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README shows commands that place `HEVY_API_KEY` on the command line (e.g., `--env HEVY_API_KEY=...`). The compliance requirement forbids providing API keys via CLI arguments and requires reading the key exclusively from the `HEVY_API_KEY` environment variable.

## Issue Context
This impacts onboarding snippets for Codex (and similar snippets elsewhere in the README). Command-line arguments can be captured in shell history and visible via process inspection.

## Fix Focus Areas
- README.md[75-89]
- README.md[187-193]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

2. Vague changeset summary 🐞 Bug ⚙ Maintainability
Description
The changeset message is only "update readme", which will generate an unhelpful changelog/release
note entry. This reduces release-note quality and makes it harder to understand what shipped in the
patch.
Code

.changeset/tasty-cameras-sip.md[R1-5]

+---
+"hevy-mcp": patch
+---
+
+update readme
Relevance

⭐⭐ Medium

Only precedent: empty changeset fixed; no evidence enforcing detailed summary text.

PR-#645

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The new changeset’s only human-facing summary line is a generic "update readme".

.changeset/tasty-cameras-sip.md[1-5]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The changeset summary is too generic ("update readme"), which will surface in generated release notes and provide little value.

## Issue Context
This PR’s README change is substantial (onboarding rewrite + demo + setup examples). The changeset should reflect that.

## Fix Focus Areas
- .changeset/tasty-cameras-sip.md[1-5]

## Suggested fix
Replace the body text with something descriptive, e.g. "Improve README onboarding and add demo media + setup examples" (or similar phrasing that matches the actual user-facing changes).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Demo links pinned main 🐞 Bug ⚙ Maintainability
Description
README hard-codes demo media URLs to raw.githubusercontent.com/.../main/..., so forks, tags, and
older releases will always show whatever is currently on upstream main (or break if assets move).
This makes the documentation non-versioned and can drift from the release a user is reading.
Code

README.md[R14-28]

+[Watch the 18-second demo](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4) · [Quick start](#quick-start) · [Explore all 25 tools](#tools)

-A Hevy API key, available with Hevy PRO, is required.
+</div>

-## Quick Start
+`hevy-mcp` is an open-source [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
+server for the [Hevy](https://www.hevyapp.com/) fitness and workout tracking
+app. It lets AI assistants read, analyze, create, and update your Hevy workouts,
+routines, exercise templates, and body measurements through authenticated Hevy
+API requests.

-Use local stdio when your MCP client can launch a command, or use the hosted
-Streamable HTTP endpoint when your client supports fixed authorization headers.
+> A Hevy API key, available with **Hevy PRO**, is required.

-### Option A: Local stdio
+## See it in action

-The npm package and official container are **stdio-only** MCP executables. Your
-client starts the process and communicates through standard input/output; this
-is not an interactive terminal command or an HTTP service.
+[![Hevy MCP demo showing an AI assistant analyzing six weeks of Hevy training data](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.gif)](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4)
Relevance

⭐ Low

Exact suggestion to avoid raw.githubusercontent.com/.../main asset links was rejected in PR #679.

PR-#679

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The README links both the MP4 and GIF through raw.githubusercontent.com with an explicit /main/
path, which necessarily resolves against the upstream default branch rather than the README’s own
version/fork.

README.md[1-31]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
README demo links point to the upstream repository’s `main` branch via `raw.githubusercontent.com`, which makes the assets non-versioned and incorrect for forks/tags/older releases.

## Issue Context
The README already references assets under `docs/assets/`, but the links are pinned to `/main/`.

## Fix Focus Areas
- README.md[14-30]

## Suggested fix
Replace the `raw.githubusercontent.com/.../main/...` URLs with either:
- relative links (e.g. `./docs/assets/hevy-mcp-demo.gif` and `./docs/assets/hevy-mcp-demo.mp4`), or
- immutable, versioned URLs (e.g. to a release tag) if you want stable historical rendering.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread README.md
Comment on lines +81 to +84
codex mcp add hevy \
--env HEVY_API_KEY=your-hevy-api-key \
-- npx -y hevy-mcp
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Readme passes hevy_api_key via cli 📘 Rule violation ⛨ Security

The updated README instructs users to provide the Hevy API key in command-line arguments (via `--env
HEVY_API_KEY=...`), which violates the requirement to never pass API keys via CLI arguments. CLI
history/process listings can expose secrets, so the docs should require HEVY_API_KEY to come from
the environment only.
Agent Prompt
## Issue description
The README shows commands that place `HEVY_API_KEY` on the command line (e.g., `--env HEVY_API_KEY=...`). The compliance requirement forbids providing API keys via CLI arguments and requires reading the key exclusively from the `HEVY_API_KEY` environment variable.

## Issue Context
This impacts onboarding snippets for Codex (and similar snippets elsewhere in the README). Command-line arguments can be captured in shell history and visible via process inspection.

## Fix Focus Areas
- README.md[75-89]
- README.md[187-193]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +1 to +5
---
"hevy-mcp": patch
---

update readme

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Informational

3. Vague changeset summary 🐞 Bug ⚙ Maintainability

The changeset message is only "update readme", which will generate an unhelpful changelog/release
note entry. This reduces release-note quality and makes it harder to understand what shipped in the
patch.
Agent Prompt
## Issue description
The changeset summary is too generic ("update readme"), which will surface in generated release notes and provide little value.

## Issue Context
This PR’s README change is substantial (onboarding rewrite + demo + setup examples). The changeset should reflect that.

## Fix Focus Areas
- .changeset/tasty-cameras-sip.md[1-5]

## Suggested fix
Replace the body text with something descriptive, e.g. "Improve README onboarding and add demo media + setup examples" (or similar phrasing that matches the actual user-facing changes).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant