Google Home MCP サーバー
Smart Home API を介して Google Home スマートプラグを制御するための MCP サーバー実装。
特徴
- 利用可能なすべてのスマートプラグとその状態を一覧表示します
- スマートプラグを制御する(オン/オフ)
- 特定のスマートプラグのリアルタイムの状態を取得する
- デバイスの自動状態更新
- スマートホーム API による OAuth2 認証
前提条件
- スマートホーム API が有効になっている Google Cloud プロジェクト
- Google スマートホーム アクション プロジェクトでのアクション
- スマートホームアクションのOAuth 2.0クライアント認証情報
- Node.js 18以上
- Google Homeスマートプラグへのアクセス
設定
- スマートホームアクションを作成する:
- Google ConsoleのActionsに移動
- 新しいプロジェクトを作成する
- プロジェクトの種類として「スマートホーム」を選択します
- アカウントリンクを構成する:
- OAuth クライアント ID
- OAuth クライアントシークレット
- 認証URL
- トークンURL
- OAuth 2.0 を設定します。
- OAuthサーバーのエンドポイントを構成する
- ユーザー認証フローを設定する
- トークン生成/検証を実装する
- 依存関係をインストールします:
- サーバーを構成します。
config.json.example
をconfig.json
にコピーします。- 以下にご記入ください:
- OAuth クライアント ID
- OAuth クライアントシークレット
- サーバーを構築します。
- サーバーを起動します。
利用可能なツール
1. スマートプラグを一覧表示する
{
name: "list_smart_plugs",
description: "List all available smart plugs and their current states",
response: Array<{
id: string;
name: string;
state: {
on: boolean;
online: boolean;
}
}>
}
2. スマートプラグを制御する
{
name: "control_smart_plug",
description: "Turn a smart plug on or off",
parameters: {
deviceId: string; // Device ID from list_smart_plugs
state: boolean; // true for on, false for off
},
response: {
success: boolean;
device: {
id: string;
name: string;
state: {
on: boolean;
online: boolean;
}
}
}
}
3. スマートプラグの状態を取得する
{
name: "get_smart_plug_state",
description: "Get the current state of a specific smart plug",
parameters: {
deviceId: string; // Device ID from list_smart_plugs
},
response: {
id: string;
name: string;
state: {
on: boolean;
online: boolean;
}
}
}
APIの詳細
サーバーは Smart Home API インテントを実装します。
- SYNCインテント
- ユーザーがアカウントをリンクしたときに呼び出されます
- 利用可能なデバイスと機能を報告します
- デバイスの検出を処理する
- クエリの意図
- デバイスの現在の状態を報告します
- Google アシスタントからの状態クエリを処理
- オンライン/オフラインステータスを返します
- 実行意図
- デバイス制御コマンドを処理する
- オン/オフ操作を実行します
- コマンドの成功/失敗を報告します
エラー処理
サーバーは、特定のエラー コードを使用して包括的なエラー処理を実装します。
CONFIG_ERROR
: 構成の読み込みまたは検証エラーAPI_ERROR
: スマートホーム API からのエラーDEVICE_NOT_FOUND
: 利用可能なデバイスにデバイスIDが見つかりませんCOMMAND_ERROR
: デバイスコマンドの実行中にエラーが発生しました
各エラーには次の内容が含まれます。
- エラーメッセージ
- エラーコード
- 詳細なエラー情報(利用可能な場合)
安全
- OAuth 2.0認証フロー
- 安全なトークン処理
- リクエストの検証
- コマンド承認
- HTTPS通信
- 入力サニタイズ
発達
- 開発モードで開始します:
- テストを実行します:
- デバッグ ログ:
- すべてのAPI呼び出しが記録されます
- エラーの詳細が記録される
- デバイスの状態変化が追跡される
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- プルリクエストを作成する
ライセンス
マサチューセッツ工科大学
ghome-mcp-server