Skip to main content
Glama
mywhoosh-community

MyWhoosh MCP Server

uploadCustomWorkout

Create new or update existing custom cycling workouts in MyWhoosh using structured steps and intervals.

Instructions

Upload or update custom cycling workouts to MyWhoosh.

CREATING NEW WORKOUTS:

  • Use a new unique workout ID (timestamp or random large number)

  • Define all workout properties and steps

UPDATING EXISTING WORKOUTS:

  • Use the same workout ID as the existing workout

  • Include all workout properties (changed and unchanged)

  • Only modify the fields you want to update (e.g., Name, Description, WorkoutStepsArray)

  • Keep other fields the same as the original workout

WORKOUT STRUCTURE:

  • Each workout consists of multiple steps (WorkoutStepsArray)

  • Steps are executed sequentially

  • Power values are FTP multipliers (0.55 = 55% FTP, 1.0 = 100% FTP, 1.2 = 120% FTP)

  • Time is in seconds

STEP TYPES:

  • E_Normal: Steady power interval (use Power field)

  • E_WarmUp: Ramp up from StartPower to EndPower

  • E_CoolDown: Ramp down from StartPower to EndPower

  • E_FreeRide: Free ride with optional message

INTERVALS:

  • Group steps into intervals by setting the same IntervalId (e.g., 1, 2, 3)

  • Steps with IntervalId = 0 are not part of an interval

  • Intervals can repeat (e.g., 3x [5min @ 80% FTP, 3min @ 120% FTP])

EXAMPLE WORKOUT:

  • 5min warmup @ 55% FTP (Id: 1, StepType: E_Normal, Power: 0.55, Time: 300)

  • 10min ramp 55% to 120% FTP (Id: 2, StepType: E_WarmUp, StartPower: 0.55, EndPower: 1.2, Time: 600)

  • 3x [5min @ 80%, 3min @ 120%] (IntervalId: 1 for all 6 steps)

  • 5min cooldown 120% to 55% (Id: 8, StepType: E_CoolDown, StartPower: 1.2, EndPower: 0.55, Time: 300)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workoutsYesArray of workout definitions to upload
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly explains the tool's behavior, including update semantics (same ID, include all properties, modify only desired fields), the meaning of FTP multipliers, time in seconds, step types and their behaviors, interval grouping, and even provides a full example. This is comprehensive and transparent.

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 long but exceptionally well-structured with clear headings (CREATING NEW WORKOUTS, UPDATING EXISTING WORKOUTS, WORKOUT STRUCTURE, STEP TYPES, INTERVALS, EXAMPLE WORKOUT). Every section adds value and directly supports the user in constructing valid requests. It is front-loaded with a clear purpose statement and remains focused throughout.

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?

Given the complexity of the tool (a nested array of workout objects with many fields) and the absence of an output schema, the description is remarkably complete. It covers all essential behavioral aspects: creation, update, step types, intervals, and provides a concrete example. The schema's detailed field descriptions complement the description, resulting in a fully self-contained tool definition.

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

Parameters5/5

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

Although the schema has 100% description coverage, the description adds substantial meaning beyond individual field descriptions. It explains relationships between fields, such as total Time being the sum of step times, the use of StartPower/EndPower for ramp steps, IntervalId grouping, and the create/update ID conventions. The detailed example ties everything together, providing practical guidance that the schema alone does not offer.

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's purpose: 'Upload or update custom cycling workouts to MyWhoosh.' It specifies the verb, resource, and destination, and distinguishes between creating and updating. This is specific and unique among the sibling tools, such as deleteCustomWorkout and downloadCustomWorkoutsFromS3.

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 provides clear context for when to use the tool, including explicit guidance for creating new workouts versus updating existing ones. It explains the ID requirements and the need to include all properties when updating. However, it does not explicitly name alternatives or state when not to use this tool, which would merit a 5.

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

Install Server

Other Tools

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/mywhoosh-community/mywhoosh-mcp-server'

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