MCP server for controlling TP-Link Tapo smart home devices
Server has 10 tools with basic descriptions and input schemas, but significant gaps limit production readiness. All tools have descriptions (10-100+ chars), and most parameters have type definitions. However, descriptions are often generic and lack actionable context for LLM selection. No output schemas documented. Error handling is minimal, most tools return plain strings without structured guidance. Parameter descriptions are sparse (e.g., 'Device IP address or alias/name' repeated across all tools). No enum constraints, validation ranges, or dependency hints. Tool composition is reasonable (single responsibility), but missing idempotency guarantees and recovery guidance.
Turn on/off a specific outlet on a smart power strip.
Scan the local network for all TP-Link/Tapo smart devices. Returns device name, model, IP, and current state for each device found.
Get detailed info about a specific device.
List all outlets on a smart power strip (e.g. EP40).
Set brightness of a Tapo light/bulb.
Set color of a Tapo RGB light/bulb.
No output schemas documented. Tools return plain JSON strings without structured field definitions. LLMs cannot reliably extract or chain results.
Parameter descriptions are generic and repeated ('Device IP address or alias/name' appears in 9 tools). No validation ranges, enums, or format hints. LLMs cannot self-correct invalid input.
Error handling is minimal. Tools return plain strings like 'Brightness must be between 1 and 100' or 'does not support brightness control'. No recovery guidance or actionable next steps for LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Set color temperature of a Tapo light/bulb.
Toggle a Tapo device on/off.
Turn off a Tapo device.
Turn on a Tapo device.
Credentials hardcoded to macOS Keychain lookup. No support for environment variables, config files, or alternative secret stores. Breaks on non-macOS systems and in CI/CD.
No idempotency guarantees or confirmation steps for destructive operations (turn_off, set_color, control_strip_outlet). Agents retrying on transient failures risk unintended state changes.