Skip to main content
Glama

hevy-mcp

MCP (Model Context Protocol) server for the Hevy workout tracker API.

Lets Claude (or any MCP client) read and write your Hevy data: workouts, routines, exercise templates, routine folders, exercise history, and body measurements.

Requirements: Node.js >= 18, a Hevy Pro account, and an API key from https://hevy.com/settings?developer.

Usage

.mcp.json (project-level, Claude Code)

A .mcp.json file in a project's root directory makes MCP servers available to everyone who runs Claude Code inside that project — check it into git and the whole team gets the server automatically.

Step by step:

  1. Create a file named .mcp.json in the root of your project (same folder as .git), or run:

    claude mcp add hevy --scope project -- npx -y @antnsn/hevy-mcp

    which creates/updates it for you.

  2. Make sure it contains:

    {
      "mcpServers": {
        "hevy": {
          "command": "npx",
          "args": ["-y", "@antnsn/hevy-mcp"],
          "env": {
            "HEVY_API_KEY": "${HEVY_API_KEY}"
          }
        }
      }
    }
  3. Provide the key. ${HEVY_API_KEY} is expanded from your environment at launch, so the key never lives in the file (safe to commit). Export it in your shell profile or session:

    export HEVY_API_KEY=your-api-key
  4. Start (or restart) claude inside the project. First use prompts you to approve the project's MCP servers; approve and the hevy tools are available. Verify with /mcp.

Claude Code (global)

claude mcp add hevy -s user --env HEVY_API_KEY=your-api-key -- npx -y @antnsn/hevy-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "hevy": {
      "command": "npx",
      "args": ["-y", "@antnsn/hevy-mcp"],
      "env": {
        "HEVY_API_KEY": "your-api-key"
      }
    }
  }
}

Global install (alternative to npx)

If npx is slow or blocked in your environment — common on corporate machines with npm security policies (e.g. allow-scripts guards) — install once globally:

npm install -g @antnsn/hevy-mcp

Then use hevy-mcp as the command in any of the configs above:

{
  "mcpServers": {
    "hevy": {
      "command": "hevy-mcp",
      "env": {
        "HEVY_API_KEY": "${HEVY_API_KEY}"
      }
    }
  }
}

Note: ${HEVY_API_KEY} interpolation only works in Claude Code's .mcp.json. Claude Desktop does not expand environment variables — put the literal key there ("HEVY_API_KEY": "your-api-key").

Related MCP server: hevy-mcp

Tools

Tool

Description

get-workouts

Paginated list of workouts

get-workout

Single workout by ID

get-workout-count

Total workout count

get-workout-events

Workout update/delete events since a date (sync)

create-workout

Log a completed workout

update-workout

Update a workout (full overwrite)

get-routines

Paginated list of routines

get-routine

Single routine by ID

create-routine

Create a routine

update-routine

Update a routine (full overwrite)

get-exercise-templates

Paginated exercise templates

get-exercise-template

Single exercise template by ID

create-exercise-template

Create a custom exercise

get-routine-folders

Paginated routine folders

get-routine-folder

Single folder by ID

create-routine-folder

Create a routine folder

get-exercise-history

History for an exercise template (progress tracking)

get-body-measurements

Paginated body measurements

get-body-measurement

Body measurement by date

create-body-measurement

Create a body measurement entry

update-body-measurement

Update a body measurement (full overwrite)

get-user-info

Authenticated user info

