MCP server for Samsung SmartThings – devices, scenes, notifications, and Rules/Routines. Uses OAuth2 with automatic token refresh.
Server has 17 tools with basic naming (verb_noun pattern mostly followed) and descriptions present, but quality is inconsistent. Most tool descriptions are adequate (50-150 chars), but parameter descriptions are sparse or missing entirely. Input schemas are visible in the code but lack proper JSON Schema structure with type constraints, enums, and validation rules. No output schemas documented. Error handling is minimal, most tools return raw API responses without recovery guidance. Security concern: OAuth tokens stored in plaintext JSON file. Composition is reasonable (single-responsibility tools), but several tools lack idempotency guarantees and confirmation steps for destructive operations.
Create a virtual switch device named 'CopilotAlert' for use with send_notification.
Create a new Rule (Routine/automation).
Delete a Rule (Routine/automation) by ID.
Execute a Rule (Routine/automation) by ID.
Execute a scene by ID.
Get details of a specific device by ID.
Get details of a specific Rule by ID.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to parse unstructured output and plan downstream calls blindly.
Complex parameters (triggers, actions arrays in create_routine/update_routine) lack schema definition. No enum constraints, no nested object structure, no validation rules. LLMs will hallucinate invalid trigger/action payloads.
Destructive operations (delete_routine) lack confirmation step or dry-run mode. No recovery guidance in error responses. Agents can permanently delete automations without safeguards.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
List all devices in the SmartThings account.
List all Rules (automation rules) in the SmartThings account.
List all scenes in the SmartThings account.
Send a notification by toggling the CopilotAlert virtual switch ON then OFF. The user must create a SmartThings Automation: Trigger: CopilotAlert switch turns ON → Action: Send push notification. This tool toggles the switch ON (triggering the automation), waits briefly, then toggles it OFF to reset for next use.
Set the brightness of a light device (0–100).
Set the color of a light device (hue, saturation, brightness).
Turn a switch device ON or OFF.
Set the color temperature of a light device (in Kelvin).
Set the thermostat mode and target temperature.
Update an existing Rule (Routine/automation).
OAuth tokens stored in plaintext JSON file (/app/data/tokens.json). No encryption, no secure storage. If container is compromised, attacker gains full SmartThings account access.
No pagination support in list_devices, list_scenes, list_rules. Large accounts will return thousands of items, exhausting context window and degrading LLM reasoning.