Skip to main content
Glama
futureweb

Futureweb Intervals MCP

create_library_workout

Save a workout template to the Intervals.icu library, validating structured steps and rendering them into workout text.

Instructions

Use only when the athlete asks to save a workout template in the workout library. Writes to Intervals.icu.

The workout_doc is validated like add_or_update_event (with errors nothing is created) and rendered into the workout text; an empty workout_doc is ignored and description is used. Format: intervals://workout-syntax (get_guide). dry_run shows the request; the answer reads back what Intervals.icu stored and parsed. Schedule it with add_event_from_library.

Input Schema

NameRequiredDescriptionDefault
nameYesWorkout name, e.g. "Sweet Spot 3x10"
folderNoFolder or plan by name (case-insensitive) or id; optional if the library has exactly one folder
dry_runNotrue = check and return the exact request, write nothing
distanceNoPlanned distance in metres
athlete_idNoDefault: the configured athlete
sport_typeYesSport, e.g. Ride, Run, Swim, Walk, Row, WeightTraining
descriptionNoWorkout text in Intervals.icu syntax or free text; ignored when workout_doc has steps
moving_timeNoPlanned moving time in seconds
workout_docNoStructured steps, rendered into the text. Format: intervals://workout-syntax

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover hints (readOnlyHint=false, destructiveHint=false, openWorldHint=false); the description adds real behavior: workout_doc is validated and nothing is created on error, an empty workout_doc is ignored in favor of description, and dry_run returns the exact request without writing. It also discloses the post-write readback ('the answer reads back what Intervals.icu stored and parsed'), which is non-obvious for a mutation.

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?

Front-loaded with the gating condition, then write semantics, then the dry_run behavior and the scheduling hand-off. Every sentence contributes, though the third sentence packs several distinct rules (validation, empty-doc fallback, format reference) densely enough that it reads as a run-on.

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 9-parameter mutation with no output schema, the description covers failure semantics, dry-run preview, precedence, and return readback, and defers deep syntax to a named guide. Missing only operational detail such as duplicate-name handling or required permissions in Intervals.icu.

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 description coverage is 100%, so the baseline is 3, and the description goes beyond it by clarifying the precedence rule between workout_doc and description and by defining what dry_run returns, not just what it is. It does not restate the schema, but nor does it add syntax detail for nested Step/Value fields beyond pointing at intervals://workout-syntax.

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?

Specific verb+resource ('save a workout template in the workout library') with an explicit scope qualifier ('Use only when...'). It is clearly distinguished from get_library_workout (read) and add_event_from_library (scheduling), so an agent can select it without opening a schema.

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?

States the triggering condition ('only when the athlete asks to save a workout template') and routes the adjacent use case elsewhere ('Schedule it with add_event_from_library'). It also points to get_guide for the workout-syntax reference, which is the correct escalation path.

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