Notes

  • The Hevy API is v0 ("use at your own risk" per Hevy's docs) — endpoints may change.

  • The API has no delete endpoints; anything created can only be deleted manually in the Hevy app.

  • update-workout, update-routine, and update-body-measurement overwrite the full record; fetch first, modify, then update.

Contributing

From source

git clone https://github.com/antnsn/hevy-mcp.git
cd hevy-mcp
npm install
npm run build

When running from a clone, the key can also live in a .env file in the project root (gitignored) instead of the environment:

echo 'HEVY_API_KEY=your-api-key' > .env
chmod 600 .env

The repo's .mcp.json then picks the server up automatically when running claude inside the repo. Note: the .env file only works for clones — the npm-installed package looks for it next to its own install location, so use the env config shown above instead.

Development

npm run dev        # run from source via tsx
npm run typecheck  # type-check without emitting

Test interactively with the MCP Inspector (pass the key explicitly — the Inspector does not inherit your shell environment):

npx @modelcontextprotocol/inspector -e HEVY_API_KEY=$HEVY_API_KEY node dist/index.js

The upstream OpenAPI spec is vendored at docs-openapi.json, extracted from the Swagger UI at https://api.hevyapp.com/docs/ (the spec is embedded in swagger-ui-init.js; there is no standalone spec URL).

Issues and PRs welcome at https://github.com/antnsn/hevy-mcp.

Available Tools

22 tools
create-body-measurementCreate body measurementA

Create a body measurement entry for a given date (all measurement fields optional; weights/masses in kg, girths in cm). Fails with 409 if an entry already exists for that date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe date, format YYYY-MM-DD
hipsNo
waistNo
abdomenNo
neck_cmNo
chest_cmNo
left_calfNo
weight_kgNo
left_thighNo
right_calfNo
fat_percentNo
right_thighNo
shoulder_cmNo
lean_mass_kgNo
left_bicep_cmNo
right_bicep_cmNo
left_forearm_cmNo
right_forearm_cmNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that all measurement fields are optional, specifies units for weights (kg) and girths (cm), and warns about 409 conflicts. This is good transparency for a creation tool, though auth and rate limits are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. Front-loads the action and key constraints. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given high complexity (18 parameters, no output schema, no annotations), description covers core behavior (creation, conflict) but omits return value (e.g., does it return the created entry?). Adequate but incomplete for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 6% (only 'date' described). The description adds some meaning by categorizing fields (weights, girths) and noting optionality, but does not explain individual fields. Many parameters remain undocumented, insufficiently compensating for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Create' and resource 'body measurement entry', and specifies the date uniqueness constraint (fails with 409). It distinguishes from siblings like 'update-body-measurement' implicitly through creation vs update, though not explicitly compared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides when to use: to create an entry for a given date. Indicates the conflict behavior (409 if exists), which helps decide when not to use (if entry already exists). No explicit alternatives or exclusions mentioned, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-exercise-templateCreate custom exercise templateC

Create a new custom exercise template.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the exercise, e.g. 'Bench Press'
muscle_groupYesThe primary muscle group
exercise_typeYesHow the exercise is measured
other_musclesNoSecondary muscle groups
equipment_categoryYesThe equipment used

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'Create' without disclosing any behavioral traits such as idempotency, uniqueness constraints, or side effects. Does not describe what happens if a template with the same title exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, but it is too minimal to earn a higher score. It is adequate but lacks additional context that could be included without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 5 parameters (4 required, 3 with enums), the description is insufficient. It does not explain what constitutes a 'custom' template, how the created template can be used, or any return value or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes each parameter. The description adds no additional meaning beyond what the schema provides, meeting the baseline for good schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Create') and resource ('new custom exercise template') clearly. It distinguishes from sibling tools by specifying 'custom exercise template', but could be more explicit about what differentiates it from other create tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'update-exercise-template' or 'get-exercise-template'. The description lacks context for selecting this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-routineCreate routineA

Create a new workout routine (a plan, not a logged workout).

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAdditional notes for the routine
titleYesThe title of the routine
exercisesYesThe exercises in the routine
folder_idNoFolder ID to add the routine to; omit or null for default 'My Routines'

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the tool creates a routine. It does not disclose behavioral traits such as idempotency, side effects, required permissions, or return behavior, leaving agents with minimal information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the essential purpose without any extraneous words. It is appropriately sized for a straightforward creation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description clarifies the tool's purpose (plan vs logged workout), but does not mention return values or outcomes. Given the absence of an output schema, some information about what the tool returns would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no further meaning to parameters beyond the schema, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new workout routine and explicitly distinguishes it as a plan, not a logged workout. This differentiates it from sibling tools like create-workout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for creating routine plans but offers no explicit guidance on when to use versus alternatives or when not to use. The sibling context is available but not directly referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-routine-folderCreate routine folderB

Create a new routine folder. The folder is created at index 0 and all other folders shift down.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the routine folder

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses one behavioral trait: 'The folder is created at index 0 and all other folders shift down.' While this adds value, it does not cover permissions, side effects, or return format. With no annotations, the description carries the full burden, but the provided detail is limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences that each add value. It avoids redundancy, though it could be structured more clearly with bullet points or additional emphasis.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and lack of output schema, the description is adequate but does not fully contextualize the tool. It does not explain what a routine folder is or specify prerequisites, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'title' is described in the schema with 100% coverage. The description adds no further semantic meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new routine folder', providing a specific verb and resource. However, it does not differentiate from the sibling tool 'create-routine', leaving ambiguity about the distinction between a routine and a routine folder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'create-routine' or 'get-routine-folder'. The description lacks context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-workoutCreate workoutB

Log a new (completed) workout with exercises and sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the workout
end_timeYesISO 8601 end time, e.g. '2024-08-14T12:30:00Z'
exercisesYesThe exercises in the workout
is_privateNoWhether the workout is private
start_timeYesISO 8601 start time, e.g. '2024-08-14T12:00:00Z'
descriptionNoA description for the workout

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should cover behavioral traits. It mentions 'completed' but doesn't explain side effects, authorization needs, or rate limits. Minimal disclosure beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of 10 words, front-loaded with the purpose. No redundant information. Extremely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, nested objects) and no output schema, the description is too brief. It fails to mention return values or that the workout is marked as completed upon creation. Lacking completeness for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents each parameter. The description adds no new meaning beyond what the schema provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Log a new (completed) workout) and the primary objects (exercises and sets). It distinguishes from sibling tools like 'create-routine' and 'update-workout' by specifying 'workout' and 'create' vs. update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description only states what it does, not when to use it or any prerequisites. However, the purpose is clear enough from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-body-measurementGet body measurement by dateA

Get a single body measurement entry by date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe date, format YYYY-MM-DD

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the read-only nature ('Get') but does not elaborate on error handling, permissions, or what happens if the date is not found. With no annotations, the description carries the full burden and provides minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It is front-loaded with the key information: action, resource, and condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is largely adequate. However, it could be improved by briefly noting the expected return structure or common fields, but the current wording is sufficient for a basic retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the parameter 'date' fully documented (format YYYY-MM-DD). The description adds no additional semantic value beyond what the schema already provides, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'body measurement entry', and the condition 'by date'. It distinguishes from sibling 'get-body-measurements' (plural) by explicitly saying 'a single'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get-body-measurements'. There is no mention of prerequisites, limitations, or scenarios where this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-body-measurementsGet body measurementsA

Get a paginated list of body measurements (weight, body fat, girths).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
pageSizeNoItems per page (max 10, default 10)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'paginated list' but does not disclose ordering, date range filtering, or response structure for a mutation-free read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every word contributes essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 optional params, no output schema), the description is adequate but lacks mention of return format, ordering, or any filtering capabilities. Sibling tools are differentiated, but missing context for a complete agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both page and pageSize are described in the schema). The description adds no additional meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', resource 'body measurements', and key aspects: paginated list and types (weight, body fat, girths). This distinguishes it from the singular 'get-body-measurement' and 'create-body-measurement' siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a list of measurements, but lacks explicit guidance on when to use it versus alternatives (e.g., get-body-measurement for a single record). No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-exercise-historyGet exercise historyA

