list_devicesLABSCO SUMMARY
The home readable as data, and controllable in the same breath.
Because capabilities are readable per device, an assistant can establish what a given device will accept before it sends anything — which is the difference between controlling a home and guessing at it.
What it is
A wrapper around Samsung's SmartThings public API. Devices, their current status and their capabilities are readable, and commands go the other way. Tools are discoverable before you supply a token, and the token is only validated when one is actually called.
What you get
- Every device on the account listed, and any one of them read in full
- Current status for a device — what it is doing right now, not what it was last set to
- The capability list for a device, which is what tells you which commands it will accept
- Commands sent to a device through that same capability model
- Locations and rooms listed, so devices can be reasoned about by where they are
Requirements
Go 1.23 or newer to build. A SmartThings Personal Access Token from account.smartthings.com/tokens with the scopes you intend to use, supplied through the environment — the server starts without it for tool discovery, but every real operation needs it.
Setup effort
One command plus a key — npx -y @smithery/cli install @langowarny/smartthings-mcp --client claude, then supply credentials
USE CASES
Finding out what is on and what is not
List the devices and read their current status — the sweep you do before leaving the house.
Turning something off from wherever you are
Name the device, check what it accepts, send the command.
Working room by room
Locations and rooms come back as their own lists, so "everything in the kitchen" is answerable rather than a filter you maintain by hand.
Working out why a device will not do what you asked
Read its capabilities and its live status together — usually one of the two explains the refusal.
22 tools
Listed in project docs. Your client may show a different list.
get_deviceget_device_statuslist_device_capabilitiessend_device_commandlist_locationslist_roomscreate_roomdelete_roomlist_scenesexecute_scenelist_ruleslist_hubsget_hub_healthlist_subscriptionscreate_subscriptiondelete_subscriptionlist_schedulescreate_scheduledelete_scheduleget_device_historyget_capabilityBEFORE YOU INSTALL
What to know first
Tools you get
22 tools named in the project's documentation. Tools are listed before your token is checked, so only a first real call confirms setup. Ten write to your home, and your Personal Access Token needs matching scopes; without the scenes scope, execute_scene fails.
Requires
- Go ≥ 1.23
- SMARTTHINGS_TOKEN in your environment
INSTALLATION
Connect your client
Server setup
Setup
git clone https://github.com/langowarny/smartthings-mcp.git
cd smartthings-mcp
go mod downloadObtain a SmartThings Personal Access Token at https://account.smartthings.com/tokens (Generate new token, pick scopes e.g. devices, locations, scenes, rules, schedules, then copy it — it won't be shown again)
Run it, e.g.:
SMARTTHINGS_TOKEN=<YOUR_123AB456>... go run ./cmd/server -transport stdionpx
npx -y @smithery/cli install @langowarny/smartthings-mcp --client claudeMCP Clients
Claude Desktop — Smithery
npx -y @smithery/cli install @langowarny/smartthings-mcp --client claudeThe configuration on this page does not set SMARTTHINGS_TOKEN. The README sets it as an environment variable on the command that starts the server (SMARTTHINGS_TOKEN=… go run ./cmd/server -transport stdio). The server starts without it, but SmartThings operations need it.