← Back to search

io.github.davidmosiah/eight-sleep-mcp

davidmosiah Scanned 26d ago

Unofficial Eight Sleep MCP server: read sleep trends, temperature, alarms; gated pod control.

B
75.4 / 100

Versions

0.2.5latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 26

eight_sleep_profile_get
annotations: verified low

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.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_profile_update
annotations: verified low

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_).

readOnlyHint false openWorldHint false idempotentHint true destructiveHint false
eight_sleep_onboarding
annotations: verified low

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.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_data_inventory
annotations: verified low

Inventory supported Eight Sleep domains, mutation tools, and recommended first calls. Does not call Eight Sleep APIs.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_capabilities
annotations: verified low

Explain supported Eight Sleep data, mutation gate, privacy modes, and project links. Does not call Eight Sleep or expose secrets.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_agent_manifest
annotations: verified low

Machine-readable install, runtime and client guidance for AI agents operating the Eight Sleep MCP.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_connection_status
annotations: verified low

Check env, local config, token file, Node version, privacy mode and mutation gate. Does not call Eight Sleep or expose secrets.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_cache_status
annotations: verified low

Show optional local SQLite cache status. Enable with EIGHT_SLEEP_CACHE=sqlite or EIGHT_SLEEP_CACHE=true.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_privacy_audit
annotations: verified low

Return local privacy, cache, token-path, env-presence, mutation gate and redaction posture without revealing secret values.

readOnlyHint true openWorldHint false idempotentHint true destructiveHint false
eight_sleep_logout
annotations: verified low

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.

readOnlyHint false openWorldHint false idempotentHint false destructiveHint true
eight_sleep_get_me
annotations: verified low

Return the authenticated user's Eight Sleep profile and assigned devices.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_user
annotations: verified low

Return Eight Sleep profile data for a specific user_id (defaults to authenticated user).

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_current_device
annotations: verified low

Return the bed side currently assigned to the user (solo/left/right).

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_temperature
annotations: verified low

Return current heating level, smart-schedule levels and side on/off state.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_alarms
annotations: verified low

Return the list of configured alarms and the recommended next alarm.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_base
annotations: verified low

Return adjustable-base state: leg angle, torso angle and preset.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_get_trends
annotations: verified low

Return nightly sleep sessions and scores for a date range.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_wellness_context
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_nightly_summary
annotations: verified low

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`.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_temperature_trend
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_efficiency
annotations: verified low

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).

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
eight_sleep_set_temperature
annotations: verified low

Set the heating level (-100 .. 100). Optionally set a duration in seconds. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
eight_sleep_set_side
annotations: verified low

Turn the user's bed side on or off. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
eight_sleep_set_away_mode
annotations: verified low

Toggle away mode. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
eight_sleep_snooze_alarm
annotations: verified low

Snooze an actively ringing alarm. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
eight_sleep_dismiss_alarm
annotations: verified low

Dismiss an actively ringing alarm. Gated by explicit_user_intent: true and EIGHT_SLEEP_ALLOW_MUTATIONS=true.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 69

info
Tool 'eight_sleep_profile_get' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_profile_update' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_onboarding' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_data_inventory' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_capabilities' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_agent_manifest' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_connection_status' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_cache_status' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_privacy_audit' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_logout' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_me' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_user' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_current_device' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_temperature' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_alarms' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_base' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_get_trends' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_wellness_context' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_nightly_summary' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_temperature_trend' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_efficiency' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_set_temperature' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_set_side' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_set_away_mode' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_snooze_alarm' annotations are consistent annotation_checker · 80%
info
Tool 'eight_sleep_dismiss_alarm' annotations are consistent annotation_checker · 80%
high
Hardcoded OAuth client ID in davidmosiah-eight-sleep-mcp-eed483c/src/constants.ts auth_checker · 85%
high
Hardcoded OAuth client secret in davidmosiah-eight-sleep-mcp-eed483c/src/constants.ts auth_checker · 95%
high
Hardcoded OAuth client secret in davidmosiah-eight-sleep-mcp-eed483c/scripts/endpoint-contract-test.mjs auth_checker · 95%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Hex string literal (>50 chars) in davidmosiah-eight-sleep-mcp-eed483c/src/constants.ts:17 entropy_analyzer · 70%
info
package.json metadata manifest_parser · 100%
info
Tool: eight_sleep_profile_get manifest_parser · 85%
info
Tool: eight_sleep_profile_update manifest_parser · 85%
info
Tool: eight_sleep_onboarding manifest_parser · 85%
info
Tool: eight_sleep_data_inventory manifest_parser · 85%
info
Tool: eight_sleep_capabilities manifest_parser · 85%
info
Tool: eight_sleep_agent_manifest manifest_parser · 85%
info
Tool: eight_sleep_connection_status manifest_parser · 85%
info
Tool: eight_sleep_cache_status manifest_parser · 85%
info
Tool: eight_sleep_privacy_audit manifest_parser · 85%
info
Tool: eight_sleep_logout manifest_parser · 85%
info
Tool: eight_sleep_get_me manifest_parser · 85%
info
Tool: eight_sleep_get_user manifest_parser · 85%
info
Tool: eight_sleep_get_current_device manifest_parser · 85%
info
Tool: eight_sleep_get_temperature manifest_parser · 85%
info
Tool: eight_sleep_get_alarms manifest_parser · 85%
info
Tool: eight_sleep_get_base manifest_parser · 85%
info
Tool: eight_sleep_get_trends manifest_parser · 85%
info
Tool: eight_sleep_wellness_context manifest_parser · 85%
info
Tool: eight_sleep_nightly_summary manifest_parser · 85%
info
Tool: eight_sleep_temperature_trend manifest_parser · 85%
info
Tool: eight_sleep_efficiency manifest_parser · 85%
info
Tool: eight_sleep_set_temperature manifest_parser · 85%
info
Tool: eight_sleep_set_side manifest_parser · 85%
info
Tool: eight_sleep_set_away_mode manifest_parser · 85%
info
Tool: eight_sleep_snooze_alarm manifest_parser · 85%
info
Tool: eight_sleep_dismiss_alarm manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (5) manifest_parser · 80%
medium
Hardcoded OAuth client ID in davidmosiah-eight-sleep-mcp-eed483c/src/constants.ts oauth_scope_analyzer · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 170 components sbom_generator · 100%
high
Hardcoded Password found in davidmosiah-eight-sleep-mcp-eed483c/src/cli/setup.ts secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%