SwitchBot MCP Server
# Archived: use the official SwitchBot MCP
This repository is archived and no longer maintained.
Please use the official SwitchBot implementation maintained by OpenWonderLabs:
- [Official repository: OpenWonderLabs/switchbot-openapi-cli](https://github.com/OpenWonderLabs/switchbot-openapi-cli)
- [npm: @switchbot/openapi-cli](https://www.npmjs.com/package/@switchbot/openapi-cli)
- [Agent/MCP guide](https://github.com/OpenWonderLabs/switchbot-openapi-cli/blob/main/docs/agent-guide.md)
## Quick start
```bash
npm install -g @switchbot/openapi-cli
switchbot auth login
switchbot mcp serve
```
The official MCP server supports stdio for local clients:
```bash
switchbot mcp serve
```
It also supports HTTP for a long-lived or remotely hosted agent worker:
```bash
switchbot mcp serve --port 8765
```
For Codex or Claude Code, use the official setup commands documented upstream:
```bash
switchbot codex setup
switchbot claude-code setup
```
If browser authentication is not available, configure an API token and secret with:
```bash
switchbot config set-token <token> <secret>
```
This repository is retained for historical reference only. Do not use its old package name, source-build instructions, or configuration examples for new deployments.
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: control_device performs actions on devices, get_device_status retrieves status information, and list_devices enumerates available devices. The descriptions clearly differentiate between controlling, checking status, and listing devices.
All three tools follow a consistent verb_noun pattern with snake_case naming: control_device, get_device_status, and list_devices. The naming is perfectly uniform and predictable across the entire tool set.
With only 3 tools, the count feels somewhat thin for a device control server that might benefit from more granular operations like specific device types or advanced controls. However, it covers the absolute basics adequately.
The tools provide basic CRUD-like coverage for device management (list, get status, control), but there are notable gaps such as no ability to create/configure new devices, delete devices, or handle device groups/scenes. The surface is functional but minimal.