Standalone MCP server (Streamable HTTP) for eWeLink CUBE box. No dependency on the dashboard repo.
Server has 26 well-named tools with consistent verb_noun patterns (cube_*, history_*). Most tools include descriptions and input schemas using Zod validation. However, parameter descriptions are sparse or missing entirely in many tools. Output schemas are not documented, responses are JSON-stringified but structure is not declared. Error handling returns generic error messages without recovery guidance. Tool composition is sound (single responsibility), but descriptions lack the depth needed for optimal LLM selection (many are 20-50 chars, below the 50-200 char baseline for A-grade tools).
Recent CUBE SSE events from the server-side buffer
Status of the persistent CUBE SSE connection
Get gateway bridge info (ip, mac, firmware, name)
Mute gateway speaker
Get gateway runtime (cpu, ram, temp, uptime)
Unmute gateway speaker
Set gateway speaker volume (0-100)
Output schemas not documented. Tools return JSON-stringified responses but structure is not declared. LLMs cannot plan downstream calls or extract fields reliably.
Parameter descriptions missing or minimal. Many parameters lack descriptions explaining their purpose, format, or constraints (e.g., cube_gateway_volume 'volume' param has no description; cube_set_device_state 'state' param is vague).
Error handling lacks recovery guidance. Errors return generic 'Error: <message>' without actionable next steps. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | <=2025-11-25 | v2 |
Get one device by serial number
List all Zigbee devices on the CUBE
Live device state cache built from SSE + list_devices seeding
Single pairing attempt: GET access_token once (user must press iHost link button first)
Poll access_token until the iHost link button is pressed, then activate the token in this server process
Switch/plug power control (uses power or toggle capability)
Query device capability state (e.g. power-consumption with {start_time,end_time,interval})
Rename a device
Light brightness 1-100
Light color temperature 0-100
Generic control: PUT /devices/{serial} with {state}. Example state: {power:{powerState:'on'}}, {brightness:{brightness:80}}
Light RGB color 0-255 per channel
Show whether CUBE_BASE_URL and CUBE_ACCESS_TOKEN are configured
Get total count of recorded readings
Get latest readings for all recorded capabilities
List all devices that have recorded history
Query recorded history for a device capability
Record snapshots for all online devices
Record one device snapshot into this server's own history DB
Tool descriptions too brief. Many descriptions are 20-70 characters (below 50-200 char baseline). Descriptions like 'Mute gateway speaker' lack context on when to use vs similar tools or what the response contains.
No pagination support for list tools. cube_list_devices and history_list_devices return all results without limit or offset parameters. Large device lists could exhaust context windows.