Skip to main content
Glama
futureweb

Futureweb Intervals MCP

add_event_from_library

Schedule a library workout on a chosen day in Intervals.icu, copying its steps and load while refusing duplicate entries unless duplicates are allowed.

Instructions

Use only when the athlete asks to schedule a workout from the library on a day. Writes a new WORKOUT event to Intervals.icu.

Copies the library workout's name, steps, type, duration, distance, tags and planned load; a duplicate of that day is refused (allow_duplicate). A workout imported from a file (.zwo, .mrc, .erg, .fit) without workout steps in its text is created without steps; the answer says so. dry_run shows the request; the answer reads back what was stored.

Input Schema

NameRequiredDescriptionDefault
dateYesDay YYYY-MM-DD
dry_runNotrue = check and return the exact request, write nothing
athlete_idNoDefault: the configured athlete
workout_idYesLibrary workout id (get_workout_library); small numbers such as 1 are normal
allow_duplicateNoCreate even if that day has the same event (name or workout)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.1

TDQS

A4.5/5.0
Behavior5/5

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

With annotations covering only safety hints, the description carries real behavioral weight: it lists exactly which fields are copied, states the duplicate-refusal default and the allow_duplicate escape hatch, warns that file-imported workouts without steps are created without steps and that the response says so, and explains what dry_run returns. This is substantially more than the annotations provide.

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?

Three tight sentences, front-loaded with the usage condition before the mechanics. Dense but each sentence carries information; the missing-steps caveat earns its place despite being the most parenthetical detail.

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 5-parameter write tool with no output schema, the definition covers prerequisites (library workout id), duplication policy, dry-run preview, and partially describes the response ('reads back what was stored'). Return shape is only gestured at, which keeps it from a 5.

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 the baseline is 3, but the description adds behavioral meaning the schema lacks: it explains the default duplicate-refusal that allow_duplicate overrides, and confirms dry_run writes nothing and returns the exact request. athlete_id and date gain nothing beyond the 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?

Specific verb plus resource: 'Writes a new WORKOUT event to Intervals.icu' from a library workout on a given day. The 'from the library' scoping separates it from the sibling add_or_update_event and create_library_workout without needing to open their schemas.

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?

'Use only when the athlete asks to schedule a workout from the library on a day' gives an explicit activation condition and an implicit exclusion, which is strong context. It stops short of naming the alternative tool an agent should pick when the workout is not from the library, so it is clear but not fully routed.

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