# Delx Wellness Full Agent Context Open-source MCP connectors for WHOOP, Oura, Garmin, Strava, Fitbit, Withings, Apple Health and Polar. Connect wearables and health apps once. Use them in Claude, Cursor, ChatGPT, Hermes or any MCP client. Local-first. Agents never receive your tokens. ## Project - Repository: https://github.com/davidmosiah/delx-wellness - License: https://github.com/davidmosiah/delx-wellness/blob/main/LICENSE - Canonical domain: https://wellness.delx.ai - Architecture: independent local-first MCP connectors, each installed from its own package or repo. - Privacy stance: provider tokens stay on the user's machine or server; agents receive MCP responses, not OAuth secrets. ## Connector catalog ### WHOOP - Package: whoop-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 - Summary: A local-first MCP connector that lets agents reason over WHOOP recovery, sleep, cycles and workouts without handing OAuth tokens to the model. - Best for: Best for recovery-led athletes, coaches and personal agents that need a daily readiness, sleep and load briefing before recommending training. - Signals: Recovery, HRV, Sleep, Strain, Workouts - Install: npx -y whoop-mcp-unofficial setup - Doctor: npx -y whoop-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/whoop | GitHub: https://github.com/davidmosiah/whoop-mcp | npm: https://www.npmjs.com/package/whoop-mcp-unofficial | Docs: https://whoopmcp.vercel.app/ | Provider docs: https://developer.whoop.com/api/ Data availability: - Recovery score, HRV, RHR, SpO2, skin temperature: available. Available when WHOOP returns a scored recovery. - Sleep sessions, stages and performance: available. All scored sleep records. - Cycles, day strain and kilojoules: available. Physiological cycle records. - Workouts, sport and heart-rate zones: available. All recorded workouts exposed by the public API. - Profile and body measurements: available. Height, weight and max heart rate. - Continuous heart-rate or live BLE telemetry: not_available. Not exposed by the public WHOOP API; this connector is not a Bluetooth listener. Agent tools: - Start here: `whoop_connection_status`, `whoop_daily_summary`, `whoop_weekly_summary` - Auth and diagnostics: `whoop_capabilities`, `whoop_agent_manifest`, `whoop_privacy_audit`, `whoop_cache_status`, `whoop_get_auth_url`, `whoop_exchange_code`, `whoop_revoke_access` - Profile: `whoop_get_profile`, `whoop_get_body_measurements` - Collections: `whoop_list_recoveries`, `whoop_list_sleeps`, `whoop_list_cycles`, `whoop_list_workouts` - Single records: `whoop_get_cycle`, `whoop_get_sleep`, `whoop_get_workout`, `whoop_get_cycle_sleep`, `whoop_get_cycle_recovery` Privacy: - Read-only by default. - OAuth secrets and refresh tokens stay on the user's machine or server. - Collection tools support summary, structured and raw response formats. - The connector distinguishes upstream raw JSON from raw sensor telemetry. Known limits: - No live sensor stream. - No raw accelerometer or Bluetooth data. - Requires a WHOOP account and developer app. ### Oura Ring - Package: oura-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 - Summary: A privacy-aware Oura connector for agents that need sleep, recovery and daily activity signals from the Oura Cloud API. - Best for: Best for sleep-first wellness agents, habit coaches and daily planning assistants that need readiness and overnight recovery context. - Signals: Readiness, Sleep, Activity, HRV, SpO2 - Install: npx -y oura-mcp-unofficial setup - Doctor: npx -y oura-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/oura | GitHub: https://github.com/davidmosiah/ouramcp | npm: https://www.npmjs.com/package/oura-mcp-unofficial | Docs: https://ouramcp.vercel.app/ | Provider docs: https://cloud.ouraring.com/docs/authentication Data availability: - Daily readiness score and contributors: available. Requires daily scope. - Daily sleep score and sleep periods: available. Requires daily and/or sleep scope. - Sleep stages and timing: available. Available when Oura returns scored sleep. - Daily activity, steps, calories and MET: available. Requires daily scope. - Heart-rate time series: conditional. Depends on ring, membership and granted scope. - HRV and SpO2: available. HRV is surfaced through readiness; SpO2 requires spo2 scope and supported devices. - Continuous sensor telemetry: not_available. Not exposed by the Oura Cloud API. Agent tools: - Start here: `oura_connection_status`, `oura_daily_summary`, `oura_weekly_summary` - Auth and diagnostics: `oura_capabilities`, `oura_agent_manifest`, `oura_privacy_audit`, `oura_cache_status`, `oura_get_auth_url`, `oura_exchange_code`, `oura_revoke_access` - Profile: `oura_get_personal_info` - Daily collections: `oura_list_daily_readiness`, `oura_list_daily_sleep`, `oura_list_daily_activity`, `oura_list_daily_spo2` - Detailed collections: `oura_list_sleep`, `oura_list_workouts`, `oura_list_heartrate`, `oura_list_sessions`, `oura_list_tags` Privacy: - OAuth tokens stay local. - The connector is scoped to the permissions the user grants. - Agent-facing summaries can avoid sensitive raw payloads. - Raw means upstream Oura API JSON, not raw ring sensor streams. Known limits: - No continuous raw sensor telemetry. - Availability depends on Oura device, membership and scopes. ### Garmin Connect - Package: garmin-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: Local Garmin Connect - Summary: A Garmin Connect MCP server for agents that need rich wellness, sleep, stress, Body Battery, training and activity context. - Best for: Best for endurance athletes and daily agents that need a broad view of sleep, stress, Body Battery, training readiness and recent activities. - Signals: Sleep, HRV, Body Battery, Stress, Training Readiness - Install: npx -y garmin-mcp-unofficial setup --auth - Doctor: npx -y garmin-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/garmin | GitHub: https://github.com/davidmosiah/garminmcp | npm: https://www.npmjs.com/package/garmin-mcp-unofficial | Docs: https://garminconnectmcp.vercel.app/ | Provider docs: https://developer.garmin.com/gc-developer-program/health-api/ Data availability: - Sleep duration, stages and score: available. Available when supported by the device/account. - HRV status and overnight HRV: available. Available on supported devices/accounts. - Body Battery and events: available. Charge and drain context for each day. - Stress samples and daily summary: available. Per-day stress context. - Training readiness and training status: conditional. Depends on device/account support. - Activities, details, splits and zones: available. Recent activities and detail payloads. - Continuous device telemetry: not_available. Not exposed by Garmin Connect web endpoints. Agent tools: - Start here: `garmin_connection_status`, `garmin_daily_summary`, `garmin_weekly_summary` - Auth and diagnostics: `garmin_capabilities`, `garmin_agent_manifest`, `garmin_auth_instructions`, `garmin_privacy_audit` - Profile and devices: `garmin_get_profile`, `garmin_get_user_settings`, `garmin_list_devices`, `garmin_get_primary_training_device` - Daily wellness: `garmin_get_daily_summary`, `garmin_get_steps_day`, `garmin_get_sleep_day`, `garmin_get_heart_day`, `garmin_get_hrv_day`, `garmin_get_stress_day`, `garmin_get_body_battery_day`, `garmin_get_training_readiness_day` - Activities and body: `garmin_list_activities`, `garmin_get_activity_details`, `garmin_get_weight_range` Privacy: - No Garmin developer app is required. - The MCP does not store the user's Garmin password. - Local tokens are saved with user-only permissions. - Private endpoint drift should be treated as integration drift, not user error. Known limits: - Garmin can change private auth or endpoints. - No accelerometer, gyroscope or raw device stream. ### Strava - Package: strava-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 - Summary: A Strava MCP connector that turns recorded activities and activity streams into agent-ready training context. - Best for: Best for endurance agents, training reviews and coaches that need route-aware activity details without exposing GPS by default. - Signals: Activities, Streams, Routes, Athlete Stats - Install: npx -y strava-mcp-unofficial setup - Doctor: npx -y strava-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/strava | GitHub: https://github.com/davidmosiah/strava-mcp | npm: https://www.npmjs.com/package/strava-mcp-unofficial | Docs: https://stravamcp.vercel.app/ | Provider docs: https://developers.strava.com/docs/reference/ Data availability: - Activities: available. Runs, rides, swims, walks and workouts. - Activity details, zones and splits: available. Heart rate, power, cadence, elevation and gear when present. - Activity streams: available. Per-second samples for supported streams. - GPS lat/lng streams: opt_in. Hidden by default; requires include_gps=true or raw mode. - Athlete profile, zones and aggregate stats: available. Authenticated athlete context. - Live device telemetry: not_available. Not exposed by Strava's public API. Agent tools: - Start here: `strava_connection_status`, `strava_daily_summary`, `strava_weekly_summary` - Auth and diagnostics: `strava_capabilities`, `strava_agent_manifest`, `strava_privacy_audit`, `strava_cache_status`, `strava_get_auth_url`, `strava_exchange_code`, `strava_revoke_access` - Athlete and training: `strava_get_athlete`, `strava_get_zones`, `strava_get_athlete_stats` - Activities and streams: `strava_list_activities`, `strava_get_activity`, `strava_get_activity_zones`, `strava_get_activity_streams` - Routes and context: `strava_list_routes`, `strava_get_route`, `strava_list_clubs`, `strava_get_gear` Privacy: - GPS streams are hidden unless explicitly requested. - OAuth tokens stay local. - Route geometry is redacted in summary and structured modes. - Agents can start from daily or weekly summary tools before fetching details. Known limits: - No live telemetry. - GPS requires explicit opt-in. - API visibility depends on Strava scopes and privacy settings. ### Fitbit - Package: fitbit-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 - Summary: A Fitbit MCP connector for everyday health and activity agents that need sleep, heart, movement, body and nutrition context. - Best for: Best for broad wellness agents that combine activity, sleep, HRV, breathing, weight and food/water logs. - Signals: Activity, Sleep, Heart Rate, HRV, SpO2, Weight - Install: npx -y fitbit-mcp-unofficial setup - Doctor: npx -y fitbit-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/fitbit | GitHub: https://github.com/davidmosiah/fitbitmcp | npm: https://www.npmjs.com/package/fitbit-mcp-unofficial | Docs: https://fitbitmcp.vercel.app/ | Provider docs: https://dev.fitbit.com/build/reference/web-api/ Data availability: - Daily activity: available. Steps, calories, distance and zones. - Activity logs: available. Logged workouts. - Sleep and sleep stages: available. When Fitbit returns stage data. - Resting heart rate and daily zones: available. Available on scored days. - Intraday heart-rate samples: conditional. Only when app/API access permits intraday data. - HRV, SpO2 and breathing rate: conditional. Depends on supported device/account. - Food, water, weight and body composition: available. When logged. - Continuous device telemetry: not_available. Not exposed by Fitbit's public API. Agent tools: - Start here: `fitbit_connection_status`, `fitbit_daily_summary`, `fitbit_weekly_summary` - Auth and diagnostics: `fitbit_capabilities`, `fitbit_agent_manifest`, `fitbit_privacy_audit`, `fitbit_cache_status`, `fitbit_get_auth_url`, `fitbit_exchange_code`, `fitbit_revoke_access` - Profile and devices: `fitbit_get_profile`, `fitbit_list_devices` - Activity and sleep: `fitbit_get_activity_day`, `fitbit_list_activities`, `fitbit_get_activity`, `fitbit_get_sleep_day`, `fitbit_list_sleep` - Heart, body and nutrition: `fitbit_get_heart_day`, `fitbit_get_heart_intraday`, `fitbit_get_hrv_day`, `fitbit_get_spo2_day`, `fitbit_get_breathing_rate_day`, `fitbit_get_weight_day`, `fitbit_get_food_day`, `fitbit_get_water_day` Privacy: - OAuth tokens stay local. - The connector only accesses granted Fitbit scopes. - Intraday data is conditional and should be requested deliberately. - Raw means upstream Fitbit JSON, not raw device sensor streams. Known limits: - Intraday access can be limited. - No continuous telemetry. - Data depends on Fitbit device/account support. ### Withings - Package: withings-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 signed - Summary: A Withings connector that gives agents body composition, sleep, activity, workouts and device-backed heart context. - Best for: Best for body-composition, sleep and cardiometabolic wellness agents that need smart-scale and Withings device records. - Signals: Body Measures, Sleep, Activity, Heart Records - Install: npx -y withings-mcp-unofficial setup - Doctor: npx -y withings-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/withings | GitHub: https://github.com/davidmosiah/withingsmcp | npm: https://www.npmjs.com/package/withings-mcp-unofficial | Docs: https://withingsmcp.vercel.app/ | Provider docs: https://developer.withings.com/api-reference/ Data availability: - Body measures: available. Weight, fat percentage, muscle, bone and water with user.metrics scope. - Daily activity: available. Steps, calories, distance and intensity. - Workouts and sport metadata: available. Requires user.activity scope. - Sleep summaries and detail records: available. Depends on device support. - Heart records: conditional. ECG, blood pressure and other records vary by device/plan. - Continuous sensor telemetry: not_available. Not exposed by Withings Public API. Agent tools: - Start here: `withings_connection_status`, `withings_daily_summary`, `withings_weekly_summary` - Auth and diagnostics: `withings_capabilities`, `withings_agent_manifest`, `withings_privacy_audit`, `withings_cache_status`, `withings_get_auth_url`, `withings_exchange_code`, `withings_revoke_access` - Body and metrics: `withings_list_body_measures`, `withings_list_heart` - Activity: `withings_list_activity`, `withings_list_workouts` - Sleep: `withings_list_sleep_summary`, `withings_list_sleep` Privacy: - OAuth tokens stay local. - Signed API flow is handled inside the connector. - Heart and body records are only available when the user's devices and scopes expose them. - Agents can use summaries before requesting detailed records. Known limits: - Data varies by Withings device and plan. - OAuth authorization codes are short-lived. - No raw continuous telemetry. ### Apple Health - Package: apple-health-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: Local export.zip - Summary: A local parser for Apple Health exports that lets MCP clients summarize activity, sleep, heart, HRV, workouts and body records. - Best for: Best for users who want Apple Health context in an agent without relying on a live API, cloud sync or background mobile service. - Signals: Activity, Sleep, Heart Rate, HRV, Workouts - Install: npx -y apple-health-mcp-unofficial setup --export-path /path/to/export.zip - Doctor: npx -y apple-health-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/apple-health | GitHub: https://github.com/davidmosiah/apple-health-mcp | npm: https://www.npmjs.com/package/apple-health-mcp-unofficial | Provider docs: https://support.apple.com/guide/iphone/share-health-and-fitness-data-iph27f6325b2/ios Data availability: - Activity: available. Steps, distance, energy and exercise records. - Heart rate: available. Recorded samples and resting heart rate. - Sleep analysis and stages: available. When iPhone or Apple Watch logs sleep. - Workouts and sport metadata: available. All HKWorkout entries in the export. - Body measurements: available. Weight, BMI and body fat when logged. - HRV and breathing rate: available. Available when Apple Watch supports and records them. - ECG waveform: conditional. Metadata is available; raw waveform requires PDF export. - Live HealthKit or iCloud Health sync: not_available. Not exposed by export files. Agent tools: - Start here: `apple_health_connection_status`, `apple_health_daily_summary`, `apple_health_weekly_summary` - Diagnostics: `apple_health_capabilities`, `apple_health_agent_manifest`, `apple_health_privacy_audit` - Records: `apple_health_list_records`, `apple_health_list_workouts` Privacy: - No OAuth or cloud token is required. - All parsing happens from a local export path. - The agent sees MCP responses, not the user's entire export by default. - Good fit for private, server-side Hermes deployments when the export file is controlled. Known limits: - Not live HealthKit. - Requires a manual export refresh. - Very large exports can take time to parse. ### Polar - Package: polar-mcp-unofficial - Visibility: public - Readiness tier: agent_ready - Auth model: OAuth 2.0 - Summary: A Polar MCP connector for agents that need training, recovery, Nightly Recharge, PPI/HRV and physiology context from AccessLink. - Best for: Best for training agents that need Polar recovery, sleep, continuous samples, route-aware sessions and test results. - Signals: Nightly Recharge, Training Sessions, PPI Samples, Sleep, Continuous HR - Install: npx -y polar-mcp-unofficial setup - Doctor: npx -y polar-mcp-unofficial doctor - Links: Page: https://wellness.delx.ai/connectors/polar | GitHub: https://github.com/davidmosiah/polarmcp | npm: https://www.npmjs.com/package/polar-mcp-unofficial | Docs: https://polarmcp.vercel.app/ | Provider docs: https://www.polar.com/polar-api-v4/ Data availability: - Daily activity and calendar: available. Requires activity:read and calendar:read. - Sleep and sleep/wake vectors: available. Requires sleep:read. - Nightly Recharge: available. Requires nightly_recharge:read and supported devices. - Training sessions and targets: available. Requires training session/target scopes. - Continuous samples and PPI samples: available. Requires continuous_samples:read and ppi_data:read. - Routes and GPS geometry: opt_in. GPS coordinates are redacted unless raw mode is requested. - Live device telemetry: not_available. Not exposed by Polar AccessLink. Agent tools: - Start here: `polar_connection_status`, `polar_daily_summary`, `polar_weekly_summary` - Auth and diagnostics: `polar_capabilities`, `polar_agent_manifest`, `polar_privacy_audit`, `polar_cache_status`, `polar_get_auth_url`, `polar_exchange_code`, `polar_revoke_access` - Account: `polar_get_account_data`, `polar_list_user_devices`, `polar_list_subscriptions` - Activity and sleep: `polar_list_activity`, `polar_list_calendar`, `polar_list_sleeps`, `polar_list_sleep_wake_vectors`, `polar_list_nightly_recharge` - Heart, physiology and training: `polar_list_continuous_samples`, `polar_list_ppi_samples`, `polar_list_temperature_measurements`, `polar_list_skin_contacts`, `polar_list_training_sessions`, `polar_list_training_targets`, `polar_list_tests` - Sports and routes: `polar_list_sports`, `polar_list_sport_profile_catalog`, `polar_list_sport_profiles`, `polar_get_route` Privacy: - OAuth tokens stay local. - GPS coordinates are redacted unless raw mode is explicitly requested. - The connector exposes only scopes granted by the user. - Start with daily/weekly summary before requesting detailed samples. Known limits: - Some data requires supported Polar devices. - GPS is opt-in. - No live device telemetry. ### Exercise Catalog - Package: exercise-catalog-mcp-private - Visibility: private_lab - Readiness tier: experimental - Auth model: Private provider token - Summary: A private MCP connector for exploring how agents can combine wearable readiness with exercise selection and Telegram-ready recommendations. - Best for: Best for internal Delx/Hermes testing where wearable signals can be combined with a controlled exercise database. - Signals: Exercises, Muscle Groups, Equipment, Video Guidance, Workout Builder - Install: Private lab only - Doctor: Private lab only - Links: Page: https://wellness.delx.ai/connectors/exercise-catalog Data availability: - Exercise search and catalog metadata: available. Private provider-dependent data. - Muscle groups and equipment filters: available. Used for agent workout construction. - Video guidance links: conditional. Only when the provider returns public video URLs. - Medical or injury diagnosis: not_available. The connector is not a clinical decision system. Agent tools: - Start here: `exercise_catalog_connection_status`, `exercise_catalog_capabilities`, `exercise_catalog_build_workout` - Catalog: `exercise_catalog_search`, `exercise_catalog_get_exercise`, `exercise_catalog_list_filters` - Agent readiness: `exercise_catalog_agent_manifest`, `exercise_catalog_privacy_audit` Privacy: - Private lab by default. - No provider endpoint is published on the marketing site. - Rate limits should protect the upstream service. - Agent output should remain non-medical and user-goal oriented. Known limits: - Private lab, not public npm. - Provider terms and rate limits must be respected. - Not medical advice. ## Recommended agent behavior 1. Start from connection_status, agent_manifest, privacy_audit and summary tools before fetching detailed records. 2. Prefer daily and weekly summaries for wellness recommendations. 3. Ask permission before raw payloads, location data or provider-specific sensitive details. 4. Treat output as wellness context, not diagnosis, treatment or emergency monitoring. 5. Mention provider limitations when data is conditional, opt-in or unavailable.