Skip to main content
Glama
futureweb

Futureweb Intervals MCP

update_wellness

Destructive

Record or change an athlete's daily subjective wellness scores or comment in Intervals.icu, updating only supplied fields and creating the day's record if missing.

Instructions

Use only when the athlete asks to record or change subjective wellness scores or the comment of one day.

Writes the wellness record of that day in Intervals.icu (created if missing): only the fields passed are changed; device values (weight, HRV, sleep, resting HR ...) stay untouched. At least one field is required. Scales are integers 1-4 as in the Intervals.icu wellness dialog (labels per parameter). A scale value once set cannot be cleared through the API (null is ignored, 0 rejected): use the web app, so double-check before writing (dry_run shows the request). comments replaces the existing comment: to append, read it with get_wellness_data and send the combined text. Returns the updated record.

Input Schema

NameRequiredDescriptionDefault
dateYesDay to update, YYYY-MM-DD
moodNoMood 1-4: 1=Great, 2=Good, 3=OK, 4=Grumpy
injuryNoInjury 1-4: 1=None, 2=Niggle, 3=Poor, 4=Injured
stressNoStress 1-4: 1=Low, 2=Avg, 3=High, 4=Extreme
dry_runNotrue = check and return the exact request, write nothing
fatigueNoFatigue 1-4: 1=Low, 2=Avg, 3=High, 4=Extreme
commentsNoFree text; REPLACES the day's comment (no append); empty text is ignored
sorenessNoSoreness 1-4: 1=Low, 2=Avg, 3=High, 4=Extreme
athlete_idNoDefault: the configured athlete
motivationNoMotivation 1-4: 1=Extreme, 2=High, 3=Avg, 4=Low
clear_commentsNoEmpty the day's comment (not together with comments)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Far exceeds the annotations (readOnly=false, destructive=true). It discloses partial-update semantics (only passed fields change, device values untouched), the at-least-one-field requirement, the irreversibility of scale values via API, that comments replaces rather than appends, and that dry_run previews the exact request. These are exactly the destructive-operation caveats an agent needs.

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 usage trigger is front-loaded and each sentence carries operational weight, but the dense parentheticals ('device values (weight, HRV, sleep, resting HR ...)', 'dry_run shows the request') make it slightly overstuffed for a single paragraph; a light structural break would read better.

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 an 11-parameter mutation tool with no output schema and no enums, the description covers preconditions, partial-update behavior, failure/limitation modes, and the return value ('returns the updated record'). An agent has everything needed to invoke it correctly.

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?

Schema coverage is 100%, so baseline 3 applies, but the description adds cross-parameter semantics the schema cannot express: the append-vs-replace workflow for comments, the mutual exclusion of clear_comments and comments, and the 'labels per parameter' scaling convention. It does not restate the per-field 1-4 labels, which 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?

States a specific verb+resource: writing the subjective wellness record for one day in Intervals.icu, created if missing. It clearly splits the write path from the sibling read tool (get_wellness_data) and scopes itself to subjective fields, not device values.

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

Usage Guidelines5/5

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

Opens with an explicit trigger ('Use only when the athlete asks to record or change subjective wellness scores or the comment of one day'), names get_wellness_data as the read path for appending comments, and routes the un-clearable scale case to the web app. Alternatives and preconditions are explicit.

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