Get logged history for a specific exercise template, optionally filtered by date range. Useful for progress tracking (weights, reps over time).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoOptional ISO 8601 end date, e.g. '2024-12-31T23:59:59Z'
start_dateNoOptional ISO 8601 start date, e.g. '2024-01-01T00:00:00Z'
exerciseTemplateIdYesThe exercise template ID

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether it requires authentication, rate limits, or what happens if no history exists. It is implied to be a read-only operation but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences. It front-loads the verb and resource, making the purpose clear immediately. Every word adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (3 parameters, no output schema), the description adequately conveys its purpose and optional filtering. It could mention response format or pagination, but is sufficient for an AI agent to understand basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters with descriptions. The description adds the concept of date range filtering, but does not add significant meaning beyond what the schema already provides. With 100% coverage, baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves logged history for a specific exercise template, with optional date range filtering, and mentions use for progress tracking. It distinguishes itself from sibling tools like get-exercise-template and get-workout by focusing on history data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says it is useful for progress tracking (weights, reps over time), providing context for when to use it. However, it does not explicitly state when not to use it or mention alternatives, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-exercise-templateGet exercise templateB

Get a single exercise template by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
exerciseTemplateIdYesThe exercise template ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states a simple read operation. It lacks details on permissions, error handling, rate limits, or any side effects, placing full burden on a sparse description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of six words, front-loaded with verb and resource, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple get-by-id tool with one well-described parameter, but lacks output schema and any mention of return format or field details, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a meaningful description for exerciseTemplateId. The tool description adds 'by ID', which is redundant with the schema's 'The exercise template ID'. No additional meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'exercise template', and the scope 'single by ID', differentiating it from the sibling 'get-exercise-templates' (plural).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get-exercise-templates' or other get tools. No context on prerequisites or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-exercise-templatesGet exercise templatesA

