About SmartThings MCP
SmartThings MCP is an MCP server published by langowarny in the Social category: mCP server for the SmartThings API.
The repository has 4 stars and 3 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/langowarny/smartthings-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (22)
create_room`location_id`, `name`
Parameters not published.
create_schedule`installed_app_id`, `name`, `cron`
Parameters not published.
create_subscription`installed_app_id`, `device_id`, ...
Parameters not published.
delete_room`location_id`, `room_id`
Parameters not published.
delete_schedule`installed_app_id`, `schedule_id`
Parameters not published.
delete_subscription`installed_app_id`, `subscription_id`
Parameters not published.
execute_scene`scene_id`
Parameters not published.
get_capability`capability_id`, `version`
Parameters not published.
get_device`device_id`
Parameters not published.
get_device_history`device_id`
Parameters not published.
Show all 22 tools
get_device_status`device_id`
Parameters not published.
get_hub_health`hub_id`
Parameters not published.
list_device_capabilities`device_id`
Parameters not published.
list_devices`location_id?`
Parameters not published.
list_hubs–
Parameters not published.
list_locations–
Parameters not published.
list_rooms`location_id`
Parameters not published.
list_rules–
Parameters not published.
list_scenes–
Parameters not published.
list_schedules`installed_app_id`
Parameters not published.
list_subscriptions`installed_app_id`
Parameters not published.
send_device_command`device_id`, `component`, `capability`, `command`, `arguments?[]`
Parameters not published.
Ask AI
Ask AI about SmartThings MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Lango SmartThings MCP Server
A Model Context Protocol (MCP) server that exposes Samsung SmartThings Public API as LLM-friendly tools, resources and real-time events.
Features
- Lazy Loading: Tools are discoverable without authentication - only validates API keys when tools are invoked
- Wraps common SmartThings operations as MCP Tools
- Devices:
list_devices,get_device,get_device_status,list_device_capabilities,send_device_command - Locations & Rooms:
list_locations,list_rooms,create_room,delete_room - Scenes & Rules:
list_scenes,execute_scene,list_rules - Hubs:
list_hubs,get_hub_health - Subscriptions:
list_subscriptions,create_subscription,delete_subscription - Schedules:
list_schedules,create_schedule,delete_schedule - History:
get_device_history - Capabilities:
get_capability
- Devices:
- Exposes device / status / location data as MCP Resources with read-through cache
- Supports all official MCP-Go transports
- Stdio (CLI / local), StreamableHTTP, Server-Sent Events (SSE)
- Periodic poller publishes live device status to SSE clients
- Zero external dependencies apart from
mcp-goandzaplogger
Requirements
- Go ≥ 1.23
- A valid SmartThings PAT (Personal Access Token)
Getting a Personal Access Token (PAT)
- Go to SmartThings Personal Access Tokens.
- Log in with your Samsung Account.
- Click Generate new token.
- Enter a name for your token and select the authorized scopes (e.g.,
devices,locations,scenes,rules,schedules). - Click Generate token.
- Copy and save the token immediately (it won't be shown again).
Environment Variables
| Name | Default | Description |
|---|---|---|
smartThingsToken, SMARTTHINGS_TOKEN |
– | Bearer token for SmartThings API. Required for SmartThings operations, but server will start without it for tool discovery |
stBaseUrl, ST_BASE_URL |
https://api.smartthings.com |
Override for testing / mock servers |
MCP_LOG_LEVEL |
info |
debug |
Installation
Installing via Smithery
To install smartthings-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @langowarny/smartthings-mcp --client claude
Manual Installation
git clone https://github.com/langowarny/smartthings-mcp.git
cd smartthings-mcp
go mod download
Running
Stdio
SMARTTHINGS_TOKEN=123ab456-xxx... go run ./cmd/server -transport stdio
StreamableHTTP
SMARTTHINGS_TOKEN=123ab456-xxx... \
go run ./cmd/server -transport stream -host 0.0.0.0 -port 8081
Test request:
curl -X POST http://localhost:8081/mcp/tools/call \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_devices"}}'
SSE
SMARTTHINGS_TOKEN=123ab456-xxx... \
go run ./cmd/server -transport sse -host 0.0.0.0 -port 8081
# Open event stream
echo -e 'GET /mcp/sse HTTP/1.1\nHost: localhost:8081\n\n' | nc localhost 8081
The server emits smartthings/device_status notifications every 30 seconds.
Tool Catalogue
| Tool | Params | Description |
|---|---|---|
list_devices |
location_id? |
List user devices |
get_device |
device_id |
Device metadata |
get_device_status |
device_id |
Live status |
list_device_capabilities |
device_id |
Supported capabilities |
send_device_command |
device_id, component, capability, command, arguments?[] |
Issue command |
list_locations |
– | List locations |
list_rooms |
location_id |
List rooms in a location |
create_room |
location_id, name |
Create a new room |
delete_room |
location_id, room_id |
Delete a room |
list_scenes |
– | List all scenes |
execute_scene |
scene_id |
Trigger scene |
list_rules |
– | List automation rules |
list_hubs |
– | List hubs |
get_hub_health |
hub_id |
Get hub health status |
list_subscriptions |
installed_app_id |
List subscriptions |
create_subscription |
installed_app_id, device_id, ... |
Subscribe to device events |
delete_subscription |
installed_app_id, subscription_id |
Delete subscription |
list_schedules |
installed_app_id |
List schedules |
create_schedule |
installed_app_id, name, cron |
Create cron schedule |
delete_schedule |
installed_app_id, schedule_id |
Delete schedule |
get_device_history |
device_id |
Get recent device events |
get_capability |
capability_id, version |
Get capability definition |
Resource Patterns
| URI Template | Description | MIME |
|---|---|---|
st://devices/{device_id} |
Device metadata | application/json |
st://devices/{device_id}/status |
Live status | application/json |
st://locations/{location_id} |
Location metadata | application/json |
Development
go vet ./...
go test ./...
go run ./cmd/server -transport stream
Logs are emitted via Uber Zap; adjust MCP_LOG_LEVEL for verbosity.
License
MIT © 2025 Lango Warny
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.