ロボ図鑑

SwitchBot Botを公式MCPから押す — 最初の物理アクション

公開: 2026-08-20

SwitchBot Botは、APIを持たない既存のボタンにAIの指を足せる。ただし、Bot自身が安全でも、貼り付けた先がヒーター、ドア、電源遮断ボタンならpressの意味は変わる。公式MCPの安全分類だけに任せず、どの物理ボタンを押すかを人が先に決める

本稿は2026年8月20日にSwitchBot公式OpenAPI CLIとagent guideを確認した手順で、ロボ図鑑では実機確認を終えていない。実際にBotを押していないため実測済みとは扱わない。

0. Botを貼る場所を先に選ぶ

最初の対象は、押し間違えても損害が小さく、状態を目で確認できるものにする。卓上ライトや呼び鈴のような単発ボタンが向く。次は避ける。

Botのモードと押下時間はSwitchBotアプリで先に合わせ、スマホから1回押して機械側が意図どおり反応することを確認する。

1. 公式CLIを入れて認証する

現在の公式リポジトリは@switchbot/openapi-cliを提供し、ブラウザOAuthで認証情報をOS keychainへ保存する経路を推奨している。トークンを設定ファイルやチャットへ貼らず、この経路から始める。

npm install -g @switchbot/openapi-cli
switchbot auth login
switchbot doctor --json

doctorが失敗したらMCPへ進まない。認証、API疎通、catalog schemaをCLI側で直す。

2. Botを読取だけで特定する

同じアカウントに複数Botがある前提で、名前の推測ではなくdevice IDを一覧から特定する。

switchbot devices list --wide --filter 'type=Bot' --json
switchbot devices status <device-id>

一覧のdevice type、名前、IDを記録し、対象機の物理ラベルと一致させる。AIへ渡すaliasも「ボット1」ではなく「作業机ライトのボタン」のように結果が分かる名前にする。

3. AIを挟まずCLIで1回だけ押す

周囲を確認し、人が見ている状態で単発コマンドを試す。

switchbot devices command <device-id> press

物理ボタンが1回だけ押され、対象機が意図どおり変化したことを目で確認する。CLIの成功JSONだけでは完了にしない。二重押し、押下不足、アームの位置ずれがあればアプリ側のモード・押下時間・設置位置へ戻る。

4. 公式MCPサーバーを接続する

公式agent guideはMCPを推奨面としており、stdioとHTTPの両方を持つ。ローカルのMCPクライアントなら次をserver commandにする。

command: switchbot
args: [mcp, serve]

サーバー接続後は、まずlist_devicesget_device_statusだけを許可して対象Botが見えることを確認する。その後、send_commandで対象device IDとpressを固定した専用toolまたは承認付きplanを作る。汎用のdevice IDと任意commandをLLMに自由入力させない。

公式CLIには、鍵の解錠などcatalog上のdestructive commandを止めるguardと、plan save → review → approve → executeの確認経路がある。ただし、Botの先にある機械まではcatalogから分からない。 Botのpressがcatalog上で通常操作でも、ヒーターを点けるなら物理的には危険操作である。対象ごとのallowlistと人の承認を残す。

5. 最初のtool契約

最初は引数を持たない1用途のtoolにする。

press_desk_light_button()
  対象: 固定したBot device ID
  コマンド: press
  実行回数: 1回
  再試行: 自動では行わない
  完了: 人または別センサーが結果を確認

API応答が空、タイムアウト、状態不明のときに再送すると二重押しになる。明示の受理応答か物理結果を確認するまで再実行しない。

完了判定

機種とハブ要件はSwitchBot Botの標本、署名生成を含む直接API経路はSwitchBot APIガイドを参照。

出典(2026-08-20確認)

他のガイド