The server defines 14 tools with complete input schemas and descriptions, but descriptions are written primarily in Chinese and lack depth regarding when/why to use each tool vs alternatives. Schemas are well-structured with type definitions, enums for constrained fields, and default values. However, output schemas are NOT documented, critical for LLM planning. Error handling is minimal (only catches SerialError generically). Tool names follow verb_noun pattern consistently. Parameter descriptions exist but lack validation ranges and recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite mixing READ_ONLY and WRITE operations.
清空指定终端会话的输出缓冲区
关闭指定串口连接
关闭指定的终端会话
在已打开串口上创建终端会话,支持配置换行符和本地回显
获取指定终端会话的详细信息
获取已打开串口的当前状态和配置信息
列出所有可用串口设备,返回设备路径、描述信息和硬件ID
列出所有活动的终端会话
Output schemas are NOT documented. The handle_call_tool function returns JSON-serialized results, but the structure and fields of each response are never specified. LLMs cannot plan multi-step call chains without knowing what fields to expect.
Tool annotations missing. Tools are marked with Risk levels (READ_ONLY, WRITE) but input schemas lack readOnlyHint and destructiveHint annotations. Clients cannot distinguish safe operations from destructive ones without parsing metadata outside the schema.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 58 | - | v1 |
打开指定串口,支持自定义配置参数
从已打开的串口读取数据,支持文本和二进制模式
读取终端输出缓冲区的内容
向终端发送命令,可选择是否自动添加换行符
向已打开的串口发送数据,支持文本和二进制模式
修改已打开串口的配置(热更新,无需关闭重开)
Descriptions lack recovery/context guidance. Descriptions tell what the tool does but not when to use it instead of a similar tool. E.g., 'open_port' vs 'create_session', when should LLM choose each? No guidance on prerequisites or what to do on error.
Error handling is generic. Only SerialError is caught specifically; all other errors return a generic '-1' code with message. No categorization of retryable vs user-fixable vs fatal. No guidance on what action to take next (e.g., 'port already open, try close_port first').
Parameter ranges not enforced. baudrate, bytesize, stopbits, read_timeout_ms, write_timeout_ms all have stated constraints in descriptions, but no actual validation or bounds checking in the schema (no minimum/maximum in JSON Schema). LLM could pass -1 for timeout without schema rejection.
Descriptions are in Chinese. While technically complete, non-ASCII descriptions may not be reliably parsed by all LLM tokenizers or agent frameworks. Standard practice is English descriptions for tool definitions.
No pagination/limit documentation. Tools like list_ports, list_sessions return all items with no pagination. If 100+ ports exist, response balloons and wastes context. No limit parameter or warning in description.