MCP resources and prompts
icuvisor exposes MCP Resources for long-form reference material and MCP Prompts for curated starting points in clients that support them. Resources and prompts keep bulky guidance out of every tool description while still letting an AI client fetch it when needed.
MCP Prompts are server-registered workflows that clients can invoke when they support prompts/list. Claude Project instructions are client-side standing instructions that apply across ordinary chats; use the Claude Project instructions guide when you want timezone/date, grounding, and stale-data guardrails even outside a specific MCP Prompt.
Resources
| URI | Name | MIME type | Description |
|---|---|---|---|
icuvisor://workout-syntax | workout_syntax | text/markdown | Intervals.icu structured-workout DSL syntax supported by icuvisor. |
icuvisor://event-categories | event_categories | text/markdown | intervals.icu calendar event category enum values and meanings. |
icuvisor://custom-item-schemas | custom_item_schemas | text/markdown | Representative content schemas for intervals.icu custom item types. |
icuvisor://analysis-formulas | analysis_formulas | text/markdown | Canonical analyzer formula refs for HR drift, Pw:HR decoupling, polarization index, EF, VI, and z-score; analyzer responses link to these entries through _meta.formula_ref. |
icuvisor://athlete-profile | athlete_profile | application/json | Dynamic cached athlete profile, units, thresholds, zones, and response metadata shaped like get_athlete_profile. This resource is registered when the server has a profile client and is disabled for coach-mode startup to avoid one cached profile representing a whole roster. |
Clients that do not expose resources/list can still use the equivalent MCP tools or ordinary docs pages. Resource URIs are stable identifiers for clients that support MCP Resources.
Prompts
| Prompt | Arguments | Description | Code-truth workflow |
|---|---|---|---|
training_analysis | Optional start_date, end_date | Guide a terse training-load, trend, and best-effort readout from existing icuvisor read tools. | Reads icuvisor://athlete-profile; uses get_athlete_profile, get_fitness, get_training_summary, get_best_efforts, and get_activities. |
recovery_check | Optional date, lookback_days | Guide a wellness-led recovery and readiness check with correct sleep scales and staleness handling. | Reads icuvisor://athlete-profile; uses get_athlete_profile, get_wellness_data, get_fitness, and get_today for today-specific planned-event tags, indoor flags, weather availability/provenance, and completed-activity context. Weather unavailable from get_today must be stated rather than invented; indoor alternatives are recommendations/previews until the user approves an exact calendar change, and the prompt avoids creating a second active workout for the same session. |
weekly_planning | Optional week_start | Guide week planning from calendar events, training plans, and completed activity context. | Reads icuvisor://athlete-profile, icuvisor://event-categories, and icuvisor://workout-syntax; uses get_athlete_profile, resolve_calendar_dates, get_planning_context, get_events, get_training_plan, get_fitness, get_training_summary, get_activities, compute_compliance_rate, and icuvisor_list_advanced_capabilities. |
weekly_review | Optional week_start, lookback_days, include_next_week | Guide a structured review of the previous training week and optional preview of the upcoming week using existing icuvisor tools. | Reads icuvisor://athlete-profile and icuvisor://event-categories; uses get_athlete_profile, get_wellness_data, get_fitness, get_training_summary, get_activities, get_events, get_training_plan, compute_zone_time, compute_load_balance, compute_compliance_rate, analyze_trend, and icuvisor_list_advanced_capabilities. |
shareable_training_report | Optional report_type, start_date, end_date, race_date, audience | Guide a privacy-safe Markdown report draft the athlete can review and share manually. | Reads icuvisor://athlete-profile and icuvisor://event-categories; uses get_athlete_profile, get_fitness, get_training_summary, get_activities, get_events, get_training_plan, get_wellness_data, compute_zone_time, compute_load_balance, analyze_trend, and icuvisor_list_advanced_capabilities. It drafts Markdown first, offers simple static HTML conversion only in chat after review, and never publishes, uploads, hosts, or auto-shares the report. |
plan_health_review | Optional planned_start, planned_end, completed_lookback_days, race_date, race_name | Guide a transparent plan-health audit using adherence, load/form projection, wellness caveats, and race-date risk from deterministic tools. | Reads icuvisor://athlete-profile, icuvisor://event-categories, and icuvisor://analysis-formulas; uses get_athlete_profile, resolve_calendar_dates, get_events, get_training_plan, get_activities, compute_compliance_rate, get_fitness, get_training_summary, compute_load_balance, get_fitness_projection, get_wellness_data, and icuvisor_list_advanced_capabilities. |
race_week_taper | Required race_date; optional race_name | Guide race-week taper analysis using calendar race context and recent fitness/load reads. | Reads icuvisor://athlete-profile, icuvisor://event-categories, and icuvisor://workout-syntax; uses get_athlete_profile, resolve_calendar_dates, get_events, get_training_plan, get_fitness, get_training_summary, get_activities, compute_compliance_rate, get_fitness_projection, and icuvisor_list_advanced_capabilities. |
coach_athlete_onboarding | Optional athlete_id, start_date, end_date | Guide a coach through authorized athlete/team onboarding using existing read-only coach-mode tools. | Reads icuvisor://athlete-profile and icuvisor://event-categories; uses list_athletes, select_athlete, get_athlete_profile, get_activities, get_training_summary, get_fitness, get_wellness_data, get_events, get_training_plan, and icuvisor_list_advanced_capabilities. It verifies the selected athlete identity/authorization, returns thresholds/zones, activity, wellness/HRV, races/events, device/source, and missing-data checklist rows, and stays read-only. |
coach_roster_triage | Required athlete_id; optional start_date, end_date | Guide a coach-mode per-athlete scan; athlete_id is a selector, not a credential. | Reads icuvisor://athlete-profile and icuvisor://event-categories; uses get_athlete_profile, get_wellness_data, get_fitness, get_training_summary, get_events, and get_activities. |
Prompt guardrails
The rendered prompts include two default guardrails unless a prompt overrides them; shareable_training_report keeps the no-API-key rule and adds manual review/no-publish/no-host/no-heavy-payload sharing guardrails, plan_health_review keeps both and adds no-black-box-score and reviewed-before-write rules, and coach_athlete_onboarding adds selector-not-credential, consent-outside-chat, no-private-token, review/redact, and no-live-account-test guardrails:
- Do not request or accept intervals.icu API keys in chat.
- Prefer terse default tool responses; use
include_fullonly when the user asks or evidence is missing.
The race_week_taper and coach_roster_triage prompts validate required arguments before rendering. Missing race_date or athlete_id returns a short user-facing error instead of a stack trace. coach_athlete_onboarding has no required arguments but validates athlete_id when supplied. plan_health_review has no required arguments; when no race event is found, it treats any supplied race date as a scenario anchor and says that no confirmed race event was found.