AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Triathlon Coach Skill

mcp-henrikbrehm-triathlon-coach-skill · by HenrikBrehm

Triathlon coach skill for Claude Code: pulls swim/bike/run + recovery data from connected fitness MCP servers (Garmin, Strava, Coros, Whoop, Oura, ...), computes CTL/ATL/TSB, ACWR & 80/20 distribution deterministically, and recommends your next session - with hard safety guardrails.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add mcp-henrikbrehm-triathlon-coach-skill

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-henrikbrehm-triathlon-coach-skill)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Triathlon Coach Skill? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

triathlon-coach

A Claude Code Agent Skill that turns raw data from your connected fitness MCP servers into a structured triathlon training analysis and a concrete next-session recommendation.

What it does

When you ask Claude about your training ("How is my form?", "What should I train today?"), the skill pulls your recent activities and wellness data from every connected fitness MCP server, normalizes it into a canonical schema, and produces a coach-style report with these sections:

  1. Snapshot — fitness (CTL), fatigue (ATL), form (TSB), recovery status in one sentence
  2. Discipline breakdown — swim/bike/run volume, intensity, trend, balance check
  3. Load & recovery trends — CTL/ATL/TSB, ACWR, HRV/RHR/sleep trends
  4. Flags — overtraining, illness, injury, monotony, and load-spike signals
  5. Next session — discipline, type, duration, target zone, with a data-based rationale
  6. Block recommendation — where you are in the training cycle and what to adjust
  7. Data coverage & gaps — which sources and time window were used, what was missing

All numeric metrics are computed deterministically by a bundled Python script (scripts/compute_metrics.py) — the model never estimates training-load math in its head. Same input, same output, every time.

How it works

discover fitness MCP servers
        |
        v
pull activities + wellness (last 42-90 days, all sources)
        |
        v
normalize into canonical JSON schema
        |
        v
deduplicate cross-source double counts
        |
        v
scripts/compute_metrics.py  (deterministic: PMC, ACWR, monotony, intensity, recovery)
        |
        v
coach report + next-session recommendation (in your language)

The skill ships with reference files (zones, training load, recovery, periodization, data-source mapping, glossary) that Claude loads on demand to interpret the script output.

Supported data sources

The skill is source-agnostic. It discovers connected MCP servers by name pattern and works with any server that exposes activities and/or wellness data, including servers for:

Garmin Connect, Strava, Coros, Polar, Suunto, Wahoo, Whoop, Oura, intervals.icu, TrainingPeaks, Fitbit

If a source lacks a metric (e.g. no power data, no HRV), the skill degrades gracefully: it falls back to the next available load-estimation method (power → pace → heart rate → session RPE) and reports every gap explicitly instead of guessing.

Requirements

  • Claude Code, or claude.ai with custom skills enabled
  • Python 3.9+ on PATH (the metrics script uses the standard library only — no pip installs)
  • At least one fitness MCP server connected and authenticated

Installation

Claude Code

Copy the skill directory into your skills folder:

# personal scope (all projects)
cp -r skills/triathlon-coach ~/.claude/skills/

# or project scope (this project only)
cp -r skills/triathlon-coach .claude/skills/

claude.ai

Zip the skills/triathlon-coach/ directory and upload it as a custom skill in your claude.ai settings (Capabilities → Skills).

Usage

Ask in English or German — the report is rendered in the language you use:

  • "How is my form? Am I ready to add intensity this week?"
  • "Weekly training report, please."
  • "What should I train today?"
  • "Wie ist mein Formstand?"
  • "Was soll ich heute trainieren?"
  • "Mach mir eine Trainingsanalyse der letzten sechs Wochen."

What gets computed

All of the following come from compute_metrics.py — script-computed, never estimated by the model:

| Metric group | Contents | |---|---| | PMC | CTL (fitness), ATL (fatigue), TSB (form), daily series + ramp rate | | ACWR | Acute:chronic workload ratio, rolling (7d/28d) and EWMA variants | | Monotony & strain | Foster weekly monotony and strain | | Intensity distribution | 80/20 low/moderate/high split from time-in-zone or session averages | | Training load | Per-activity TSS via power, pace, heart rate, TRIMP, or session-RPE fallbacks | | Recovery | HRV, resting HR, and sleep 7-day trends vs 28-day baselines | | Flags | ACWR spikes, high monotony, fast CTL ramp, very low TSB, suppressed HRV, combined recovery alerts |

Repository layout

README.md
LICENSE
skills/triathlon-coach/
├── SKILL.md                                  # skill entry point (workflow, report template, guardrails)
├── references/
│   ├── zones-and-thresholds.md               # FTP/LTHR/CSS/pace zone systems
│   ├── training-load-and-pmc.md              # TSS variants, CTL/ATL/TSB, ACWR, monotony
│   ├── recovery-and-readiness.md             # HRV, RHR, sleep, recovery scores
│   ├── periodization-and-planning.md         # blocks, tapering, session selection
│   ├── data-sources-and-normalization.md     # per-source field mapping, dedup rules
│   └── glossary.md                           # one-paragraph metric definitions
└── scripts/
    ├── compute_metrics.py                    # deterministic metrics engine (stdlib only)
    └── example_input.json                    # synthetic fixture for testing

Disclaimer

This skill is decision support, not medical advice, and not a substitute for a physician or a certified coach. Your subjective feel and RPE always override the numbers — if the data says "go hard" and your body says otherwise, listen to your body. The skill never recommends training through pain, injury, or illness.

The skill adds no third-party services: it only reads from MCP servers you have connected yourself, and the bundled metrics script runs locally on your machine. Data pulled from your fitness accounts is processed in your Claude conversation like any other conversation content.

License

MIT — see [LICENSE](LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.