MCP server for controlling SwitchBot Cloud devices and infrared remotes via the SwitchBot API
Server has 5 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (list_, get_, send_, execute_). Descriptions are adequate (100-250 chars) but lack actionable guidance on when to use each tool vs. alternatives. Parameter descriptions are present but sparse. No output schemas documented. Error handling exists but lacks recovery guidance. Security is strong (input validation, no secrets in params). Missing tool annotations (readOnlyHint/destructiveHint).
Execute (run) a SwitchBot manual scene by its sceneId (from switchbot_list_scenes). E.g. run a room-cleaning scene like 'リビングを掃除'.
Get detailed status for a single SwitchBot device.
List SwitchBot Cloud devices and infrared remotes. Returns compact device IDs, names, types, and hub IDs for selecting targets.
List manual scenes configured in the SwitchBot app. Scenes are the only way to do room-specific robot-vacuum cleaning (the device API has no room selection). Returns sceneId + sceneName; match the name the user asks for, then call switchbot_execute_scene. Scenes cannot be created via API — only in the SwitchBot app.
Send a SwitchBot command. Common commands: turnOn, turnOff, setPosition, setMode. Use command_type='customize' for custom IR remote buttons.
No output schemas documented. LLMs cannot predict response structure or plan downstream calls. E.g., switchbot_list_devices returns device_count, devices[], infrared_remote_count, infrared_remotes[] but this is not declared in tool definition.
Missing tool annotations. No readOnlyHint on read-only tools (list_devices, get_status, list_scenes) or destructiveHint on write tools (send_command, execute_scene). Agents cannot distinguish safe from risky operations.
Parameter 'parameter' in switchbot_send_command lacks type definition. Schema shows only description but no 'type' field. Agents cannot validate input format (string vs object).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Error messages are generic ('switchbot {code}: {message}'). No recovery guidance. E.g., if device_id is invalid, error should suggest 'Call switchbot_list_devices to find valid device IDs.'
switchbot_send_command description mentions 'Common commands: turnOn, turnOff, setPosition, setMode' but does not explain which commands apply to which device types. Agents may pass invalid command/device combinations.