hevy-mcp 4.1.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  [![Hosted on Cloudflare](https://img.shields.io/badge/Hosted_on-Cloudflare-F38020?logo=cloudflare&logoColor=white)](#hosted-cloudflare-endpoint)
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
14
14
 
15
- [Connect to the hosted MCP](#connect-to-the-hosted-endpoint) · [Watch the 18-second demo](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4) · [Explore all 25 tools](#tools)
15
+ [Connect to the hosted MCP](#connect-to-the-hosted-endpoint) · [Watch the 18-second demo](https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/docs/assets/hevy-mcp-demo.mp4) · [Explore all 26 tools](#tools)
16
16
 
17
17
  </div>
18
18
 
@@ -295,10 +295,10 @@ only when your assistant calls them.
295
295
 
296
296
  These server-provided MCP prompts coordinate common multi-step workflows:
297
297
 
298
- | Prompt | Arguments | Workflow |
299
- | ----------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
300
- | `analyze-workout-progress` | Optional `weeks` from 1-12; default `4` | Calls `get-training-summary`, then analyzes workout activity and body-measurement trends from the returned evidence. |
301
- | `create-workout-from-routine` | Required `routineId` and UTC `startTime` | Loads a routine, collects actual completed-set data and an end time, then creates a workout without inventing results. |
298
+ | Prompt | Arguments | Workflow |
299
+ | ----------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
300
+ | `analyze-workout-progress` | Optional `weeks` from 1-12; default `4` | Calls `get-training-summary`, then analyzes workout activity and body-measurement trends from the returned evidence. |
301
+ | `create-workout-from-routine` | Required `routine_id` and UTC `start_time` | Loads a routine, collects actual completed-set data and an end time, then creates a workout without inventing results. |
302
302
 
303
303
  > [!NOTE]
304
304
  > With MCP SDK v1.29.0, clients invoking `analyze-workout-progress` with its
@@ -307,7 +307,7 @@ These server-provided MCP prompts coordinate common multi-step workflows:
307
307
 
308
308
  ## Tools
309
309
 
310
- `hevy-mcp` registers 25 tools. Read-only tools are safe for exploration; create
310
+ `hevy-mcp` registers 26 tools. Read-only tools are safe for exploration; create
311
311
  and update tools are exposed with MCP mutation annotations so compatible clients
312
312
  can request confirmation.
313
313
 
@@ -319,7 +319,8 @@ can request confirmation.
319
319
  | Workouts | `get-workout-count` | Return the account's total workout count. |
320
320
  | Workouts | `get-workout-events` | List workout update and delete events since a timestamp. |
321
321
  | Workouts | `create-workout` | Create a completed workout in Hevy. |
322
- | Workouts | `update-workout` | Replace an existing workout by ID. |
322
+ | Workouts | `update-workout` | Patch workout metadata by ID; omitted fields and all exercises remain unchanged. |
323
+ | Workouts | `replace-workout-exercises` | Replace all exercises and sets while preserving workout metadata. |
323
324
  | Routines | `search-routines` | Search routine titles and return compact metadata for discovery. |
324
325
  | Routines | `get-routines` | List custom and default workout routines. |
325
326
  | Routines | `get-routine` | Get one routine and its exercise configuration by ID. |
@@ -361,7 +362,7 @@ https://hevy.chrisdoc.dev/mcp
361
362
  ```
362
363
 
363
364
  It is the quickest way to use `hevy-mcp`: there is nothing to install or keep
364
- running locally, and it exposes the same 25 tools as the npm package and Docker
365
+ running locally, and it exposes the same 26 tools as the npm package and Docker
365
366
  image.
366
367
 
367
368
  The Cloudflare Worker uses stateless **Streamable HTTP** at `POST /mcp`.
package/dist/cli.mjs CHANGED
@@ -4,12 +4,12 @@
4
4
  (function() {
5
5
  try {
6
6
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {};
7
- e.SENTRY_RELEASE = { id: "hevy-mcp@4.1.2" };
7
+ e.SENTRY_RELEASE = { id: "hevy-mcp@5.0.0" };
8
8
  var n = new e.Error().stack;
9
9
  n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "625c4c9c-e20d-40b3-96b1-4e799ef130f3", e._sentryDebugIdIdentifier = "sentry-dbid-625c4c9c-e20d-40b3-96b1-4e799ef130f3");
10
10
  } catch (e) {}
11
11
  })();
12
- import { a as createSafeErrorDiagnostic, i as MissingHevyApiKeyError, n as runServer, o as flushTelemetry } from "./src-Wa4VP4Na.mjs";
12
+ import { a as createSafeErrorDiagnostic, i as MissingHevyApiKeyError, n as runServer, o as flushTelemetry } from "./src-BUmpaxmH.mjs";
13
13
  //#region src/cli.ts
14
14
  runServer().catch(async (error) => {
15
15
  if (error instanceof MissingHevyApiKeyError) console.error(error.message);
package/dist/index.d.mts CHANGED
@@ -5,7 +5,7 @@ type NodeTransport = "stdio" | "http";
5
5
  //#region src/index.d.ts
6
6
  declare function createNodeMcpServer({ apiKey }: {
7
7
  apiKey: string;
8
- }, transport?: NodeTransport): Promise<import("@modelcontextprotocol/sdk/server/mcp").McpServer>;
8
+ }, transport?: NodeTransport): Promise<import("@modelcontextprotocol/server").McpServer>;
9
9
  declare function runStdioServer(): Promise<void>;
10
10
  declare function runServer(): Promise<void>;
11
11
  //#endregion
package/dist/index.mjs CHANGED
@@ -4,10 +4,10 @@
4
4
  (function() {
5
5
  try {
6
6
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {};
7
- e.SENTRY_RELEASE = { id: "hevy-mcp@4.1.2" };
7
+ e.SENTRY_RELEASE = { id: "hevy-mcp@5.0.0" };
8
8
  var n = new e.Error().stack;
9
9
  n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "e9496b31-626b-4ad1-9416-47ba4ffd2995", e._sentryDebugIdIdentifier = "sentry-dbid-e9496b31-626b-4ad1-9416-47ba4ffd2995");
10
10
  } catch (e) {}
11
11
  })();
12
- import { n as runServer, r as runStdioServer, t as createNodeMcpServer } from "./src-Wa4VP4Na.mjs";
12
+ import { n as runServer, r as runStdioServer, t as createNodeMcpServer } from "./src-BUmpaxmH.mjs";
13
13
  export { createNodeMcpServer, runServer, runStdioServer };