Get a paginated list of exercise templates (built-in and custom) available on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
pageSizeNoItems per page (max 100, default 5)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavior. It mentions pagination and that both built-in and custom templates are included. However, it does not describe ordering, filtering, or response format, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the verb 'Get', includes key qualifiers (paginated, built-in/custom). No wasted words, easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two params and no output schema, the description covers the main purpose and scope. It could mention that pagination is controlled by page/pageSize parameters, but those are in the schema. Minor gap: no mention of sorting or filtering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters (page and pageSize) with descriptions. The tool description does not add new semantic information about the parameters beyond what the schema provides. Baseline 3 applies due to 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Verb 'Get' and resource 'paginated list of exercise templates' clearly states what the tool does. It distinguishes from sibling 'get-exercise-template' by specifying 'list' and including 'built-in and custom'. The scope 'available on the account' adds context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'get-exercise-template' or when not to use it. The description only states what it does, not the context of its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-routineGet routineA

Get a routine by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
routineIdYesThe routine ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description does not disclose any behavioral traits (e.g., auth requirements, error handling if routine not found). Minimal transparency beyond basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, concise sentence with zero waste. Front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple get-by-ID tool with one parameter and no output schema. Could mention response format or error handling for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'routineId'. The description adds no new meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('a routine by its ID'), distinguishing it from siblings like 'get-routines' (plural) and other get tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: use when you need a specific routine by ID. No explicit guidance on when to use this vs 'get-routines' or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-routine-folderGet routine folderB

Get a single routine folder by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdYesThe routine folder ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states the basic action. Does not disclose return format, side effects, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no unnecessary words. Efficiently communicates the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Low complexity tool with one param and no output schema. Description is minimally adequate but lacks information on return value or any constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (one param with description). Description adds no meaning beyond schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Get' and specific resource 'single routine folder' with qualifier 'by ID'. Distinguishes from sibling 'get-routine-folders' (plural).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., get-routine-folders for listing). No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-routine-foldersGet routine foldersB

Get a paginated list of routine folders on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
pageSizeNoItems per page (max 10, default 5)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of transparency. It discloses pagination but does not mention read-only nature, authentication needs, rate limits, or what happens with no folders.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core action. It is not verbose, but it could benefit from a bit more context without becoming wordy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain the return format (e.g., folder objects, total count). It also lacks details on sorting or default behavior. The description is too sparse for a paginated list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond what is in the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a paginated list of routine folders, using a specific verb ('Get') and resource ('routine folders'). It distinguishes from sibling 'get-routine-folder' which implies a single folder retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get-routine-folder'. There is no mention of prerequisites, filters, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-routinesGet routinesC

Get a paginated list of routines.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
pageSizeNoItems per page (max 10, default 5)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only mentions pagination, omitting sorting, filtering, or safety profile (e.g., read-only vs. destructive). The minimal information leaves the agent unaware of important behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with 5 words, extremely concise and front-loaded with the action. While concise, it could include more context without being verbose. It earns its place but is slightly under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 optional params, no output schema, no annotations), the description is adequate but leaves ambiguity about whose routines are returned. It does not specify the scope or what a 'routine' comprises, which is partially inferable from sibling tools but not explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents page and pageSize. The description adds no additional meaning beyond labeling it a 'paginated list'. Baseline 3 is appropriate since the description does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'routines', and specifies 'paginated list', which distinguishes it from the singular 'get-routine' sibling tool. However, it does not specify whose routines are returned (e.g., all routines or the user's).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get-routine' or 'get-routine-folders'. The description solely states the function without any context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-user-infoGet user infoA

Get info about the authenticated Hevy user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It indicates a read operation without side effects, but does not disclose authentication requirements, error handling, or other behavioral traits. Adequate for a simple read tool but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence that effectively communicates the tool's purpose. It is appropriately sized with no wasted words, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is largely complete for a simple authenticated retrieval tool. It could mention that the user must be authenticated, but this is implied by context. Sibling tools are distinct enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100% trivially. According to the rubric, a baseline of 4 applies when no parameters exist. The description adds no parameter info, which is acceptable as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves info about the authenticated Hevy user. It distinguishes from sibling 'get-*' tools that target specific resources like workouts or routines. However, the term 'info' is somewhat generic, lacking specificity on what user attributes are returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining user info, but provides no explicit guidance on when to use this tool versus alternatives, such as other 'get-*' tools. No exclusions or context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-workoutGet workoutA

Get a single workout's complete details by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
workoutIdYesThe workout ID

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses it is a read operation but does not specify what 'complete details' includes (e.g., exercises, sets). Lacks behavioral traits like idempotency or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 9 words that is direct and to the point. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 parameter, no output schema), the description is mostly complete. It names the resource and identifier. However, 'complete details' is vague and could be improved with a brief example of typical return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for 'workoutId' ('The workout ID'). The tool description adds no additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'workout', and the scope 'single' and 'complete details'. It distinguishes well from sibling tools like 'get-workouts' (plural) which implies listing, and 'get-workout-count' which counts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing complete details of one workout, but it does not explicitly state when to use this versus alternatives like 'get-workouts' or 'get-workout-events'. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-workout-countGet workout countA

