Skip to main content
Glama
atfinke
by atfinke

Eight Sleep MCP

Unofficial MCP server for Eight Sleep, reverse-engineered from observed mobile app traffic and validated against live device behavior.

Built entirely by OpenAI GPT-5.4 via Codex.

Overview

This project exposes Eight Sleep account, device, temperature, and sleep data through MCP, and supports the core temperature controls confirmed from live app traffic.

Supported capabilities include:

  • reading account, device, temperature, recent temperature events, and sleep intervals

  • reading a compact summary of the most recent sleep interval without timeseries payloads

  • fetching compact interval pages with get_sleep_intervals view: "summary" when full timeseries are not needed

  • resuming smart temperature mode

  • turning temperature control off

  • applying a temporary bedtime temperature change

  • saving a bedtime temperature change to the active schedule

  • updating saved smart temperature levels

  • toggling Autopilot

Related MCP server: Withings MCP

Behavior Model

  • Temporary bedtime changes are sent as override values to the pod temperature endpoint.

  • Permanent bedtime changes update the bedtime schedule, then clear the temporary override.

  • Smart temperature profile editing is separate from bedtime schedule editing.

  • Turning temperature off disables active heating and cooling; it does not power down the hardware.

API Coverage

The current implementation uses confirmed requests across auth-api, client-api, and app-api, including authentication, user and device reads, temperature state, temperature events, bedtime schedule updates, pod temperature control, and Autopilot mode changes.

Sleep Data Guidance

For LLM-facing clients, use the compact sleep tools by default.

Golden paths:

  • Use get_latest_sleep_summary for the most recent night when you only need compact summary metrics.

  • Use get_sleep_intervals with view: "summary" when you need multiple recent intervals but do not need timeseries, stages, or snoring.

Example get_latest_sleep_summary response:

{
  "sleepStart": "2026-04-02T03:38:30.000Z",
  "sleepEnd": "2026-04-02T15:35:30.000Z",
  "sleepDuration": 34380,
  "deepPct": 0.12,
  "remPct": 0.24,
  "lightPct": 0.64
}

Example compact interval call:

{
  "tool": "get_sleep_intervals",
  "arguments": {
    "pages": 3,
    "view": "summary"
  }
}

sleepStart and sleepEnd are returned as UTC ISO timestamps. Convert them to the user's local timezone in the caller if you need local bedtime or wake time.

Setup

npm install
cp .env.example .env
npm test
npm run build

Configuration supports either:

  • EIGHT_SLEEP_ACCESS_TOKEN

  • or EIGHT_SLEEP_EMAIL, EIGHT_SLEEP_PASSWORD, EIGHT_SLEEP_CLIENT_ID, and EIGHT_SLEEP_CLIENT_SECRET

Optional values:

  • EIGHT_SLEEP_USER_ID

  • EIGHT_SLEEP_CLIENT_DEVICE_ID

  • EIGHT_SLEEP_REQUEST_TIMEOUT_MS

MCP Bundle

For bundle-aware clients, a manifest.json is included and a local MCP bundle can be built with:

npm run package:mcpb

That produces an .mcpb file for one-click installation in clients that support MCP bundles.

MCP Setup

The server runs over stdio.

Example client configuration for the built server:

{
  "mcpServers": {
    "eight-sleep": {
      "command": "node",
      "args": ["/absolute/path/to/eight-sleep-mcp/dist/index.js"],
      "cwd": "/absolute/path/to/eight-sleep-mcp"
    }
  }
}

For local development without building first:

{
  "mcpServers": {
    "eight-sleep": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "/absolute/path/to/eight-sleep-mcp"
    }
  }
}

If a client does not support cwd, pass the Eight Sleep environment variables directly in the client configuration instead of relying on .env.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/atfinke/eight-sleep-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server