eNSP Automation MCP
This server automates Huawei eNSP network lab workflows — from topology generation and VRP configuration to bulk deployment and verification.
Generate Campus Projects & Configs
Generate complete eNSP campus projects with
.topofiles, embeddedvrpcfg.zip, service steps, and test plans (supportsshowcase~30 devices andstandard~13 devices templates).Output all Huawei VRP CLI configurations for the built-in campus network topology.
Retrieve the built-in campus network plan (devices, links, VLANs, services, NAT, ACLs).
Verification & Debugging
Retrieve verification commands, service tests, ACL/NAT tests, and complete debug cases for lab acceptance and reporting.
Device Discovery & Interaction
Scan local TCP ports (default 2000–2050) to discover active eNSP devices via Telnet/console.
Connect to individual eNSP devices via Telnet and execute VRP commands.
Apply bulk VRP configuration commands to a single connected device.
Bulk Deployment & Persistence
One-click deployment of the full campus VRP configuration set to all devices using the default port map.
Send save/confirm commands to all campus devices to persist configurations.
Session Management
List all active Telnet sessions.
Disconnect specific active Telnet sessions.
Provides tools for automating eNSP network simulation, including topology generation, VRP configuration, and batch deployment for Huawei devices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eNSP Automation MCPGenerate a campus network topology and configurations."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
eNSP Automation MCP
一个面向 eNSP 拓扑生成、VRP 配置下发和实验验收的 MCP 服务。
它能帮 agent 生成网络拓扑、输出华为 VRP 配置、批量下发配置,并给出验收命令和调试案例。定位很明确:把 eNSP 里重复搭拓扑、重复写配置、重复整理验证命令这部分省下来。
这不是华为官方工具,也不是 eNSP 官方插件。它是一个基于
.topo工程生成 + Telnet/Console CLI 自动化的开源 MCP 项目。
现在能跑到什么程度
目前内置了两种校园网示例模板。它们不是万能模板,只是相对完整的起点:有分区、有路由、有出口、有服务、有安全策略,拿来做实验、录演示、整理验证证据都比较方便。
showcase 是默认模板,设备和连线更多,适合录屏展示和做一张看起来完整的拓扑图。它大概长这样:
6 个 VLAN:教师、学生、实验室、服务器、管理、访客。
30 多台设备,40 多条线,看起来像一个完整校园网,而不是两台交换机随便连一下。
接入口走 Access,交换机之间走 Trunk。
跨 VLAN 通信用 AR 子接口做。
路由部分用 OSPF area 0,出口再配一条默认路由。
DHCP 地址池放在核心路由侧。
DNS、Web、FTP 这三类服务会把地址和测试步骤写清楚。
出口有 NAT/PAT。
ACL 做了两条比较典型的限制:
学生区不能访问管理区。
访客区不能访问校园内网,但能访问模拟外网。
生成验收用的命令、测试点和一个调试案例,方便后面截图写报告。
standard 是精简模板,保留关键网络功能,但设备数量和连线少很多,更适合答辩讲解、课堂演示和快速验证:
13 台设备,12 条线。
6 个 VLAN:教师、学生、实验室、服务器、管理、访客。
1 台 ISP 路由器、1 台出口路由器、1 台核心交换机、1 台接入交换机。
DNS、Web、FTP 三台服务器和 5 类测试终端。
出口路由器负责跨 VLAN 网关、DHCP、静态默认路由、NAT/PAT 和 ACL。
Related MCP server: Packet Tracer Visual MCP
重要限制
eNSP 和 Packet Tracer 不一样,没有稳定公开的 addDevice/addLink 画布控制接口。所以本项目采用更稳的路线:
生成
.topo拓扑工程。在 eNSP 里打开拓扑并启动设备。
MCP 扫描 eNSP 暴露的 Telnet/Console 端口。
MCP 批量下发 VRP 配置并保存。
有些 eNSP 版本不会稳定加载生成工程里的 vrpcfg.zip。如果打开设备还是 <Huawei>,不是项目失效,直接使用批量下发配置工具即可。
PC / Server 的 IP 和 DNS/Web/FTP 图形服务也不一定能由 .topo 稳定恢复,报告验收前建议手动确认。
快速安装
git clone https://github.com/<your-name>/ensp-automation-mcp.git
cd ensp-automation-mcp
pip install -e . --no-deps --no-build-isolation如果你本机已经能正常安装 MCP 依赖,也可以直接:
pip install -e .MCP 客户端配置
通用 MCP JSON 配置示例:
{
"mcpServers": {
"ensp-automation-mcp": {
"command": "ensp-automation-mcp",
"args": []
}
}
}Codex 风格 TOML 配置示例:
[mcp_servers.ensp-automation-mcp]
command = "ensp-automation-mcp"
args = []配置好后重启你的 agent / MCP 客户端。
工具列表
工具 | 用途 |
| 查看内置校园网方案 |
| 生成 |
| 输出所有 VRP 配置 |
| 输出验收命令、业务测试、调试案例 |
| 扫描 eNSP 设备 Telnet/Console 端口 |
| 连接单台 eNSP 设备 |
| 在单台设备执行命令 |
| 给单台设备批量下发配置 |
| 按默认端口映射一键下发整套校园网配置 |
| 按默认端口映射一键保存整套校园网配置 |
| 查看当前 Telnet 会话 |
| 断开 Telnet 会话 |
推荐使用流程
调用
ensp_generateCampusProject生成工程。默认是showcase,需要精简版就传template: "standard"。在 eNSP 中打开生成的
.topo。启动设备,建议分批启动:先路由器,再核心/汇聚交换机,再接入交换机,最后 PC/Server。
调用
ensp_scanTelnetPorts,确认端口在线。调用
ensp_applyCampusConfigsByPortRange批量下发配置。调用
ensp_saveCampusConfigsByPortRange保存设备配置。调用
ensp_getVerificationPlan,按命令截图验收。
默认端口映射从 2000 开始:
showcase:
AR-ISP 2000
AR-EDGE 2001
AR-CORE-A 2002
AR-CORE-B 2003
LSW-CORE1 2004
...
LSW-IOT-ACC 2019
standard:
AR-ISP 2000
AR-EDGE 2001
LSW-CORE 2002
LSW-ACCESS 2003服务器手动服务项
如果 eNSP Server 图形服务没有自动恢复,请手动设置:
SRV-DNS
IP: 192.168.40.10/24
Gateway: 192.168.40.1
DNS: On
www.campus.local -> 192.168.40.20
ftp.campus.local -> 192.168.40.30
SRV-WEB
IP: 192.168.40.20/24
Gateway: 192.168.40.1
HTTP: On
SRV-FTP
IP: 192.168.40.30/24
Gateway: 192.168.40.1
FTP: On
User: ftpuser / cisco什么情况下适合用
如果你是在做这些事,这个项目会比较顺手:
eNSP 网络实验,不想从零拖设备、写重复配置。
网络工程演示,需要一套看起来完整、配置也说得通的拓扑。
想让支持 MCP 的 agent 帮你生成拓扑、下发配置、列验收命令。
想研究 eNSP 工程文件和 VRP 配置自动化。
先说清楚哪些事它做不了
它不是用来管真实生产网络的。
它不是华为官方工具,eNSP 版本差异导致的问题只能尽量兼容。
它不能绕开 eNSP 自己的限制,比如 Server 图形服务有时还是要手动点。
它也不是“打开拓扑就百分百全自动恢复配置”。如果设备还是
<Huawei>,就走 Telnet 批量下发配置。
开发
python -m py_compile (Get-ChildItem -Path .\src\ensp_automation_mcp -Filter *.py | ForEach-Object { $_.FullName })
python -c "from ensp_automation_mcp.tools import TOOLS; print(len(TOOLS)); print([t['name'] for t in TOOLS])"许可证
MIT License. See LICENSE.
Available Tools
12 toolsensp_applyCampusConfigsByPortRangeC
Apply the built-in campus VRP configs to eNSP devices by the generated default port map: AR-ISP=2000 through LSW-IOT-ACC=2019.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | 127.0.0.1 | |
| waitMs | No | ||
| basePort | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It only states that configs are applied via a port map, but does not explain side effects (e.g., overwriting existing configs), idempotency, required device state, error conditions, or whether it mutates state. This is insufficient for an agent to safely invoke the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise and front-loads the core action ('Apply ... configs'). Every word serves a purpose, but it could be slightly restructured to clarify the relationship between the port map and parameters without increasing length significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and parameter documentation, the description is incomplete. It does not explain what happens after applying (return values), what inputs are needed beyond defaults, or how the tool fits into the broader workflow. The description leaves the agent without enough information to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It only indirectly explains the basePort parameter through the example port range (2000-2019), but does not describe the host or waitMs parameters at all. The connection between the default port map and basePort is unclear, and the description fails to provide enough context for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool applies built-in campus VRP configs to eNSP devices using a default port map. It gives a specific example (AR-ISP=2000 through LSW-IOT-ACC=2019), which helps clarify the scope. However, it does not differentiate from sibling tools like ensp_generateCampusConfigs or ensp_saveCampusConfigsByPortRange, leaving ambiguity about when to use this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as ensp_telnetApplyConfig or ensp_applyCampusConfigsByPortRange itself. There is no mention of prerequisites, when not to use it, or relationships with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_generateCampusConfigsA
Return all Huawei VRP configs for the built-in campus network topology.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as returning configs, which implies a read-only operation, but does not explicitly state side effects (e.g., no state changes) or performance characteristics. The lack of disclosure about potential delays or caching is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with 13 words. It is front-loaded and contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is minimal but adequate for a simple retrieval. However, it does not specify the return format or what 'all' entails, leaving some ambiguity for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage. According to guidelines, baseline is 4 for zero-parameter tools. The description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Return) and the resource (all Huawei VRP configs for the built-in campus network topology). This distinguishes it from sibling tools like ensp_applyCampusConfigsByPortRange or ensp_saveCampusConfigsByPortRange, which modify or save configs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the purpose is clear, the description does not mention prerequisites, output format, or context for selection among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_generateCampusProjectC
Generate a complete eNSP campus project: .topo, embedded vrpcfg.zip per VRP device, plain configs, service steps, and test plan.
| Name | Required | Description | Default |
|---|---|---|---|
| outputDir | No | E:\\mc\\ENSP_Campus_MCP | |
| overwrite | No | ||
| projectName | No | Campus_eNSP_MCP |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions generating multiple artifacts but does not disclose behavioral traits such as destructive potential (e.g., overwrite parameter existence hints at overwriting, but not stated), side effects, or required access rights. The lack of annotation coverage means the description should do more to explain behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that lists outputs; it is concise but not well-structured. It could benefit from separating purpose, parameters, and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of generating a campus project with multiple artifacts, the description is incomplete. It lacks parameter explanations, return value details (no output schema), and any context about file creation or behavior. The 0% parameter coverage and no annotations exacerbate the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not explain any of the three parameters (outputDir, overwrite, projectName). No added meaning beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and the resource 'complete eNSP campus project', listing specific outputs (.topo, vrpcfg.zip, configs, service steps, test plan). This distinguishes it from sibling tools that focus on applying configs or connecting via Telnet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, no prerequisites, and no when-not-to-use conditions. It only states what it does without contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_getCampusPlanA
Return the built-in eNSP campus network example plan: devices, links, VLANs, services, NAT, ACLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states what is returned, not behavioral traits such as read-only nature, side effects, or prerequisites. For a tool with no annotations, more context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Efficiently communicates the tool's action and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool, the description is adequate: it lists key components of the returned plan. Absence of output schema is mitigated by the description's enumeration, though structure details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters; baseline is 4 per guidelines. Description adds no parameter info, but none is needed since schema coverage is 100% and there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Return' and resource 'built-in eNSP campus network example plan', listing contained elements (devices, links, VLANs, services, NAT, ACLs). Clearly distinguishes from sibling tools that apply, generate, save, or verify configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage when the built-in plan is needed, but provides no explicit when-to-use or when-not-to-use guidance, nor mentions alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_getVerificationPlanB
Return verification commands, service tests, ACL/NAT tests, and a complete debug case.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only lists return content but does not state whether the tool is read-only, has side effects, requires prior steps (e.g., generating configs), or the potential size of the debug case. This is insufficient for an agent to understand the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that covers the essential information efficiently. However, it could be slightly expanded to include behavioral context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is incomplete. It does not explain the return format, whether the output is a list or single object, or how it fits into the workflow of other sibling tools. The agent lacks key context for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty. The description adds meaning by explaining what the tool returns, which is necessary since the schema provides no context. This meets the baseline of 4 for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns verification commands, service tests, ACL/NAT tests, and a debug case, which gives a specific and distinct purpose. However, the verb 'Return' is somewhat vague; a more action-oriented verb like 'Retrieve' would be stronger. It differentiates from sibling tools which focus on generation, application, or connection management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ensp_generateCampusConfigs or ensp_getCampusPlan. There is no mention of prerequisites, typical workflow context, or when not to use it. The agent is left to infer usage from the tool name and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_saveCampusConfigsByPortRangeC
Send interactive save/y to all generated campus VRP devices by default port map.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | 127.0.0.1 | |
| basePort | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It mentions 'save' implying mutation but does not specify if destructive, required permissions, or side effects. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it omits critical information needed for effective use. Conciseness is not beneficial if it sacrifices clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 0% param coverage. The description fails to explain what 'interactive save/y' means, the port range mechanism, or success/failure behavior. Inadequate for a tool with 2 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. Description does not explain parameters host and basePort beyond their names. 'Default port map' is vague and does not clarify how these params are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'send interactive save/y' and resource 'campus VRP devices', but 'interactive save/y' is jargon and unclear. It does not differentiate from sibling tools like ensp_applyCampusConfigsByPortRange or ensp_telnetExecute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_scanTelnetPortsB
Scan local eNSP device Telnet/console TCP ports, usually 2000-2050 or the range shown by eNSP.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | 127.0.0.1 | |
| endPort | No | ||
| startPort | No | ||
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only mentions scanning TCP ports but lacks details on methodology (e.g., SYN scan), output format, behavior on timeout or closed ports, or prerequisites like eNSP running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. Every word contributes to the core purpose. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 undocumented parameters, the description is insufficient. It lacks explanation of output, scanning behavior, and relationship to sibling tools like ensp_telnetConnect. A more complete description would include what results look like and preconditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It mentions the port range but does not explicitly link 'startPort' and 'endPort' to the range, nor explain 'host', 'timeoutMs'. The description adds minimal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'scan', the resource 'local eNSP device Telnet/console TCP ports', and the typical port range. It clearly distinguishes from siblings which are configuration or connection tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for scanning ports before connecting, but does not provide explicit guidance on when to use this tool versus alternatives like ensp_telnetConnect. No when-not or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_telnetApplyConfigC
Send many Huawei VRP configuration commands to one connected device.
| Name | Required | Description | Default |
|---|---|---|---|
| waitMs | No | ||
| commands | Yes | ||
| sessionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral details beyond the basic action. It does not mention return values, errors, or the effect of parameters like waitMs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loaded, but at the expense of missing critical details. It could include more information without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It lacks details on return values, error handling, and parameter constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to any parameter. The three parameters (sessionId, commands, waitMs) are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sends many configuration commands to one connected device, using specific verbs and resource. It distinguishes from sibling tools like ensp_telnetExecute (likely single commands) and ensp_telnetConnect/Disconnect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for batch commands to a single device but provides no explicit when-to-use vs alternatives. No exclusions or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_telnetConnectC
Connect to one Huawei eNSP VRP device through Telnet/console TCP.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | 127.0.0.1 | |
| name | No | ||
| port | Yes | ||
| password | No | ||
| username | No | ||
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior like session creation, blocking nature, or timeouts. It only states the connection method, omitting details on authentication, side effects, or output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it sacrifices necessary detail. It is not structured to front-load critical information beyond the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema, no annotations), the description is severely incomplete. It does not mention return values, prerequisites, or how the tool integrates with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 6 parameters (e.g., host, password, timeoutMs). This leaves agents guessing about parameter meaning and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'connect', the resource 'Huawei eNSP VRP device', and the method 'Telnet/console TCP'. This distinguishes it from sibling tools like ensp_telnetDisconnect and ensp_telnetExecute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It is implied that connection must precede execution, but no direct advice or exclusion conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_telnetDisconnectC
Disconnect one eNSP Telnet session.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only states the action without detailing side effects, session state changes, or error conditions (e.g., disconnecting an already closed session).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, which is concise, but it lacks critical context. While it earns its place, it could be expanded with key details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description still fails to explain return values, error handling, or relation to other session tools, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the 'sessionId' parameter meaning or where to obtain it. The parameter name alone is insufficient for an agent to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disconnect') and the resource ('one eNSP Telnet session'), differentiating it from sibling tools like ensp_telnetConnect and ensp_telnetListSessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, when not to use it, or prerequisites (e.g., session must be active). The description is purely defining the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_telnetExecuteB
Execute one Huawei VRP command in an existing Telnet session.
| Name | Required | Description | Default |
|---|---|---|---|
| waitMs | No | ||
| command | Yes | ||
| sessionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It only hints at execution without details on error handling, output format, or what 'execute' entails. The waitMs parameter suggests timing but is unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the core purpose. However, it may be too terse given the missing parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity and no output schema, the description lacks sufficient information for an agent to understand return values, error conditions, or the impact of the waitMs parameter, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description does not explain any parameter (sessionId, command, waitMs) beyond what the schema provides, failing to add meaning or context for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Execute), target (Huawei VRP command), and context (existing Telnet session). It distinguishes this tool from siblings like ensp_telnetConnect which creates sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for executing a single command in an existing session but provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. It is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensp_telnetListSessionsA
List active eNSP Telnet sessions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'List active eNSP Telnet sessions.' It does not clarify what 'active' means, whether the operation is read-only, if authentication is needed, or any limitations. For a listing operation, it implies no side effects, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose without any extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description gives the essential purpose. However, without an output schema or description of the return values (e.g., session IDs, state), the agent lacks full context on what information it will receive. Additional details about the output format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description need not explain parameter semantics. The baseline for zero parameters is 4, and the description does not mislead or add unnecessary information about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List active eNSP Telnet sessions.' The verb 'List' and resource 'active sessions' are specific. It distinguishes from sibling tools like ensp_telnetConnect or ensp_telnetExecute by focusing on listing rather than connecting or executing commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, best practices, or context when listing sessions is appropriate (e.g., before connecting). The agent receives no help in deciding to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v0.1.0- First observed
ensp_applyCampusConfigsByPortRange - First observed
ensp_generateCampusConfigs - First observed
ensp_generateCampusProject - First observed
ensp_getCampusPlan - First observed
ensp_getVerificationPlan - First observed
ensp_saveCampusConfigsByPortRange - First observed
ensp_scanTelnetPorts - First observed
ensp_telnetApplyConfig - First observed
ensp_telnetConnect - First observed
ensp_telnetDisconnect - First observed
ensp_telnetExecute - First observed
ensp_telnetListSessions
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: project generation, config application, port scanning, telnet session management, etc. No overlapping functionality.
All tools start with 'ensp_' and follow a verb_noun pattern with minor inconsistencies like camelCase vs underscores and varying placement of 'telnet'.
12 tools is well-scoped for the eNSP automation domain, covering project generation, config application, and telnet management without being overwhelming.
Core workflows (generate, apply, save, connect) are covered. Missing explicit update/delete or advanced verification, but the built-in scenario is well-supported.
Maintenance
Related MCP Connectors
Designs, prices, and deploys AWS/GCP cloud infrastructure from plain-English requirements.
AI workflow/MCP implementation package planner.
Generate cloud architecture diagrams, flowcharts, and sequence diagrams.
Multi-agent AI pipeline that generates professional Solution Architecture Documents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for managing Huawei eNSP network simulation experiments, enabling topology management, Telnet device interaction, configuration deployment, and verification through natural language or API.25-
- AlicenseBqualityDmaintenanceEnables automation of Cisco Packet Tracer simulations by placing devices, connecting links, and generating IOS configurations via MCP, ideal for network coursework and demonstrations.231MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI clients to manage Huawei eNSP simulated network devices, execute CLI commands, apply configurations, and perform network diagnostics through natural language, with topology upload and visualization via a web UI.3-
- FlicenseBqualityCmaintenanceEnables natural-language construction and configuration of Cisco Packet Tracer topologies, including devices, cabling, IOS commands, VLANs, routing protocols, and network reproduction from diagrams.38-