NetPilot-MCP has 7 tools with complete input schemas and descriptions in Chinese. However, critical gaps limit production readiness: (1) Output schemas are undocumented, tools return JSON strings but no schema is declared for what fields agents should expect; (2) Error handling lacks recovery guidance, errors are returned as JSON but do not tell the LLM what to do next or categorize errors as retryable vs fatal; (3) Parameter descriptions are present but lack constraints (enums, ranges, patterns), e.g., 'device_type' accepts 'cisco_ios/huawei_vrp/h3c_comware/ruijie_rgos/auto' but this is buried in description text, not an enum; (4) device_configure is marked IRREVERSIBLE but has no confirmation/dry-run pattern; (5) Credentials are passed as parameters (username, password, enable_password) rather than injected server-side, violating secret-injection pattern. Tool naming is clear (verb_noun style: device_connect, device_execute, device_get_info) and descriptions are adequate (50-150 chars), but lack LLM-optimized guidance on when to use each tool vs alternatives.
进入配置模式并执行批量配置命令。 自动处理模式切换,可选保存配置到设备。
连接到网络设备。 建立 Telnet 或 SSH 连接,自动完成登录认证并识别设备类型。
断开指定的设备连接会话。
在指定设备上执行单条命令。 会自动检测耗时命令(如 ping、traceroute)并增加等待时间。
获取设备配置。
获取设备信息。
列出所有活跃的设备连接会话。
Output schemas undocumented. Tools return JSON strings (e.g., device_connect returns {success, session_id, device_mode, device_type, ...}) but no schema is declared. LLMs cannot plan downstream calls or extract required fields reliably.
Credentials passed as parameters (username, password, enable_password) instead of server-side injection. Secrets will appear in agent logs and prompt history, violating security best practices.
Error responses lack recovery guidance. Errors return {success: false, error: str(e)} but do not tell the LLM whether to retry, ask the user, or abort. No error categorization (retryable vs fatal).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Parameter constraints buried in descriptions instead of declared as enums/patterns. E.g., device_type accepts 'cisco_ios|huawei_vrp|h3c_comware|ruijie_rgos|auto' but is a free-form string. LLMs may hallucinate invalid values.
device_configure (IRREVERSIBLE) lacks confirmation/dry-run pattern. Agents can execute destructive config changes without a safety gate. No way to preview changes before applying.