Health

MCP server that aggregates Whoop and Strava data for unified health insights and analyses.
  • python

0

GitHub Stars

python

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "marholoubek-health_mcp": {
      "command": "/path/to/health_mcp/venv/bin/python",
      "args": [
        "-m",
        "src.server"
      ],
      "env": {
        "HEALTH_MCP_WHOOP_CLIENT_ID": "your_whoop_client_id",
        "HEALTH_MCP_STRAVA_CLIENT_ID": "your_strava_client_id",
        "HEALTH_MCP_WHOOP_CLIENT_SECRET": "your_whoop_client_secret",
        "HEALTH_MCP_STRAVA_CLIENT_SECRET": "your_strava_client_secret"
      }
    }
  }
}

You run a Health MCP Server to aggregate and analyze health and fitness data from multiple providers, starting with Whoop and Strava. It gives you unified access to health metrics, trends, and personalized insights from all connected sources, so you can make informed decisions about sleep, recovery, training, and overall health.

How to use

Connect your providers and authenticate to start collecting data. You will access tools to view sleep, recovery, strain, activities, and insights from each provider, either separately or in combination for a complete health overview.

How to install

Prerequisites: Python 3.10 or higher. Ensure you have credentials for at least one provider (Whoop and/or Strava). Then follow these steps to set up your MCP server locally.

# 1) Clone the project directory
cd /path/to/health_mcp

# 2) Create a virtual environment and activate it
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 3) Install dependencies
pip install -r requirements.txt

# 4) Configure API credentials by copying the example and editing
cp config.example.yaml config.yaml
# Edit config.yaml to include credentials for Whoop and/or Strava

# 5) Run the MCP server
python -m src.server

Configuration and security

Configure OAuth credentials for one or both providers. Create a local configuration file with client IDs, secrets, and redirect URIs. Credentials enable adapters automatically when present, and you can explicitly enable/disable adapters with an enabled flag in the config.

Environment variables provide an alternative to config files. You can export credentials in your shell environment and reference them when starting the MCP server.

Troubleshooting

Not authenticated errors: run the corresponding authenticate tool for each provider you configured.

Missing configuration errors: ensure your config.yaml (or environment variables) contains the correct credentials for each enabled adapter.

OAuth callback issues: verify port 8787 is available and the redirect URI exactly matches what you configured in the provider’s portal.

Token refresh failures: remove the stored tokens file and re-authenticate.

Adapter not showing up: confirm credentials are configured and review server logs for initialization errors.

Notes

Tokens are stored securely at your home directory under ~/.health_mcp/tokens.json with strict permissions.

Available tools

list_adapters

List all available adapters and their authentication status

whoop_authenticate

Initiate OAuth2 login flow for Whoop

whoop_check_auth

Check current authentication status for Whoop

get_user_profile

Retrieve the user profile and body measurements from Whoop

get_sleep_summary

Fetch recent sleep data including performance, stages, and needs from Whoop

get_sleep_history

Retrieve sleep history over a date range with trends from Whoop

get_recovery_score

Obtain the latest recovery score with HRV and status from Whoop

get_recovery_history

View recovery trends over time from Whoop

get_strain_today

Get current day strain and heart rate from Whoop

get_strain_history

Analyze daily strain patterns over time from Whoop

get_workout_history

Fetch workout details with heart rate zones and calories from Whoop

get_health_overview

Provide a comprehensive health dashboard combining data from all connected providers

analyze_sleep_patterns

Analyze sleep timing, consistency, and provide recommendations

analyze_recovery_factors

Identify correlations affecting recovery across data sources

get_weekly_report

Generate week-over-week health trends report

get_training_readiness

Offer workout intensity recommendations based on health data

strava_authenticate

Initiate OAuth2 login flow for Strava

strava_check_auth

Check current Strava authentication status

get_strava_profile

Fetch Strava athlete profile, all-time stats, and gear

get_strava_activities

Retrieve recent Strava activities with distance, pace, and HR

get_strava_activity_detail

Get detailed Strava activity data with laps and segments

get_strava_weekly_summary

Provide weekly Strava training summary by activity type

get_strava_zones

Return configured Strava HR and power training zones

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
Health MCP Server - marholoubek/health_mcp | VeilStrat