Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Coach MCP

von snoozeliebVersion 1.4.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.snoozelieb/coach-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Adaptive AI training coach MCP server backed by Garmin Connect

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges
  • Das musst du eintragen: GARMIN_EMAIL, GARMIN_PASSWORD

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: GARMIN_EMAIL, GARMIN_PASSWORD, COACH_DATA_DIR

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "coach": {
      "command": "uvx",
      "args": [
        "garmin-coach-mcp"
      ],
      "env": {
        "GARMIN_EMAIL": "your-value",
        "GARMIN_PASSWORD": "your-value",
        "COACH_DATA_DIR": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add coach --env GARMIN_EMAIL=your-value --env GARMIN_PASSWORD=your-value --env COACH_DATA_DIR=your-value -- uvx garmin-coach-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "coach": {
      "command": "uvx",
      "args": [
        "garmin-coach-mcp"
      ],
      "env": {
        "GARMIN_EMAIL": "your-value",
        "GARMIN_PASSWORD": "your-value",
        "COACH_DATA_DIR": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "coach": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "garmin-coach-mcp"
      ],
      "env": {
        "GARMIN_EMAIL": "your-value",
        "GARMIN_PASSWORD": "your-value",
        "COACH_DATA_DIR": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • GARMIN_EMAIL erforderlich env
    Garmin Connect account email
  • GARMIN_PASSWORD geheim erforderlich env
    Garmin Connect account password
  • COACH_DATA_DIR env
    Directory for athlete data files (defaults to the git-checkout data/ dir when run from a checkout, otherwise a per-user data directory)

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto snoozelieb bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 18374 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 96 % der anderen 18374 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 18374 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Coach MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: GARMIN_EMAIL, GARMIN_PASSWORD

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.4.0) kam gestern in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Happo

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert vorgestern
Installieren

Happo

von happo.io

Review Happo's visual and accessibility diffs: inspect comparisons, accept or reject, report flakes.

Läuft in der CloudAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

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

Jump to Connect your MCP client and use uvx as the command.

Option B: from source
git clone https://github.com/snoozelieb/coach-mcp.git

cd coach-mcp

python -m venv .venv

Linux/macOS:

source .venv/bin/activate

Windows:

.venv\Scripts\activate

pip install -r requirements.txt cp .env.example .env # then edit: GARMIN_EMAIL, GARMIN_PASSWORD python server.py

Connect your MCP client

The server needs two environment variables: GARMIN_EMAIL and GARMIN_PASSWORD. Optional: COACH_DATA_DIR (where your coaching data lives); COACH_TOKEN_DIR, COACH_TRANSPORT and COACH_CODE_MODE are covered under Security & Privacy and Advanced. From a source checkout, a .env file works too.

After one successful login the server runs from the stored Garmin tokens (garmin-coach-login performs that login, MFA included), so a client that cannot expand variables in its config can leave GARMIN_PASSWORD out.

To run the server or the helpers from a terminal, set the two variables in that shell first. PowerShell and bash quote differently:

$env:GARMIN_EMAIL = "you@example.com"

$env:GARMIN_PASSWORD = "your-password"

export GARMIN_EMAIL=you@example.com GARMIN_PASSWORD=your-password
Claude Code
claude mcp add coach-mcp \

--env GARMIN_EMAIL=you@example.com \ --env GARMIN_PASSWORD=your_garmin_password \ -- uvx garmin-coach-mcp

Or in .mcp.json (Claude Code expands ${VAR} from your shell environment, so a committed file holds no secret):

{

"mcpServers": { "coach-mcp": { "command": "uvx", "args": ["garmin-coach-mcp"], "env": { "GARMIN_EMAIL": "you@example.com", "GARMIN_PASSWORD": "${GARMIN_PASSWORD}", "COACH_DATA_DIR": "/path/to/your/coach-data" } } } }

Running from source instead: claude mcp add coach-mcp -- python /full/path/to/coach-mcp/server.py

Claude Desktop

In claude_desktop_config.json (Settings → Developer → Edit Config):

{

"mcpServers": { "coach-mcp": { "command": "uvx", "args": ["garmin-coach-mcp"], "env": { "COACH_DATA_DIR": "/path/to/your/coach-data" } } } }

Claude Desktop reads this file as written (no variable expansion), so keep the Garmin password out of it: run garmin-coach-login once in a terminal with GARMIN_EMAIL and GARMIN_PASSWORD set for that command, and the server logs in from the stored tokens from then on. When they expire the tools say so; run the login again.

Cursor

In .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{

"mcpServers": { "coach-mcp": { "command": "uvx", "args": ["garmin-coach-mcp"], "env": { "GARMIN_EMAIL": "you@example.com", "GARMIN_PASSWORD": "${env:GARMIN_PASSWORD}", "COACH_DATA_DIR": "/path/to/your/coach-data" } } } }

If you installed with pip install garmin-coach-mcp instead of uvx, use "command": "garmin-coach-mcp" with no args in any of the blocks above.

First run

  1. Create your profile. Run the interactive wizard (installed copies have the console script; a source checkout can run the script):
   garmin-coach-setup                 # pip / uvx install

python scripts/setup_wizard.py # source checkout

Until a profile exists the server runs in setup mode: plan, program and push writes answer setup_required and name the data directory they looked in.

It creates your athlete profile, training config, and empty plan/memory files in the data directory. Alternatively, create the two required files by hand and let the coach fill in the rest via conversation:

   echo '{"personal":{"name":null},"injury_history":[],"life_constraints":{}}' > data/athlete.json

echo '{"events":[],"current_block":{"phase":"base"}}' > data/training_config.json

  1. Pull your Garmin baseline. In your MCP client, say:

"Run refresh_athlete_baseline and set up my training."

The coach pulls your name, weight, age, HR data, and training capacity from Garmin, then starts the onboarding conversation — goals, constraints, injury history, race calendar.

  1. Garmin MFA / expired session. Garmin logins are token-cached. If tools start returning AUTH_REQUIRED, recover with:
   garmin-coach-login                 # pip / uvx install

python scripts/garmin_login.py # source checkout

It does a fresh credential login, prompts for the MFA code if Garmin asks, and saves new tokens. Restart the MCP server afterwards.

How it works

  1. Snapshot first — every coaching conversation starts from get_coaching_snapshot(): current time context, 7-day week grid (rest days explicit), fitness metrics, plan adherence, open anomalies, injuries, sleep gate.
  2. Load hierarchy before prescribing — overall ACWR (injury gate, 0.8–1.3 sweet spot), then sport-specific ACWR (spike detection), then sport-specific CTL (race readiness).
  3. Hard gates are code, not vibes — update_weekly_plan and push_plan_to_garmin reject sessions that violate an active injury's restricted activities, and every non-rest session must carry a purpose or the save is refused. Multi-week programs (training_program) are rejected if their starting capacity contradicts your actual history.
  4. Grounded in what you've actually done — prescriptions are anchored to your demonstrated per-sport capacity from recent sessions, not template numbers; a weekly plan that outruns that history comes back with grounding_warnings.
  5. Curiosity with memory — planned-vs-actual anomalies (missed session, type mismatch, activity on a rest day) register once with a lifecycle (open → asked → resolved); the coach asks you what happened instead of silently assuming.
  6. Everything persists — decisions, approvals, adaptation patterns, and season lifecycle (race debriefs, phase transitions) live in local JSON and carry across sessions.

MCP surface

54 tools — you don't call them directly; the coach uses them during conversation:

CategoryTools
Coaching coreget_coaching_snapshot (canonical, sectioned), get_compliance_report, get_coaching_score
Planningget_weekly_plan, update_weekly_plan, preview_workout (render one session the way the watch will show it, or fetch the session contract), push_plan_to_garmin (preview with the step tree per session, then confirm), training_program (action=get/set; multi-week programs, capacity-anchored and injury-gated), get_week_constraints, get_weekly_prescription, get_periodization_status, update_phase
Garmin dataquery_metrics (kind=fitness/sport_history/intensity/daily/readiness/personal_records), get_activities_range
Athleteget_athlete, update_athlete, set_ftp, set_threshold_pace, analyze_ftp_test, refresh_athlete_baseline, refresh_fitness_history, backfill_history, get_onboarding_guide
Methodologyget_methodology, update_methodology
Racesraces (action=list/add/update/research), remove_race
Strengthsync_strength_session, get_strength_baseline, approve_progression, set_exercise_preference, generate_strength_workout, add_exercise
Injuriesdiagnose_injury, research_injury, update_injury_status
Researchresearch_exercise, list_exercises, research_sport
Memorylog_coaching_decision, get_active_decisions, update_decision_status, record_athlete_response, get_response_patterns, resolve_anomaly
Approvalspropose_coaching_action, list_pending_approvals, approve_proposal, reject_proposal
Weatherget_weather_outlook (wind, gusts, rain and daylight at the profile location — Open-Meteo, no key), set_location
Interactivegenerate_smart_brief, interactive_check_in

Every tool carries MCP annotations (read-only / destructive / idempotent / open-world), enforced by tests.

7 prompts: weekly_planning, morning_brief, injury_assessment, week_review, onboarding, race_program, author_session.

7 resources: coach://athlete/profile, coach://plan/current, coach://config/training, coach://coaching/decisions, coach://context/now, coach://coaching/doctrine (the long-form coaching doctrine), coach://authoring/contract (the generated session contract).

Security & Privacy

Everything stays on your machine:

  • Credentials: GARMIN_EMAIL/GARMIN_PASSWORD live in your MCP client config or a local .env. Garmin OAuth tokens are cached in a local token store (.garth/ in a source checkout, a per-user garmin-tokens directory for installed copies; override with COACH_TOKEN_DIR).
  • Health data: all coaching data (profile, plans, fitness history, sleep, coaching memory) is local JSON in your data directory. There is no backend, no telemetry, no analytics.
  • What leaves your machine: requests to Garmin's own API (your credentials/tokens, sent only to Garmin); whatever your MCP client sends to its LLM as part of the conversation; optional public web-page fetches when the coach researches a race, injury, or exercise. Nothing else: the FastMCP startup banner that would check PyPI for updates is disabled.
  • Network exposure: stdio by default, nothing listens. The HTTP transports need COACH_HTTP_TOKEN and validate Host/Origin on every request; research fetches go only to public https addresses, pinned to the address that passed the check.
  • Single athlete per data directory by design. For multiple athletes, run separate server instances with separate COACH_DATA_DIRs.

See SECURITY.md for details and how to report issues.

Data directory

Resolution order: COACH_DATA_DIR env var → data/ in a source checkout → a per-user data directory (created on first run for installed packages). The only file shipped with the package is methodology.json (safety rules, race templates, personas); everything personal is created locally and never committed.

Advanced

# HTTP transport instead of stdio: a bearer token is required (clients send

"Authorization: Bearer "); Host and Origin headers are checked on

every request. COACH_HTTP_INSECURE=1 waives the token on 127.0.0.1 only.

COACH_HTTP_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')" COACH_TRANSPORT=http FASTMCP_PORT=8000 garmin-coach-mcp

Code Mode (search/execute meta-tools instead of 52 individual tools)

pip install fastmcp[code-mode] COACH_CODE_MODE=1 garmin-

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen