MCP ServerScored via MCP protocol probing: initialize handshake, tools/list conformance, and ping + tool invocation performance.

STAS

AI coach for endurance athletes with Intervals.icu data, training history, and calendar planning.

65/100
Operational Score
Score Breakdown
Availability30/30
Conformance30/30
Performance5/40
Key Metrics
Uptime 30d
100.0%
P95 Latency
1,773.2ms
Conformance
Pass
Trend
What's Being Tested
Availability
HTTP health check to the service endpoint
Responded with HTTP 200 in 1124ms
Conformance
MCP initialize handshake + tools/list
Valid MCP server info returned, tools/list responded
Performance
MCP ping + zero-arg tool invocation benchmarking
P95 latency: 1773ms, task completion: 0%
Improvement Tips
  • -Reduce response time (currently 1773ms, target <1000ms)
Skills
get_user_summary

Start here for most conversations. Load the athlete's profile, goals, rules, recent load, current fitness context, performance evidence, planning guidance, and persistent STAS memory opportunities.

get_trainings

Load recent workouts with pace, heart rate, sport metrics, intervals, and athlete reports. Use after the summary when analyzing load, progress, fatigue, or consistency.

get_planned_events

Read planned events from the Intervals calendar in a date window. Use this before rewriting or replacing an existing STAS plan.

whoami

Check which STAS user is currently authenticated. Use only for diagnostics or reconnect troubleshooting.

create_plan_event

Create or update planned WORKOUT events in Intervals. For changes to an existing STAS workout, keep the same external_id and call this tool again; do not delete the day/window just to edit time, name, note, load, color, or workout_builder. This tool is self-contained; do not look for SKILL.md or examples in the athlete's calendar. dry_run is required: false writes the event, true previews only. Send activity_type as Run/Ride/Swim/Workout/WeightTraining/Other, stas_note for the human workout note, and external_id=plan:YYYY-MM-DD:<slug>. Do not send low-level Intervals fields category, type, sport, workoutType, target, description, workout_doc, icu_workout, filename, or file_contents. The server maps activity_type to Intervals type and category=WORKOUT and infers Intervals target=HR/PACE/POWER from workout_builder. workout_builder is mandatory for any interval/key workout save, mainly Run/Ride intervals; never save intervals as prose-only. Omit workout_builder only for easy/simple workouts without structured steps. If you use workout_builder, do not include ## STAS or ## Workout; the server adds wrappers. Builder headers and repeat headers are plain lines without '-', e.g. 'Warmup', 'Main Set 5x', 'Cooldown'. Actual step lines start flush-left with '- ' and contain duration/distance plus a target, e.g. '- 1km 4:25/km-4:35/km Pace', '- 10m 75%', or '- Recovery 90s Z1 HR'. For HR-only workouts, every structured step target should use HR syntax like '- 10m Z2 HR' or '- 3m Z4 HR'. Do not write '- Warmup' followed by indented child bullets. Use '1km' or '1000mtr' for meters; 'm' means minutes. After writing a structured key workout, read it back with get_planned_events and check workout_doc.steps is non-empty before claiming it is structured. Example real interval write arguments. Replace the date/time and paces, but keep this exact JSON shape. Use activity_type, stas_note, and mandatory workout_builder for interval/key workout saves. workout_builder contains only native Intervals.icu Workout Builder text: repeat headers do not start with "-", step lines are flush-left, and nested Markdown bullets are forbidden. {"dry_run":false,"events":[{"activity_type":"Run","name":"Intervals: 5x1000m","start_date_local":"2026-05-13T08:00:00","end_date_local":"2026-05-13T08:55:00","stas_note":"Goal: controlled interval work without overreaching.\nRule: if HR rises too fast or form breaks, stop after 4 reps.","workout_builder":"Warmup\n- 15m Z2 HR\n\nMain Set 5x\n- 1km 4:25/km-4:35/km Pace\n- Recovery 90s Z1 HR\n\nCooldown\n- 10m Z1 HR","external_id":"plan:2026-05-13:intervals-5x1000m","color":"green","moving_time":3300}]}

