Eight Sleep MCP について
Eight Sleep MCP は、Eight Sleep Pod のユーザー向けに、アカウント、デバイス、温度、睡眠データ、アラームを操作します。MCP クライアントから睡眠指標を取得し、対応するデバイス設定を管理できます。
主な機能
- 01ユーザープロフィールと設定の取得
- 02デバイス状態とベッド上の在床状況の確認
- 03睡眠スコア、睡眠段階、健康指標の取得
- 04温度とスケジュールの設定
- 05アラームの作成と管理
活用シーン
- 01指定期間の睡眠データを確認
- 02Pod の温度やスケジュールを調整
- 03デバイス状態と在床状況を確認
- 04起床アラームを作成または更新
MCP 対応
Eight Sleep のアカウント、デバイス、温度、睡眠データ、アラーム機能を MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Eight Sleep MCP
Eight Sleep Pod のデータにアクセスするための Model Context Protocol(MCP)サーバーです。
セットアップ
前提条件
- Node.js(v16+)
- Eight Sleep アカウント
インストール
- リポジトリをクローンします
- 次を実行します:
npm install
npm run build
設定
ユーザー ID の取得
Eight Sleep のユーザー ID を一度取得し、設定に追加する必要があります。これにより、リクエストのたびにクライアントがメールアドレス/パスワードで認証する必要がなくなります。取得方法は 2 つあります。
方法 1:API を直接呼び出す
curl -X POST https://client-api.8slp.net/v1/auth/login
-H "Content-Type: application/json"
-d '{"email":"your_email","password":"your_password"}'
2. Add the user ID to your configuration as shown below.
Option 2: Using MCP Client
1. First set up your `.env` file without the user ID:
```env
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_secret
Claude Desktop との連携
Claude Desktop の設定に追加します(Settings → Developer → Edit Config):
{
"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
})
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。