SwitchBot Botは、APIを持たない既存のボタンにAIの指を足せる。ただし、Bot自身が安全でも、貼り付けた先がヒーター、ドア、電源遮断ボタンならpressの意味は変わる。公式MCPの安全分類だけに任せず、どの物理ボタンを押すかを人が先に決める。
本稿は2026年8月20日にSwitchBot公式OpenAPI CLIとagent guideを確認した手順で、ロボ図鑑では実機確認を終えていない。実際にBotを押していないため実測済みとは扱わない。
0. Botを貼る場所を先に選ぶ
最初の対象は、押し間違えても損害が小さく、状態を目で確認できるものにする。卓上ライトや呼び鈴のような単発ボタンが向く。次は避ける。
- 暖房器具、調理器具、給湯、火気
- 玄関解錠、シャッター、ガレージ
- PC・NAS・ネットワーク機器の強制電源断
- 医療・介護・防犯に関わるボタン
- 押した結果をその場で確認できない機器
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_devicesとget_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応答が空、タイムアウト、状態不明のときに再送すると二重押しになる。明示の受理応答か物理結果を確認するまで再実行しない。
完了判定
- 公式CLIのdoctorが通る
- 対象Botのdevice IDを物理ラベルと突合した
- CLIから1回だけpressし、実機結果を確認した
- MCPでは対象IDとpressを固定している
- タイムアウト時の自動再試行がない
- 危険な機器へBotを取り付けていない
機種とハブ要件はSwitchBot Botの標本、署名生成を含む直接API経路はSwitchBot APIガイドを参照。