MCP server for smart hotel device management and control
Three tools with minimal schema rigor and weak descriptions. All tools lack input parameter descriptions, critical gap per pattern:tool-description. Schemas present but sparse (only 'did' and 'room_name' typed as string, no constraints). Descriptions are verbose but lack actionable guidance on WHEN to use each tool or what downstream tools expect. No error handling, no output schema documentation, no pagination despite returning lists. Tool names are acceptable (verb_noun pattern) but descriptions bury key details in Chinese text and example output.
获取当前时间 Returns: str: 当前时间,返回格式yyyy-MM-dd HH:mm:ss,示例 2025-04-23 12:00:00
根据房间名称查询设备列表 Args: room_name (str, optional): 房间名称,示例:302 Returns: str: 房间中设备列表, 示例: 设备列表如下: --- did=111, device_name=吸顶灯, room_name=302, gateway_did=g999 --- did=g999, device_name=蓝牙网关, room_name=302
根据设备ID获取历史属性 Returns: List[str]: 设备历史属性 格式描述: ---time表示发生时间 ---did表示设备ID ---property表示属性名称 ---value表示属性值 返回值示例: [ "time=2025-04-28 12:00:00, did=111, property=开关,value=true", "time=2025-04-28 12:00:00, did=111, property=开关,value=false", "time=2025-04-29 12:00:00, did=111, property=开关,value=true" ]
No parameter descriptions. 'did' and 'room_name' parameters lack descriptions explaining what they control, their format, or constraints. LLMs cannot infer meaning from names alone.
No output schema documented. Tools return strings or lists but do not declare expected structure. LLMs cannot plan downstream calls or extract fields reliably.
Descriptions embed example values (e.g. 'room_name=302', 'did=111'). LLMs tend to reuse examples literally rather than adapt to context, causing failures.
No error handling or recovery guidance. Tools return mock data; no indication of failure modes, retryability, or what to do if a device/room is not found.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
get_history_properties and get_devices_by_room return lists without pagination. No limit, offset, or total_count. Large result sets will blow context windows.