Skip to main content
Glama
jakub-m-arch

Intervals.icu MCP Server

by jakub-m-arch

Log wellness data

update_wellness
Idempotent

Log or correct daily wellness data: weight, resting HR, HRV, sleep, ratings, comments. Update only specified fields; overwrite measurements, clear ratings with 0, comments with empty string.

Instructions

Log or correct wellness data for one day: weight, resting HR, HRV, sleep, subjective ratings and comments. Only the fields you pass are changed. Measurements (weight, HR, HRV, sleep) cannot be removed once set, only overwritten; ratings are cleared with 0 and comments with "".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDay (YYYY-MM-DD).
moodNoMood on the Intervals.icu 1–4 scale; 0 clears it.
stepsNo
injuryNoInjury on the Intervals.icu 1–4 scale; 0 clears it.
stressNoStress on the Intervals.icu 1–4 scale; 0 clears it.
fatigueNoFatigue on the Intervals.icu 1–4 scale; 0 clears it.
commentsNo
sorenessNoMuscle soreness on the Intervals.icu 1–4 scale; 0 clears it.
weight_kgNo
motivationNoMotivation on the Intervals.icu 1–4 scale; 0 clears it.
resting_hrNo
sleep_hoursNo
sleep_scoreNo
hrv_rmssd_msNo
sleep_qualityNoSleep quality on the Intervals.icu 1–4 scale; 0 clears it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true), the description discloses key hidden behaviors: partial updates ('Only the fields you pass are changed'), non-removable measurements, and clearing semantics for ratings (0) and comments (empty string). This meaningfully informs the agent about side effects without contradicting any annotation.

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 three sentences with no filler. The purpose is front-loaded, the partial-change rule is immediate, and the removal/clearing semantics are presented compactly. Every sentence adds needed information, and the JSON formatting of the quoted empty string is a minor but acceptable touch.

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?

The description covers the non-obvious mutation behavior for a 15-parameter tool and relies on the schema for ranges and required date. It slightly under-specifies the measurement grouping (steps is not mentioned and 'sleep' could conflate sleep_quality with sleep_hours/sleep_score), but with an output schema present and annotations providing idempotency/safety, this is not a critical gap.

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?

With only 53% schema description coverage, the description compensates by grouping parameters (weight, resting HR, HRV, sleep, ratings, comments) and explaining how to clear ratings and comments, which is not in the schema. It stops short of documenting every un-described parameter (e.g., steps), but the added partial-update and overwrite semantics are valuable.

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 opens with 'Log or correct wellness data for one day' – a specific verb (log/correct), resource (wellness data), and temporal scope (one day), followed by the categories of fields. This clearly separates it from sibling get_wellness and other update_* tools.

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 states the action and scope ('Log or correct wellness data for one day') and adds partial-update behavior, which conveys when it should be used. It does not explicitly name alternatives or exclusions, but given the sibling list includes only get_wellness as the read counterpart, the usage context is clear enough.

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