1802 字
9 分鐘

Google Home MCP 怎麼接 agent?先分清 OAuth、工具與權限

Google Home MCP 把 agent 和實體居家環境接在一起,讓支援 MCP 的 client 可以讀取家庭、裝置資源、目前狀態與歷史資料,也能透過工具執行 Home actions。不過它目前仍是 early access,最需要先設計的不是「怎麼讓 agent 控制更多裝置」,而是哪些資料可以讀、哪一個家庭可以被選到,以及什麼動作一定要經過人確認。

直接答案是:先把 Google Home MCP 和 Home Developer MCP 分開;前者使用官方 endpoint 與使用者授權的 OAuth 連線到實際家庭,後者是查技術文件的開發者路徑。完成 OAuth 後先只呼叫列出家庭、資源、狀態與歷史的工具,最後才評估 run_home_actions,並把每一次可能改變裝置狀態的操作設成明確確認點。

本文依 Google Home MCP ReferenceHome MCP overview 整理,沒有在實際家庭或裝置上執行。

先分清楚兩條 MCP 產品路徑#

Google Home 的文件同時介紹 Home MCP 與 Home Developer MCP,但它們處理的資料和授權目的不同:

路徑用途授權與風險
Home MCP連到使用者的 Google Home 圖譜,讀取家庭、資源、狀態、歷史並執行 actions使用者授權的 OAuth;會接觸真實家庭資料,actions 可能改變實體裝置
Home Developer MCP查 Google Home API、SDK 與開發文件開發者文件查詢路徑,不等於取得某個家庭的控制權

如果你的目標只是問「某個 API 怎麼用」,不需要先連到使用者的家庭。反過來,如果你要讓 agent 查燈、溫度或感測器狀態,則要明確告知使用者這是一條可以看到家庭資源的 OAuth 連線,不要用 Developer MCP 的設定方式取代它。

Home MCP endpoint 與工具範圍#

官方 Reference 目前列出的 Home MCP endpoint 是:

https://home.googleapis.com/mcp

它使用 OAuth 與使用者授權。成功連線後,先按照從觀察到控制的順序理解工具:

工具目的第一次連線是否適合直接呼叫
list_homes列出使用者可存取的家庭可以,先確認家庭選擇
list_home_resources列出家庭中的資源與裝置可以,但要避免把完整資源清單寫入公開 log
list_home_states讀取目前狀態可以,使用測試家庭或最小範圍
list_home_history讀取歷史狀態先確認使用者了解資料時間範圍與敏感性
run_home_actions執行 Home actions不要在未確認目標和動作時自動呼叫

工具名稱本身不會替你完成權限設計。list_home_resources 的結果可能暴露裝置名稱、房間配置或家庭成員自行設定的語意;run_home_actions 則是從「讀資料」跨到「改變實體環境」的明顯邊界。

用 read-only 順序驗證連線#

建立 remote MCP connector 時,不要把整個家庭當成一個不可分割的測試目標。建議先做一個最小 smoke test:

  1. 核對 endpoint:確認 client 連到 https://home.googleapis.com/mcp,OAuth 同意畫面屬於 Google,並且登入的是預期帳號。
  2. 選定家庭:呼叫 list_homes 後,只選擇這次任務需要的家庭;不要讓 agent 自己在多個家庭中猜測。
  3. 縮小資源:用 list_home_resources 找到一個測試用裝置,保存必要的 resource id,但不要把整份家庭圖譜送進一般分析資料庫。
  4. 只讀取狀態:用 list_home_states 和必要的 list_home_history 驗證名稱、狀態和時間是否符合預期。
  5. 明確停在控制前:若任務需要 run_home_actions,先向使用者列出家庭、裝置、動作、時間與回復方法;未取得確認就結束回合。

這個順序也延續 接 MCP 前的能力盤點:先確認 agent 原本能做到什麼,再新增一條具有資料與實體副作用的連線。

把實體動作做成審批,而不是自然語言猜測#

「把客廳燈打開」看起來簡單,但真正執行前至少要解析四個欄位:

欄位需要確認的內容
目標家庭不要只依房間名稱;多個家庭時先指定 home
目標資源裝置名稱可能重複,應顯示 resource id 或可辨識的完整名稱
動作與參數開/關、溫度、亮度或其他 action 不能只靠模糊描述
回復與時間是否立即執行、是否有自動恢復、失敗時怎麼處理

可以把 agent prompt 固定成:「先列出你解析到的 home、resource、action 和參數;在我回覆確認前,不得呼叫任何會改變裝置狀態的工具。」如果你的 client 支援工具審批或 allowlist,初始設定只開列出和讀取工具,把 run_home_actions 保留在需要時才允許的範圍。

不要把 MCP 的 OAuth 登入當成「所有家庭操作都已經得到永久同意」。使用者授權、client 的工具批准、家庭成員對實體設備的實際期待,是三個不同層次;產品仍要在每次高風險操作前顯示具體目標。

Early access 要有降級方案#

Google Home MCP 目前不是穩定完成的 production contract。整合時要預先處理:

  • 工具清單或欄位可能變更,將工具名稱與回應 schema 做版本化記錄。
  • OAuth 失效或家庭授權被撤銷時,回傳需要重新授權,不要重試控制動作。
  • 裝置離線、狀態延遲或歷史資料不完整時,顯示「未知」而不是推論成關閉或安全。
  • run_home_actions 失敗時,先重新讀取狀態再決定是否需要人工介入,不要連續重送可能重複執行的 action。
  • 所有家庭名稱、房間和裝置資訊都視為敏感資料,限制 log、分析事件和 prompt 儲存範圍。

這些設計不是在否定 Home MCP 的用途,而是把「觀察實體環境」和「操作實體環境」放在不同的可靠性與權限層級。

常見問題#

Q: Home MCP 和 Home Developer MCP 可以用同一份設定嗎?#

A: 不建議直接混用。Home MCP 是連到使用者家庭的 OAuth 路徑;Home Developer MCP 是技術文件查詢路徑。先依目標選一條,避免把文件讀取權限誤當成家庭控制權限。

Q: 只呼叫 list_home_states 會改變裝置嗎?#

A: 它的用途是讀取狀態;但回應仍可能包含家庭、房間或裝置資訊,應限制資料落點與 log。是否真的只讀取,仍要以 client 顯示的工具 schema 和官方文件為準。

Q: 可以讓 agent 自動執行 run_home_actions 嗎?#

A: 技術上它是 Home MCP 的控制工具,但不應把自然語言直接轉成無確認的實體動作。先顯示 home、resource、action、參數與回復方式,得到使用者確認後再執行。

Q: Early access 適合直接接 production 家庭嗎?#

A: 應先用測試家庭、read-only 任務和可撤銷的 action 驗證;同時準備 OAuth 失效、裝置離線、工具 schema 變更與誤操作的降級流程。不要把 early access 的成功示範當成穩定性保證。

參考資料:

Google Home:Home MCP Reference

Google Home:MCP overview

Google Home MCP 怎麼接 agent?先分清 OAuth、工具與權限
https://laplusda.com/posts/google-home-mcp-agent-permission-checklist/
作者
Zero
發佈於
2026-09-18
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。