README
🚀 Eight Sleep MCP
Eight Sleep MCP 是一个用于访问 Eight Sleep 枕数据的 Model Context Protocol (MCP) 服务器,它能帮助用户便捷地获取和管理相关睡眠数据。
🚀 快速开始
在使用 Eight Sleep MCP 前,您需要完成安装和配置,下面将为您详细介绍。
📦 安装指南
先决条件
- Node.js(v16+)
- Eight Sleep 账户
安装步骤
- 克隆仓库。
- 运行以下命令进行依赖安装和项目构建:
npm install
npm run build
配置指南
获取您的用户 ID
您需要获取一次 Eight Sleep 的用户 ID 并添加到配置中,这样可以避免客户端在每次请求时都通过电子邮件/密码进行身份验证。您有两种获取方式:
选项 1:直接 API 调用
- 执行以下
curl命令:
curl -X POST https://client-api.8slp.net/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"your_email","password":"your_password"}'
- 将响应中获取的用户 ID 添加到配置中。
选项 2:使用 MCP 客户端
- 首先设置不带用户 ID 的
.env文件:
EIGHT_SLEEP_EMAIL=your_email
EIGHT_SLEEP_PASSWORD=your_password
- 运行 MCP 客户端一次以获取您的用户 ID:
node build/index.js getUsers
响应中将包含您的用户 ID,请保存此值。 3. 将用户 ID 添加到配置中。
环境变量
创建一个 .env 文件,并按以下格式填写:
# Eight Sleep 身份验证
EIGHT_SLEEP_EMAIL=your_email
EIGHT_SLEEP_PASSWORD=your_password
EIGHT_SLEEP_USER_ID=your_user_id # 必填:使用上述任一方法获取用户 ID
EIGHT_SLEEP_CLIENT_ID=your_client_id
EIGHT_SLEEP_CLIENT_SECRET=your_client_secret
集成 Claude Desktop
将以下配置添加到 Claude Desktop 的配置(设置 → 开发者 → 编辑配置)中:
{
"mcpServers": {
"eight_sleep": {
"command": "node",
"args": ["/absolute/path/to/eight-sleep-mcp/build/index.js"],
"env": {
"EIGHT_SLEEP_EMAIL": "your_email", // 一旦拥有 userid,电子邮件和密码不需要
"EIGHT_SLEEP_PASSWORD": "your_password", // 一旦拥有 userid,电子邮件和密码不需要
"EIGHT_SLEEP_USER_ID": "your_user_id",
"EIGHT_SLEEP_CLIENT_ID": "your_client_id", // 可选
"EIGHT_SLEEP_CLIENT_SECRET": "your_client_secret" // 可选
}
}
}
}
⚠️ 重要提示
将用户 ID 添加到配置中是必需的,以避免每次请求时都需要通过电子邮件/密码进行身份验证。请确保使用上述任一方法获取用户 ID。保存配置后,重新启动 Claude Desktop。
✨ 主要特性
用户信息
getUsers- 获取用户个人资料信息getUserPreferences- 获取用户偏好设置(单位,时区,床侧)updateUserPreferences- 更新用户偏好设置
设备控制
getDeviceStatus- 获取设备状态(在线,固件版本,水位)setDevicePower- 关闭/开启设备getPresence- 检查用户是否在床
温度控制
getTemperature- 获取当前温度设置setTemperature- 设置即时温度(-100 到 100)getTemperatureSchedules- 获取温度计划setTemperatureSchedule- 创建温度计划updateTemperatureSchedule- 更新温度计划deleteTemperatureSchedule- 删除温度计划
睡眠数据
getSleepData- 获取日期范围内的详细睡眠数据getSleepScore- 获取某一天的睡眠分数getSleepStages- 获取睡眠阶段(清醒,轻度,深度,REM)getHrv- 获取心率变异性数据getHeartRate- 获取心率数据getRespiratoryRate- 获取呼吸速率数据getSleepPosition- 获取睡眠姿势
温度计划示例
setTemperatureSchedule({
startTime: "22:00",
level: -20,
daysOfWeek: [0,1,2,3,4,5,6] // 每天
})
Scan to join WeChat group