
Coach Mcp
Connects to your Garmin Connect account and exposes 48 tools for AI-driven training prescription with hard enforcement gates. It pulls real fitness data (ACWR, CTL, HR zones, sleep, personal records) and won't let you or the LLM approve plans that violate injury restrictions or load management rules. Everything persists locally: athlete profile, weekly plans, coaching decisions, anomaly tracking (missed sessions, rest day violations), and adaptation patterns across conversations. You'd reach for this if you want an opinionated coach that actually says no when your enthusiasm exceeds capacity, not just a chatbot that agrees with whatever you propose. Includes strength progression tracking, race calendar integration, and Garmin workout sync.
- GitHub stars
- 3
- tools
- 53
- auth
- Secret needed
- transport
- STDIO
- env vars
- 3
- last updated
- Nov 6, 2026
Tools
53 toolsPublic tool metadata for what this MCP can expose to an agent.
get_coaching_snapshotCanonical, sectioned coaching snapshot.
Canonical, sectioned coaching snapshot.
No parameter schema in public metadata yet.
get_compliance_report
No parameter schema in public metadata yet.
get_coaching_score
No parameter schema in public metadata yet.
get_weekly_plan
No parameter schema in public metadata yet.
update_weekly_plan
No parameter schema in public metadata yet.
preview_workoutRender one session the way the watch will show it, or fetch the session contract.
Render one session the way the watch will show it, or fetch the session contract.
No parameter schema in public metadata yet.
push_plan_to_garminPreview with the step tree per session, then confirm.
Preview with the step tree per session, then confirm.
No parameter schema in public metadata yet.
training_programMulti-week programs, capacity-anchored and injury-gated (action=get/set).
Multi-week programs, capacity-anchored and injury-gated (action=get/set).
No parameter schema in public metadata yet.
get_week_constraints
No parameter schema in public metadata yet.
get_weekly_prescription
No parameter schema in public metadata yet.
get_periodization_status
No parameter schema in public metadata yet.
update_phase
No parameter schema in public metadata yet.
query_metricskind=fitness/sport_history/intensity/daily/readiness/personal_records.
kind=fitness/sport_history/intensity/daily/readiness/personal_records.
No parameter schema in public metadata yet.
get_activities_range
No parameter schema in public metadata yet.
get_athlete
No parameter schema in public metadata yet.
update_athlete
No parameter schema in public metadata yet.
set_ftp
No parameter schema in public metadata yet.
set_threshold_pace
No parameter schema in public metadata yet.
analyze_ftp_test
No parameter schema in public metadata yet.
refresh_athlete_baseline
No parameter schema in public metadata yet.
refresh_fitness_history
No parameter schema in public metadata yet.
backfill_history
No parameter schema in public metadata yet.
get_onboarding_guide
No parameter schema in public metadata yet.
get_methodology
No parameter schema in public metadata yet.
update_methodology
No parameter schema in public metadata yet.
racesRace management (action=list/add/update/research).
Race management (action=list/add/update/research).
No parameter schema in public metadata yet.
remove_race
No parameter schema in public metadata yet.
sync_strength_session
No parameter schema in public metadata yet.
get_strength_baseline
No parameter schema in public metadata yet.
approve_progression
No parameter schema in public metadata yet.
set_exercise_preference
No parameter schema in public metadata yet.
generate_strength_workout
No parameter schema in public metadata yet.
add_exercise
No parameter schema in public metadata yet.
diagnose_injury
No parameter schema in public metadata yet.
research_injury
No parameter schema in public metadata yet.
update_injury_status
No parameter schema in public metadata yet.
research_exercise
No parameter schema in public metadata yet.
list_exercises
No parameter schema in public metadata yet.
research_sport
No parameter schema in public metadata yet.
log_coaching_decision
No parameter schema in public metadata yet.
get_active_decisions
No parameter schema in public metadata yet.
update_decision_status
No parameter schema in public metadata yet.
record_athlete_response
No parameter schema in public metadata yet.
get_response_patterns
No parameter schema in public metadata yet.
resolve_anomaly
No parameter schema in public metadata yet.
propose_coaching_action
No parameter schema in public metadata yet.
list_pending_approvals
No parameter schema in public metadata yet.
approve_proposal
No parameter schema in public metadata yet.
reject_proposal
No parameter schema in public metadata yet.
get_weather_outlookWind, gusts, rain and daylight at the profile location (Open-Meteo, no key).
Wind, gusts, rain and daylight at the profile location (Open-Meteo, no key).
No parameter schema in public metadata yet.
set_location
No parameter schema in public metadata yet.
generate_smart_brief
No parameter schema in public metadata yet.
interactive_check_in
No parameter schema in public metadata yet.
Sponsors
Configuration
GARMIN_EMAIL*Garmin Connect account email
GARMIN_PASSWORD*secretGarmin Connect account password
COACH_DATA_DIRDirectory for athlete data files (defaults to the git-checkout data/ dir when run from a checkout, otherwise a per-user data directory)
Readme
coach-mcp
An opinionated AI training coach as an MCP server. It pulls your real data from Garmin Connect and prescribes with authority — science-based load management (ACWR), code-enforced injury gates (the server rejects plans that violate an active injury restriction, no matter what the LLM says), and persistent coaching memory so decisions, rationale, and your adaptation patterns survive between conversations. It will tell you "no" when your enthusiasm exceeds your capacity.
All health data and credentials stay on your machine — see Security & Privacy.
Quickstart
You need Python 3.12+, a free Garmin Connect account, and an MCP client (Claude Code, Claude Desktop, or Cursor).
Option A: uvx (recommended)
No install step — your MCP client runs the server on demand:
uvx garmin-coach-mcp
Details
- Repository
- github.com/snoozelieb/coach-mcp
- Package
garmin-coach-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active