八睡眠MCP
用于访问Eight Sleep Pod数据的模型上下文协议(MCP)服务器。
设置
先决条件
- Node.js(v16+)
- 八睡眠帐户
安装
- 克隆存储库
- 运行:
npm install
npm run build配置
获取您的用户ID
您需要获取一次Eight Sleep用户ID并将其添加到您的配置中。这可以防止客户端在每次请求时都必须使用电子邮件/密码进行身份验证。您有两个选择:
选项1:直接API调用
- ```bash
curl-X POSThttps://client-api.8slp.net/v1/auth/login \
-H“内容类型:应用程序/json” \
-d'{“电子邮件”:“your_email”,“密码”:“你的密码”}'
- Add the user ID to your configuration as shown below.
Option 2: Using MCP Client
- First set up your
.envfile without the user ID:
EIGHT_SLEEP_EMAIL=your_email
EIGHT_SLEEP_PASSWORD=your_password- 运行MCP客户端一次以获取您的用户ID:
node build/index.js getUsers响应将包括您的用户ID。保存此值。
- 将用户ID添加到配置中,如下所示。
环境变量
创建一个 .env 文件:
# Eight Sleep Authentication
EIGHT_SLEEP_EMAIL=your_email
EIGHT_SLEEP_PASSWORD=your_password
EIGHT_SLEEP_USER_ID=your_user_id # Required: Add the userId from one of the methods above
EIGHT_SLEEP_CLIENT_ID=your_client_id
EIGHT_SLEEP_CLIENT_SECRET=your_client_secretClaude桌面集成
添加到Claude Desktop的配置(设置→ 开发者→ 编辑配置):
{
"mcpServers": {
"eight_sleep": {
"command": "node",
"args": ["/absolute/path/to/eight-sleep-mcp/build/index.js"],
"env": {
"EIGHT_SLEEP_EMAIL": "your_email", // email and password not required once you have userid
"EIGHT_SLEEP_PASSWORD": "your_password", // email and password not required once you have userid
"EIGHT_SLEEP_USER_ID": "your_user_id",
"EIGHT_SLEEP_CLIENT_ID": "your_client_id", // optional
"EIGHT_SLEEP_CLIENT_SECRET": "your_client_secret" // optional
}
}
}
}重要:需要将您的用户ID添加到配置中,以避免在每次请求时都必须使用电子邮件/密码进行身份验证。确保使用上述方法之一获得它。
保存后重新启动Claude Desktop。
可用功能
用户信息
getUsers-获取用户配置文件信息getUserPreferences-获取用户偏好(单位、时区、床侧)updateUserPreferences-更新用户首选项
设备控制
getDeviceStatus-获取设备状态(在线、固件、水位)setDevicePower-打开/关闭设备getPresence-检查用户是否在床上
温度控制
getTemperature-获取当前温度设置setTemperature-设置即时温度(-100至100)getTemperatureSchedules-获取温度表setTemperatureSchedule-创建温度计划updateTemperatureSchedule-更新温度表deleteTemperatureSchedule-删除温度表
睡眠数据
getSleepData-获取日期范围的详细睡眠数据getSleepScore-获取约会的睡眠评分getSleepStages-进入睡眠阶段(清醒、轻度、深度、REM)getHrv-获取心率变异性数据getHeartRate-获取心率数据getRespiratoryRate-获取呼吸频率数据getSleepTiming-确定就寝时间和起床时间getSleepFitnessTrends-了解睡眠健身趋势
报警管理
getAlarms-获取所有警报setAlarm-创建新警报updateAlarm-更新现有警报deleteAlarm-删除报警
功能参数
对于基于日期的函数,请使用以下格式 YYYY-MM-DD例如:
getSleepData({
startDate: "2024-03-15",
endDate: "2024-03-16" // optional
})温度设置:
setTemperature({
level: 50, // -100 to 100
duration: 3600 // seconds, optional
})对于警报:
setAlarm({
time: "07:00",
daysOfWeek: [1,2,3,4,5], // Mon-Fri
vibration: true,
sound: "chime" // optional
})对于温度表:
setTemperatureSchedule({
startTime: "22:00",
level: -20,
daysOfWeek: [0,1,2,3,4,5,6] // Every day
})