MCP Health Coach
Allows discovering and reading live heart rate and HRV data from BLE health devices (e.g. Polar H10, Bangle.js 2).
Allows pulling biometric data from Fitbit (resting HR, HRV, sleep, steps, activity, body composition) as an optional data source for wellness coaching.
Allows pulling biometric data from Garmin Connect as an optional data source for wellness coaching.
Provides access to PubMed for searching peer-reviewed nutrition research with summaries and citations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Health CoachCalculate my daily calorie and macro targets for fat loss"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Health Coach
An MCP server that turns any MCP-compatible LLM client (Claude Desktop, etc.) into a wellness coach grounded in verified public data.
Core design principle: the coaching conversation lives in the LLM, but every factual claim — a nutrient value, a supplement warning, a screening recommendation — is backed by a real tool call to a government or verified source, not generated from the model's training data.
Demo
No API keys needed to see the core logic run — demo/run_example.py calls the local-computation tools directly (the same functions the MCP server exposes) using the persona from the coaching session example below:
python demo/run_example.py============================================================
1. calculate_daily_needs — establish calorie/macro targets
============================================================
{
"bmr": 1422,
"tdee": 2204,
"target_calories": 1704,
"macro_split": {
"protein_g": 122,
"carbs_g": 189,
"fat_g": 51
},
"goal": "lose",
"goal_label": "Fat loss (~0.5 kg/week deficit)",
"activity_level": "moderate",
"note": "~500 kcal/day deficit; expect ~0.5 kg loss per week",
"coaching_context": "For a 32-year-old female at 68 kg / 170 cm with moderate activity, targeting lose. Daily target: 1704 kcal (122g protein / 189g carbs / 51g fat)."
}
============================================================
2. calculate_bmi — quick screening metric
============================================================
{
"bmi": 23.5,
"category": "Normal weight",
"healthy_weight_range_kg": { "min": 53.5, "max": 72.0 },
"weight_kg": 68,
"height_cm": 170,
"note": "BMI is a population-level screening tool. It does not account for muscle mass, bone density, age, or fat distribution. Body fat percentage and waist circumference provide a fuller picture."
}
============================================================
3. calculate_water_intake — daily hydration target
============================================================
{
"daily_water_target_ml": 2780,
"range_ml": { "min": 2502, "max": 3058 },
"in_liters": 2.78,
"in_cups_8oz": 12,
"activity_level": "moderate",
"climate": "temperate",
"note": "This is an estimate for total fluid intake (water, beverages, food moisture). Pure water needs are roughly 70-80% of this figure. Urine color is the simplest real-time hydration check: pale yellow = well hydrated."
}
============================================================
4. calculate_calories_burned — factor in a planned workout
============================================================
{
"activity": "running (5mph / 12 min/mile)",
"duration_minutes": 30,
"weight_kg": 68,
"met_value": 8.3,
"intensity": "vigorous",
"calories_burned": 282,
"calories_per_minute": 9.4,
"source": "2011 Compendium of Physical Activities (Ainsworth et al.)",
"note": "MET-based estimates assume average metabolic efficiency. Individual variation (fitness level, terrain, pace consistency) typically puts real burn within ±15% of this estimate."
}The full experience — chaining in suggest_recipe, build_workout_plan, and get_preventive_care_recommendations against live external APIs — runs through an MCP client like Claude Desktop; see Setup below.
Related MCP server: shaughv-health-mcp
Tools (31 total)
Core coaching
Tool | Source | What it does |
| Local (Mifflin-St Jeor) | BMR, TDEE, calorie + macro targets |
| USDA FoodData Central → Open Food Facts | Unified nutrition facts by name or barcode |
| Edamam | Recipes matching calorie/macro/dietary targets |
| Wger + ExerciseDB | Exercises by muscle group, equipment, difficulty |
| Wger + program-design logic | Full weekly plan with sets/reps/rest |
| MedlinePlus (NLM/NIH) | Plain-language topic summaries + citations |
| openFDA | FDA-reported warnings and interactions |
| ODPHP MyHealthfinder | Age/sex-appropriate screenings + vaccines |
Body metrics & calculations
Tool | What it does |
| Body mass index + category |
| Body fat % (Navy method) |
| Daily hydration target |
| Healthy weight range for a given height |
| Calories burned for an activity + duration |
| Browse the local calorie-burn activity table |
Nutrition utilities
Tool | Source | What it does |
| Local (composes | Aggregate macros/calories across a meal's items |
| USDA FoodData Central → Open Food Facts | Side-by-side nutrition comparison |
| USDA FoodData Central | Foods ranked by a target nutrient |
| Local reference data | RDA, deficiency/toxicity signs, food sources |
| PubMed | Peer-reviewed research summaries + citations |
Biometrics & device integrations
Pulls live data from the user's own wearables/scales rather than static reference data. All integrations are optional and env-var gated — tools degrade gracefully with setup instructions when nothing is configured. See Wearable Integrations below.
Tool | What it does |
| Reports which wearable/device integrations are configured and ready |
| Unified resting HR, HRV, sleep, steps, active calories, body composition |
| Per-night sleep breakdown, averages, sleep-debt and quality coaching flags |
| 0–100 recovery score (Oura readiness or computed from HRV/RHR/sleep) |
| Daily HRV, 7-day rolling average, trend direction |
| Daily steps/active minutes vs. WHO 150 min/week guideline |
| Weight/body-fat trend, rate of change, aggressive-loss flag |
| TRIMP-based training load from workouts / HR zones |
| Journal lifestyle factors (sleep, alcohol, stress, caffeine, etc.) |
| Pearson correlations between journaled behaviors and next-day biometrics |
| Discover nearby BLE health devices |
| Stream live HR + RMSSD HRV from a BLE heart rate monitor |
Workflow
A typical coaching session chains tools in order:
1. calculate_daily_needs → establishes calorie/macro targets
2. get_food_nutrition → checks specific foods against those targets
3. suggest_recipe → finds meals that fit the daily plan
4. build_workout_plan → creates a training program for the goal
5. get_health_topic_summary → answers background health questions with citations
6. check_supplement_interaction → safety-checks supplements being considered
7. get_preventive_care_recommendations → surfaces relevant screeningsWearable Integrations
Each integration is activated purely by setting its env vars in .env — no code changes needed. get_available_integrations reports what's active and what's missing, including setup links.
Integration | Env vars | Extra install |
Oura Ring |
| — |
Polar (Accesslink) |
| — |
Withings |
| — |
Fitbit |
| — |
Garmin Connect |
|
|
Direct BLE (Polar H10, Bangle.js 2, PineTime, ESP32+MAX30102) |
|
|
Aggregation tools (get_biometric_summary, get_sleep_analysis, etc.) use whatever sources are active and label each metric with its source, generally preferring Oura > Withings > Garmin > Fitbit > Polar depending on the metric.
Safety
Emergency hard-guard: All tool inputs are checked against a hardcoded list of emergency phrases (chest pain, suicidal ideation, overdose, etc.) before any tool logic runs. Matching inputs return a fixed emergency-services redirect — this is not LLM-dependent.
Structural disclaimers: Every Health Reference tool (MedlinePlus, openFDA, ODPHP) wraps its payload with a source citation and standard disclaimer before returning to the model. The LLM cannot forget to include it.
Scope boundary: This tool covers general wellness, nutrition, and fitness. It does not diagnose, does not recommend medication dosages, and does not override physician guidance.
Setup
1. Install dependencies
cd mcp-health-coach
pip install -r requirements.txt2. Configure API keys
cp .env.example .env
# Edit .env with your keysRequired keys:
EDAMAM_APP_ID+EDAMAM_APP_KEY— free tier at developer.edamam.com
Optional (free-tier or keyless):
USDA_FDC_API_KEY— works without a key at low volumeEXERCISEDB_RAPIDAPI_KEY— enables GIF links in exercise results
3. Test locally
pytest tests/ -v4. Connect to Claude Desktop
Copy config/claude_desktop_config.example.json to your Claude Desktop config and update the path:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"health-coach": {
"command": "python",
"args": ["/absolute/path/to/mcp-health-coach/server.py"],
"env": {
"EDAMAM_APP_ID": "your-id",
"EDAMAM_APP_KEY": "your-key"
}
}
}
}Restart Claude Desktop. You should see the health-coach tools available.
5. Try a coaching session
Prompt example:
"I'm a 32-year-old woman, 68kg, 170cm, moderately active. I want to lose weight. Help me build a meal and workout plan."
Claude will chain: calculate_daily_needs → suggest_recipe → build_workout_plan → get_preventive_care_recommendations.
Project Structure
mcp-health-coach/
├── server.py # MCP entrypoint, tool registration (31 tools)
├── tools/
│ ├── nutrition.py # get_food_nutrition (USDA + OFF)
│ ├── recipes.py # suggest_recipe (Edamam)
│ ├── exercise.py # get_exercise (Wger + ExerciseDB)
│ ├── workout_plan.py # build_workout_plan (composition)
│ ├── daily_needs.py # calculate_daily_needs (pure logic)
│ ├── health_topics.py # get_health_topic_summary (MedlinePlus)
│ ├── supplement_interactions.py # check_supplement_interaction (openFDA)
│ ├── preventive_care.py # get_preventive_care_recommendations (ODPHP)
│ ├── body_metrics.py # BMI, body fat, water intake, weight range
│ ├── calorie_burn.py # calculate_calories_burned, list_activities
│ ├── meal_totals.py # get_meal_totals, compare_foods
│ ├── nutrient_search.py # find_foods_high_in_nutrient
│ ├── vitamin_info.py # get_vitamin_mineral_info
│ ├── research.py # search_nutrition_research (PubMed)
│ └── biometrics.py # wearable aggregation, recovery/strain/HRV, behavior journal
├── integrations/
│ ├── oura.py # Oura Ring API v2
│ ├── polar.py # Polar Accesslink API v3
│ ├── withings.py # Withings Health API
│ ├── fitbit.py # Fitbit Web API
│ ├── garmin.py # Garmin Connect (via garminconnect lib)
│ └── ble_gatt.py # Direct BLE Heart Rate Service (via bleak)
├── lib/
│ ├── cache.py # Shared TTL cache (1hr, 512 entries)
│ ├── http_client.py # Retry/timeout HTTP client
│ ├── normalization.py # Unified NutritionFact schema
│ ├── disclaimers.py # Structural disclaimer wrapper
│ └── safety_filters.py # Hardcoded emergency redirect
├── tests/
│ ├── test_daily_needs.py # BMR/TDEE formula correctness
│ ├── test_normalization.py # Cross-source schema consistency
│ ├── test_disclaimer_wrapper.py # Disclaimer always present
│ ├── test_safety_filters.py # Emergency patterns 100% blocked
│ ├── test_biometrics.py # Wearable aggregation, recovery/strain/HRV, journal
│ └── test_integrations.py # Per-device auth/parsing + degradation paths
├── config/
│ └── claude_desktop_config.example.json
├── demo/
│ └── run_example.py # Key-free walkthrough of the local-logic tool chain
├── .env.example
└── requirements.txtData Sources
All free-tier. No paid infrastructure required to run locally.
Source | What | Key required? |
USDA FoodData Central | Whole food nutrition | No (optional for higher rate limits) |
Open Food Facts | Branded/packaged foods | No |
Edamam | Recipes | Yes (free tier) |
Wger | Exercise database | No |
ExerciseDB | Exercise GIFs | Yes (free tier via RapidAPI) |
MedlinePlus (NLM) | Health topic summaries | No |
openFDA | Drug/supplement labels | No |
ODPHP MyHealthfinder | Preventive care guidelines | No |
PubMed | Nutrition research | No |
Oura / Polar / Withings / Fitbit / Garmin | Wearable biometrics | Yes, per-platform (see Wearable Integrations) |
Direct BLE hardware | Live heart rate / HRV | No (local Bluetooth only) |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceA local-first MCP server that enables AI agents to read user-authorized Google Health API v4 data from Fitbit, Pixel Watch, and partners via OAuth, with tokens never leaving the machine.Last updated2628333MIT
- Flicense-qualityBmaintenanceA remote MCP server that allows trusted LLM assistants to read Google Health/Fitbit data and log nutrition, hydration, and body measurements via the Google Health API.Last updated
- AlicenseAqualityCmaintenanceA Claude-compatible MCP server that exposes health-domain tools over 100% synthetic data, built with security and compliance in mind.Last updated4MIT
- Alicense-qualityCmaintenanceMCP server that retrieves health data from Google Health API and calendar events from Google Calendar, and enables ChatGPT to create personalized wellness plans that are written to a dedicated calendar only upon user approval.Last updatedMIT
Related MCP Connectors
Connect Apple Health, Fitbit, Oura, and Google Health Connect to Claude, ChatGPT, Grok, and Mistral. Wellness Project is a hosted MCP server: your devices sync into one account, and your AI reads your workouts, sleep, nutrition, and recovery in plain English. No exports, no CSV wrangling, no copy-paste, and nothing to self-host. Most health services ship no MCP server of their own. There is no official Fitbit MCP server, no Oura MCP server, no Hevy or TrainingPeaks MCP server, so an AI assistant cannot read that data on its own. The community repos that fill the gap are yours to run, refresh tokens for, and keep alive. Wellness Project is the hosted alternative. You connect your devices once over OAuth and the endpoint stays connected across every conversation. What you can ask once it is connected: - "How did my training look this week?" - "Show my sleep for the last month." - "How is my bench progressing?" - "Log today's lunch: chicken burrito bowl, about 700 calories." - "What was my resting heart rate trend against my HRV this quarter?" - "Which muscle groups have I been neglecting?" Wellness Project is a free AI health app, and the connector is free during early access. Create an account at https://wellnessproject.ai, connect a device under Settings, then add https://wellnessproject.ai/api/mcp as a custom connector in your AI client. Tool catalog, schemas, and setup guides: https://github.com/turnnoblindeye/wellness-project-mcp
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HamzaOuadid/mcp-health-coach'
If you have feedback or need assistance with the MCP directory API, please join our Discord server