intervals-icu-mcp-server 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +6 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -120,13 +120,13 @@ const TOOLS = [
120
120
  properties: {
121
121
  start_date_local: { type: "string", description: "Date/time in ISO 8601 format, e.g. 2024-06-01T08:00:00" },
122
122
  name: { type: "string", description: "Event name" },
123
- description: { type: "string", description: "Event description / workout notes" },
123
+ description: { type: "string", description: "Event description. To create a structured workout, write it in Intervals.icu's Workout Builder plain-text syntax — Intervals.icu parses this into the workout structure (steps, duration, zones) automatically. Syntax: each step is a line starting with '-', e.g. '-10m 50-60%' (duration as h/m/s combos like '1h20m', '3m30s', '20s'; intensity as a %FTP value/range, or a zone like 'z1'/'z4'). Append 'power=Ns' to set the power-smoothing window (power=10s for steady efforts, power=3s or power=1s for short hard efforts/sprints/kicks). HR-based targets: 'z4 90% hr'. Optional cadence suffix: '85-95rpm'. Repeats: put 'Nx' on its own line, then the repeated step lines, then a blank line before the next block. Example: \"- Warmup 10m 50%\\n\\n4x\\n- Hard 4m 105% power=10s\\n- Easy 2m 50%\\n\\n- Cooldown 5m 50%\\n\"" },
124
124
  category: { type: "string", description: "Event category: WORKOUT, NOTE, RACE_A, RACE_B, RACE_C (race priority A/B/C)" },
125
125
  type: { type: "string", description: "Activity type: Ride, Run, Swim, WeightTraining, etc." },
126
126
  race: { type: "boolean", description: "Mark as a race event (default: false)" },
127
127
  distance: { type: "number", description: "Distance in meters (e.g. 100000 for 100km)" },
128
128
  sub_type: { type: "string", description: "Race category/sub-type (e.g. A, B, C)" },
129
- workout_doc: { type: "object", description: "Structured workout definition (Intervals.icu workout_doc format) to attach steps/intervals to this event" },
129
+ workout_doc: { type: "object", description: "Pre-computed Intervals.icu workout_doc (as returned by get_event_by_id/list_workouts on an existing structured workout) to copy verbatim onto this event. Hand-written partial docs won't render correctly — prefer setting `description` with the Workout Builder syntax and omitting this field so Intervals.icu computes it." },
130
130
  athlete_id: { type: "string", description: "Athlete ID (defaults to ATHLETE_ID env var)" },
131
131
  api_key: { type: "string", description: "API key (defaults to API_KEY env var)" },
132
132
  },
@@ -142,13 +142,13 @@ const TOOLS = [
142
142
  event_id: { type: "string", description: "The event ID to update" },
143
143
  start_date_local: { type: "string", description: "New date/time (moves the event), e.g. 2024-06-05T08:00:00" },
144
144
  name: { type: "string", description: "New event name" },
145
- description: { type: "string", description: "New description" },
145
+ description: { type: "string", description: "New description. Use Intervals.icu's Workout Builder plain-text syntax to have Intervals.icu recompute the workout structure — steps as '-<duration> <intensity>' lines (duration as h/m/s combos, intensity as %FTP or a zone like 'z1'), optional 'power=Ns' smoothing suffix, 'Nx' repeat blocks, HR targets ('z4 90% hr'), cadence suffix ('85-95rpm'). Example: \"- Warmup 10m 50%\\n\\n4x\\n- Hard 4m 105% power=10s\\n- Easy 2m 50%\\n\\n- Cooldown 5m 50%\\n\"" },
146
146
  category: { type: "string", description: "New category" },
147
147
  type: { type: "string", description: "New activity type" },
148
148
  race: { type: "boolean", description: "Toggle race flag" },
149
149
  distance: { type: "number", description: "Distance in meters (e.g. 100000 for 100km)" },
150
150
  sub_type: { type: "string", description: "Race category/sub-type (e.g. A, B, C)" },
151
- workout_doc: { type: "object", description: "New structured workout definition (Intervals.icu workout_doc format)" },
151
+ workout_doc: { type: "object", description: "Pre-computed Intervals.icu workout_doc to copy verbatim. Hand-written partial docs won't render correctly — prefer updating `description` with Workout Builder syntax instead." },
152
152
  athlete_id: { type: "string", description: "Athlete ID (defaults to ATHLETE_ID env var)" },
153
153
  api_key: { type: "string", description: "API key (defaults to API_KEY env var)" },
154
154
  },
@@ -342,11 +342,11 @@ const TOOLS = [
342
342
  properties: {
343
343
  start_date_local: { type: "string", description: "ISO 8601 date/time" },
344
344
  name: { type: "string" },
345
- description: { type: "string" },
345
+ description: { type: "string", description: "Use Workout Builder plain-text syntax for a structured workout — '-<duration> <intensity>' step lines, 'Nx' repeat blocks, optional 'power=Ns' smoothing suffix, HR targets ('z4 90% hr'), cadence suffix ('85-95rpm'). Example: \"- Warmup 10m 50%\\n\\n4x\\n- Hard 4m 105% power=10s\\n- Easy 2m 50%\\n\\n- Cooldown 5m 50%\\n\"" },
346
346
  category: { type: "string" },
347
347
  type: { type: "string" },
348
348
  race: { type: "boolean" },
349
- workout_doc: { type: "object", description: "Structured workout definition (Intervals.icu workout_doc format)" },
349
+ workout_doc: { type: "object", description: "Pre-computed workout_doc to copy verbatim; prefer `description` with Workout Builder syntax instead" },
350
350
  },
351
351
  },
352
352
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intervals-icu-mcp-server",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "MCP server for Intervals.icu — 20 tools for activities, wellness, calendar events, workouts and more",
5
5
  "type": "module",
6
6
  "bin": {