Get the total number of workouts on the account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It merely restates the purpose without mentioning side effects, permissions, or that it is a safe read operation. The description adds minimal value beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that contains no unnecessary words or information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is complete. It clearly communicates what the tool returns and the scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description does not need to add meaning to the schema, and it correctly implies the scope is account-wide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'total number of workouts on the account', which is specific and distinct from siblings like 'get-workouts' (which likely returns a list) or 'get-workout' (single workout).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives like 'get-workouts', which might also return a count. It lacks explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-workout-eventsGet workout eventsA

Get a paged list of workout events (updates or deletes) since a given date. Useful for syncing workout changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
sinceNoISO 8601 date-time, e.g. '2024-01-01T00:00:00Z' (default 1970-01-01T00:00:00Z)
pageSizeNoItems per page (max 10, default 5)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description shoulders the full burden. It discloses that results are paged, filtered by date, and contain events of type updates or deletes. However, it does not detail pagination semantics (e.g., how to iterate all pages), order of results, or rate limiting, which are relevant for a sync tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no filler. Every word contributes: first sentence states the action, second provides the use case. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward read tool with 3 optional parameters and no output schema, the description covers the essential purpose and use case (syncing). The lack of return format details is acceptable given no output schema, but a brief mention of the event structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description aligns with parameters: 'since a given date' maps to 'since', 'paged list' to 'page' and 'pageSize'. However, the description adds little meaning beyond the schema's own parameter descriptions; it merely confirms their purpose without additional insight into formatting or behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves a paged list of workout events (updates or deletes) since a given date. It uses specific verbs ('Get') and resource ('workout events'), effectively distinguishing it from sibling tools like get-workout or get-workout-count.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful for syncing workout changes', providing clear context for when to use the tool. It does not explicitly exclude other scenarios or mention alternatives, but the context is sufficiently clear for this type of tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-workoutsGet workoutsA

Get a paginated list of workouts (most recent first).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1 or greater, default 1)
pageSizeNoItems per page (max 10, default 5)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It discloses pagination and ordering ('most recent first'), which are key behaviors. However, it does not disclose whether results are scoped to the current user or any other behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient, front-loaded with key information (pagination and ordering). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with two clearly described parameters, the description is mostly complete. It could mention what fields each workout object contains, but given no output schema, it's still acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no additional meaning beyond the schema. The baseline is 3, and no extra param context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a paginated list of workouts, sorted by most recent first. This distinguishes it from siblings like 'get-workout' (single) and 'get-workout-count' (just a count).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get-workout or get-workout-count. Context is implied but no exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-body-measurementUpdate body measurementA

