Eight Sleep
FreeNot checkedUnofficial MCP server for Eight Sleep, reverse-engineered from observed mobile app traffic and validated against live device behavior.
About
Unofficial MCP server for Eight Sleep, reverse-engineered from observed mobile app traffic and validated against live device behavior.
README
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_intervalsview: "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
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_summaryfor the most recent night when you only need compact summary metrics. - Use
get_sleep_intervalswithview: "summary"when you need multiple recent intervals but do not needtimeseries,stages, orsnoring.
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, andEIGHT_SLEEP_CLIENT_SECRET
Optional values:
EIGHT_SLEEP_USER_IDEIGHT_SLEEP_CLIENT_DEVICE_IDEIGHT_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.
Installing Eight Sleep
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/atfinke/eight-sleep-mcpFAQ
Is Eight Sleep MCP free?
Yes, Eight Sleep MCP is free — one-click install via Unyly at no cost.
Does Eight Sleep need an API key?
No, Eight Sleep runs without API keys or environment variables.
Is Eight Sleep hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Eight Sleep in Claude Desktop, Claude Code or Cursor?
Open Eight Sleep on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Eight Sleep with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
