io.github.davidmosiah/eight-sleep-mcp
Unofficial Eight Sleep MCP server: read sleep trends, temperature, alarms; gated pod control.
Versions
0.2.5latestTools 26
eight_sleep_profile_get Returns the shared Delx Wellness profile (~/.delx-wellness/profile.json). Read-only. Surfaces preferred sleep window, age, goals, and devices so eight_sleep_nightly_summary and bedtime experiments can personalize recommendations.
eight_sleep_profile_update Persist a partial patch to the shared Delx Wellness profile (~/.delx-wellness/profile.json). Requires explicit_user_intent: true. Rejects any field whose key looks like a credential (oauth/token/secret/password/cookie/refresh/api_key/bearer/credential/session_id) or whose value matches credential-shaped patterns (JWT, Bearer token, sk_live_, sk-proj-, xoxb-, github_pat_).
eight_sleep_onboarding Returns the 11-question onboarding flow for the shared Delx Wellness profile (en or pt-BR). The agent should ask these questions next so Eight Sleep (and the rest of the wellness stack) can personalize responses — non-secret data only, stored at ~/.delx-wellness/profile.json.
eight_sleep_data_inventory Inventory supported Eight Sleep domains, mutation tools, and recommended first calls. Does not call Eight Sleep APIs.
eight_sleep_capabilities Explain supported Eight Sleep data, mutation gate, privacy modes, and project links. Does not call Eight Sleep or expose secrets.
eight_sleep_agent_manifest Machine-readable install, runtime and client guidance for AI agents operating the Eight Sleep MCP.
eight_sleep_connection_status Check env, local config, token file, Node version, privacy mode and mutation gate. Does not call Eight Sleep or expose secrets.
eight_sleep_cache_status Show optional local SQLite cache status. Enable with EIGHT_SLEEP_CACHE=sqlite or EIGHT_SLEEP_CACHE=true.
eight_sleep_privacy_audit Return local privacy, cache, token-path, env-presence, mutation gate and redaction posture without revealing secret values.
eight_sleep_logout Delete the local Eight Sleep token file. Gated by explicit_user_intent: true (requires explicit user intent / consent). Destructive local-only mutation — clears tokens on disk; not gated by EIGHT_SLEEP_ALLOW_MUTATIONS.
eight_sleep_get_me Return the authenticated user's Eight Sleep profile and assigned devices.
eight_sleep_get_user Return Eight Sleep profile data for a specific user_id (defaults to authenticated user).
eight_sleep_get_current_device Return the bed side currently assigned to the user (solo/left/right).
eight_sleep_get_temperature Return current heating level, smart-schedule levels and side on/off state.
eight_sleep_get_alarms Return the list of configured alarms and the recommended next alarm.
eight_sleep_get_base Return adjustable-base state: leg angle, torso angle and preset.
eight_sleep_get_trends Return nightly sleep sessions and scores for a date range.
eight_sleep_wellness_context Build a normalized `delx-wellness-context/v1` payload from recent Eight Sleep trends so other Delx Wellness tools (nourish, exercise catalog, Telegram coaches) can read sleep context without knowing the Eight Sleep API.
eight_sleep_nightly_summary Compute a multi-night sleep summary (best night, worst night, mean score, nights under 70 / over 85) from Eight Sleep trend data. One call replaces post-processing raw `get_trends`.
eight_sleep_temperature_trend Workflow tool: returns the current smart-temperature schedule (bedtime/initial/final level), per-night sleep scores for the last N nights, mean/median/range/most-common for bedtime AND wake temperature settings when the trends payload exposes them, and a correlation note (e.g. 'colder bedtime → higher sleep score') ONLY when 3+ paired nights support |r| >= 0.5. Reuses get_temperature + get_trends data — no extra API calls.
eight_sleep_efficiency v0.2.2 — Sleep efficiency calculator. For each of the last N nights (default 7), computes time_in_bed_minutes (from presenceDuration), time_asleep_minutes (from sleepDuration), efficiency_pct = (asleep / in_bed) * 100, and efficiency_band (excellent ≥85, good 75-84, fair 65-74, poor <65). Returns nights_analyzed, mean / median / min-night / max-night efficiency, a nights_by_band breakdown, per_night array, and natural-language observations (mid-week drop, all-nights-same-band, single-night dip > 15 points below mean) ONLY when supported by the data. Reuses the existing /v1/users/{id}/trends payload — no extra API calls. Graceful degradation when upstream omits presenceDuration / sleepDuration (returns nights_analyzed: 0 with a clarifying note).
eight_sleep_set_temperature Set the heating level (-100 .. 100). Optionally set a duration in seconds. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.
eight_sleep_set_side Turn the user's bed side on or off. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.
eight_sleep_set_away_mode Toggle away mode. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.
eight_sleep_snooze_alarm Snooze an actively ringing alarm. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.
eight_sleep_dismiss_alarm Dismiss an actively ringing alarm. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.
Permissions 3
network medium shell high env_vars low