A Model Context Protocol server for controlling Xiaomi Mijia smart home devices, managing homes, devices, scenes, and consumables
Server has 10 tools with schemas and descriptions, but quality is inconsistent. Naming follows verb_noun pattern (list_, get_, control_, run_) which is good. However, descriptions are brief (avg ~60 chars, well below 194-char baseline) and lack context on WHEN to use each tool or what happens on error. Schemas are present but sparse: many parameters lack descriptions (e.g., 'use_mock' in all tools has minimal context). Critical gap: no output schemas documented anywhere, LLMs cannot predict what fields to expect. Error handling is absent from tool definitions. Parameters like 'properties' (array) and 'action_kwargs' (object) lack type clarity. The 'anyOf' constraint on device_id/device_name is good, but underdocumented. Overall: functional but below production baseline.
设置属性或执行设备动作(如开关、亮度、run_action)
从米家规格平台获取设备属性/动作定义
获取设备属性并返回可用属性/动作列表
列出米家设备,可按家庭筛选并包含共享设备
获取设备统计数据(耗电量等)
获取 MCP 服务器运行环境信息
查询耗材/配件状态
No output schemas documented. LLMs cannot predict response structure, forcing them to guess what fields exist and risk malformed downstream calls.
Descriptions are too brief (avg 40 chars vs 194-char baseline). Missing context on WHEN to use each tool, prerequisites, and what happens on error. E.g., 'get_device_status' lacks explanation of when to call it vs control_device.
Parameter descriptions are missing or minimal. 'use_mock' appears in 8 tools with no explanation of what mock mode does or when to enable it. 'properties' array and 'action_kwargs' object lack type clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
列出米家账号下的所有家庭(含共享家庭)
列出家庭下的米家手动场景
执行指定家庭下的米家场景
No error handling guidance in tool definitions. No indication of retryable vs fatal errors, or what the LLM should do if a device is not found or an action fails.
get_mijia_statistics requires a raw 'payload' object with undocumented fields (did/key/data_type/time_start/time_end/limit). This forces LLMs to guess the structure and violates the chat-data-model principle.