Skip to main content
Glama
amerhhh

WorkoutGuide MCP

by amerhhh

WorkoutGuide MCP

A guided workout companion that lives entirely inside conversations with Claude. No app, no screen mid-workout — Claude is the coach, this MCP server is the memory (exercise config, per-attempt logs, streaks, health metrics from Apple Health / Whoop / manual entry).

Design truth: SPEC.md · State truth: HANDOFF.md · Coaching personality: skills/workout-coach.md

Layout

apps/mcp-server/    MCP server (Express + StreamableHTTP), Drizzle + Postgres
packages/shared/    zod schemas — source of truth for tool inputs & payloads
skills/             workout-coach.md coaching skill

Related MCP server: aiTrainer

Local dev

pnpm install
cp .env.example .env          # fill in real values (openssl rand -hex 32 for secrets)
pnpm db:migrate               # applies apps/mcp-server/drizzle/*.sql
pnpm dev                      # tsx watch
pnpm test                     # vitest: merge/streak units + full e2e vs in-process Postgres

Production (Replit)

  • Repl: Claude-Workout-Guide — deploys from this repo via GitHub sync (repo is the source of truth, never edit on Replit directly).

  • Add the built-in PostgreSQL database to the Repl (provides DATABASE_URL).

  • Replit Secrets (no .env in prod): MCP_AUTH_TOKEN, MCP_PATH_SECRET (both openssl rand -hex 32), optionally PORT (default 3000), LOG_LEVEL.

  • .replit builds with pnpm, runs migrations, and starts the server on a reserved VM (always-on, required for an MCP endpoint).

Connecting Claude

Client

URL

Auth

claude.ai web / iOS connector

https://<repl-domain>/api/mcp/<MCP_PATH_SECRET>

secret path (layer 1)

Claude Code / API clients

https://<repl-domain>/api/mcp

Authorization: Bearer <MCP_AUTH_TOKEN> (layer 2)

Both /api/mcp/… and bare /mcp/… mounts are served. Health check: GET /api/healthz (or /healthz). Rotate either secret in Replit Secrets → redeploy → update the connector URL. Worst case: rotate, wipe DB, import_backup.

Schema notes (differences from SPEC §4)

  • exercise_logs.rest_started_at — added so check_time can measure an in-flight rest against the server clock.

  • exercises.retired_at — exercises with logged history are retired (hidden, history preserved) instead of hard-deleted; template switches use this too.

  • Backups carry a looseLogs array for attempts logged outside any session.

  • v0.6 adds ideas, plans, planned_sessions (SPEC §5c): training plans with a computed-status calendar, adherence scoring, and mid-run idea capture. 45 tools total. Client-facing usage lives in docs/claude-project-guide.md.

Related MCP Connectors

  • Calorie, workout and body-weight log inside ChatGPT and Claude. Log meals by text, photo or voice.

  • Talk to your own gym log. Reps is a free workout tracker for iPhone and Android; connect it to Claude, ChatGPT or any MCP client and ask about your workout history, personal records, exercise progression, weekly summaries, routines and training plan. The assistant can also save a new routine, edit one, save a whole plan, add custom exercises and exercise notes, always after you confirm in the chat. It cannot log a workout or delete your history. Requires a free Reps account created in the app; you sign in with a one-time email code.

    https://api.repsworkout.com/mcp
  • tri-train is a training platform for triathletes that syncs activities from Strava and Garmin and exposes them to Claude through a remote MCP server. Ask Claude how your last block went, why your run pace dropped, or whether you are fresh enough for Sunday's race, and it answers from your real data: activities with laps and grade-adjusted pace, weekly load and the performance management chart (CTL/ATL/TSB), sleep, HRV and resting heart rate, and your race calendar with predictions. Claude can also act: create and adjust planned workouts with structured intervals, push them to your Garmin watch, add races and write notes. Every change is journaled and can be undone. Read and write access are separate OAuth scopes, and the server enforces them on every call. Built and hosted in Switzerland by a triathlete; data stays on our own servers (Swiss revDSG / GDPR).

    https://tri-train.com/api/mcp
  • Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport. Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Personal workout coach MCP server that logs exercises in natural language, tracks progress with SQLite, and provides coaching signals like estimated 1RM and volume trends.
    6
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Self-hosted fitness tracking MCP server that gives AI assistants access to your nutrition, training, weight, sleep, and accomplishment data via 77 tools and 5 resources. Enables natural-language logging and querying of personal health metrics through Claude or ChatGPT.
    72 npm
    1
    BSD 2-Clause "Simplified"
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with simulated fitness data (activity history, wellness, pain logging, coaching rules) via MCP protocol, allowing Claude Desktop to query and log data through natural language.
    MIT