Update an existing body measurement entry for a date. All fields are overwritten — omitted fields are cleared.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe date of the entry to update, format YYYY-MM-DD
hipsNo
waistNo
abdomenNo
neck_cmNo
chest_cmNo
left_calfNo
weight_kgNo
left_thighNo
right_calfNo
fat_percentNo
right_thighNo
shoulder_cmNo
lean_mass_kgNo
left_bicep_cmNo
right_bicep_cmNo
left_forearm_cmNo
right_forearm_cmNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behaviors. It does mention the overwrite-and-clear behavior, a key mutation detail. But it omits other traits such as required permissions, error handling, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action (update existing) and then the critical behavioral note. It is efficiently concise, though could benefit from a bit more context for a 18-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count, lack of output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, or prerequisites, leaving the agent under-informed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 6% (only 'date' has a description). The description does not add any parameter semantics for the remaining 17 parameters, relying entirely on property names which are mostly clear but lack units or validation details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an existing body measurement entry for a date. This distinguishes it from create (new entry) and get (retrieve) tools among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that all fields are overwritten and omitted fields are cleared, which is a critical usage guideline. However, it does not specify when not to use this tool or mention prerequisites like entry existence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-routineUpdate routineA

Update an existing routine by ID. The full routine is overwritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAdditional notes for the routine; null clears them
titleYesThe title of the routine
exercisesYesThe exercises in the routine
routineIdYesThe ID of the routine to update

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Explicitly states that the full routine is overwritten, a critical behavioral trait. No annotations provided, so description carries the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no redundancy. Front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal context: lacks success/error behavior, permissions, or return info. Adequate for a straightforward mutation with well-documented schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description does not add meaning beyond what the schema provides for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (update), resource (routine), and key behavior (overwrites). Distinguishes from create-routine sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use for modifying existing routines, but no explicit when-not-to or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-workoutUpdate workoutB

Update an existing workout by ID. The full workout is overwritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the workout
end_timeYesISO 8601 end time, e.g. '2024-08-14T12:30:00Z'
exercisesYesThe exercises in the workout
workoutIdYesThe ID of the workout to update
is_privateNoWhether the workout is private
start_timeYesISO 8601 start time, e.g. '2024-08-14T12:00:00Z'
descriptionNoA description for the workout

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes 'The full workout is overwritten', indicating a full replacement, but provides no other behavioral traits (e.g., authentication, ownership constraints, return value, error handling). With no annotations, more detail is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy; the first sentence states purpose, the second adds a key behavioral trait.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite clear purpose, the description lacks completeness for a 7-parameter tool with no output schema or annotations. Missing details like success response, error conditions, and prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Update an existing workout by ID', which clearly identifies the action (update) and resource (workout) with a specific scope (by ID), distinguishing it from siblings like create-workout or get-workout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., create-workout for new workouts, partial updates not possible). The description lacks context for prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 22 tool updatesv0.1.1
    • First observedcreate-body-measurement
    • First observedcreate-exercise-template
    • First observedcreate-routine
    • First observedcreate-routine-folder
    • First observedcreate-workout
    • First observedget-body-measurement
    • First observedget-body-measurements
    • First observedget-exercise-history
    • First observedget-exercise-template
    • First observedget-exercise-templates
    • First observedget-routine
    • First observedget-routine-folder
    • First observedget-routine-folders
    • First observedget-routines
    • First observedget-user-info
    • First observedget-workout
    • First observedget-workout-count
    • First observedget-workout-events
    • First observedget-workouts
    • First observedupdate-body-measurement
    • First observedupdate-routine
    • First observedupdate-workout

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose covering different resources (workouts, routines, folders, exercise templates, body measurements, user info) and actions (create, get, update, plus specialized queries like events and history). No two tools are ambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_workout, get_exercise_template, update_body_measurement). There are no deviations or mixed conventions.

Tool Count4/5

22 tools is on the high side but justified by the broad scope of fitness tracking (workouts, routines, exercises, measurements, account info, syncing). Each tool serves a distinct purpose, and the count is within a reasonable range for a comprehensive MCP server.

Completeness2/5

The set covers create, read, and update operations for most resources, but delete operations are entirely missing (no delete_workout, delete_routine, delete_body_measurement, etc.). This is a significant gap that would cause agent failures when cleanup or removal is needed.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol (MCP) server implementation that interfaces with the Hevy fitness tracking app and its API. This server enables AI assistants to access and manage workout data, routines, exercise templates, and more through the Hevy API (requires PRO subscription).
    23
    6,107
    451
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that interfaces with the Hevy fitness tracking API, enabling AI assistants to manage workouts, routines, exercise templates, and more via natural language.
    26
    6,107
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for the Hevy workout tracker that enables users to query training history, log workouts, and manage routines via natural language.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for the Hevy fitness tracking app, enabling management of workouts, routines, exercise templates, folders, and webhooks through AI assistants.
    25
    6,107
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/antnsn/hevy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server