Skip to content

Getting Started

Prerequisites

  • Python 3.11+
  • A Garmin, WHOOP, or Strava account (at least one)
  • An API key for at least one LLM provider (for the AI chat feature)

Installation

git clone https://github.com/ladkam/coaching-mcp.git
cd coaching-mcp

# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Copy the example environment file
cp .env.example .env

Configuration

Edit .env with your credentials. At minimum you need:

  1. At least one device — Garmin credentials or WHOOP/Strava OAuth app
  2. An LLM API key — for the AI coaching chat (Anthropic recommended)
# .env (minimum viable config)
GARMIN_EMAIL=your@email.com
GARMIN_PASSWORD=your-garmin-password
ANTHROPIC_API_KEY=sk-ant-...

See Configuration for the full variable reference.

Running the Server

Web UI Mode (HTTP)

python server.py --http

Opens a web server at http://localhost:8000 with:

  • Dashboard with daily health metrics
  • AI coaching chat
  • Workout logging
  • Settings and device management

MCP Mode (stdio)

python server.py

Runs as an MCP server over stdio for integration with AI clients like Claude Desktop. See Claude Desktop setup.

Connecting Devices

Garmin

Set your Garmin Connect credentials in .env:

GARMIN_EMAIL=your@email.com
GARMIN_PASSWORD=your-garmin-password

Cadence uses the Garmin Connect API directly — no developer app registration needed.

WHOOP

WHOOP requires an OAuth app. See the WHOOP integration guide for setup.

Strava

Strava also requires an OAuth app. See the Strava integration guide for setup.

First Steps

Once the server is running:

  1. Sign up at http://localhost:8000/signup
  2. Connect devices in Settings or during onboarding
  3. Check the dashboard for your daily briefing
  4. Try the chat — ask "How did I sleep last night?" or "Am I ready to train today?"

Running Tests

pip install pytest
pytest