create_note_event

Create or update NOTE events in Intervals. dry_run is required: false writes the note, true previews only. Send category=NOTE and external_id=note:YYYY-MM-DD:<slug>. Use all-day local times for normal notes, keep description short, and omit type, moving_time, icu_training_load, and workout_doc. For weekly review notes or other notes that apply to the whole week, send for_week=true; omit it or use false for ordinary notes. Do not create a seven-day date range for weekly notes; keep one all-day anchor date and use for_week=true.

delete_plan_events

Delete STAS plan events. For one specific workout, pass external_ids with the exact plan:YYYY-MM-DD:<slug> id. Use oldest/newest window deletion only when the user is replacing the whole STAS plan in that date window. Do not use window deletion for simple edits; update with create_plan_event using the same external_id instead. dry_run is required: false deletes, true previews only.

delete_note_events

Delete STAS note events. For one specific note, pass external_ids with the exact note:YYYY-MM-DD:<slug> id. Use oldest/newest window deletion only when replacing a whole note set in that date window. Do not delete user-created notes without a note: external_id. dry_run is required: false deletes, true previews only.

save_strategy

Save the athlete's long-term STAS strategy only after explicit user confirmation. Strategy is a compact long-term roadmap, not a calendar, not a weekly plan, and not a full coaching analysis. Target length is about 2500-4500 characters; hard maximum is 5000 characters. Required markdown structure: Strategy updated, Goal/direction, Current point, Roadmap, Where we are now, Nearest working block, Week-building rules, Constraints/preferences, Review triggers, Unknowns/assumptions. Do not write day-by-day or 8-week calendar progression inside strategy; that belongs in block planning or calendar tools. Use for meaningful changes to goals, constraints, current position, roadmap, or long-term training logic, not for one-off weekly edits. Before calling this tool, show the user the exact full markdown that will be saved and ask for explicit confirmation. Never show one version and save another.

read_profile_sections

Read controlled STAS profile memory sections with their hashes. Supports goals, rules, and profile when enabled by the server. Use the returned hash as previousHash before previewing a change.

preview_profile_section_change

Create a controlled preview for a goals, rules, or profile memory section change. Prefer structured fields so the server builds the exact web-profile text; newText is a legacy fallback. This does not update the athlete profile. Before commit, show the user the exact full text from the preview and ask for explicit confirmation of that exact text. Visible confirmation copy is governed by a separate approved UX spec; do not invent final chat-copy inside this tool call.

commit_profile_section_change

Commit a previously previewed goals, rules, or profile memory section change. Call this only after the user explicitly confirms the exact full text shown for that preview. The server updates the profile only if the section hash still matches the preview. Visible confirmation copy is governed by a separate approved UX spec.

read_profile_change_history

Read goals, rules, or profile memory change history. Use this to inspect previewed, committed, restored, or expired changes before restore decisions.

restore_profile_change

Restore a committed profile, goals, or rules profile memory change back to its previous text. Call this only after the user explicitly confirms the exact full text that will be restored. The server restores only if the current section still matches the committed change. Visible confirmation copy is governed by a separate approved UX spec.

Tools
14 tools verified via live probe
verified 2d ago
Server: stas-claude-mcpVersion: 1.0.2Protocol: 2024-11-05
Recent Probe Results
TimestampStatusLatencyConformance
Jun 5, 2026success1124.6msPass
Jun 5, 2026success798.8msPass
Jun 4, 2026success1773.2msPass
Jun 3, 2026success546.8msPass
May 30, 2026success442.5msPass
May 29, 2026success380.5msPass
May 29, 2026success345.4msPass
May 27, 2026success800.8msPass
May 27, 2026success946.4msPass
May 27, 2026success805msPass
Source Registries
mcp-registry
First Seen
Apr 17, 2026
Last Seen
Jun 4, 2026
Last Probed
Jun 5, 2026