WorkoutGuide MCP
Enables workout tracking and coaching within Claude conversations, managing exercise configs, logs, streaks, and health metrics via an MCP server with PostgreSQL.
README
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
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
.envin prod):MCP_AUTH_TOKEN,MCP_PATH_SECRET(bothopenssl rand -hex 32), optionallyPORT(default 3000),LOG_LEVEL. .replitbuilds 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>/mcp/<MCP_PATH_SECRET> |
secret path (layer 1) |
| Claude Code / API clients | https://<repl-domain>/mcp |
Authorization: Bearer <MCP_AUTH_TOKEN> (layer 2) |
Health check: GET /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 socheck_timecan 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
looseLogsarray for attempts logged outside any session.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.