Skip to main content
Glama

eNSP-MCP

eNSP-MCP 是一个面向 Huawei eNSP 的网络实验 MCP 服务。它可以自动识别当前实验拓扑,读取设备与链路信息,执行常见网络配置任务,并把实验结果以看板、API 和 MCP 工具三种方式统一暴露给 AI 客户端和本地调试流程。

它解决的核心问题是:让 AI 真正基于当前 eNSP 实验环境工作,而不是依赖手工整理的设备信息、静态脚本或复制粘贴命令。你可以把它理解成 eNSP 和 AI 之间的执行中间层。

这个项目适合三类场景:

  • 给 Codex、Cursor、Claude Desktop 这类 AI 客户端提供 eNSP 实验后端

  • 给课程设计、实验教学提供统一的看板和任务执行入口

  • 给自己做实验排障、结果导出、协议配置执行和自动化验证

快速开始

先安装依赖:

py -3.10 -m pip install -r requirements.txt

直接启动看板:

py -3.10 -m backend.launch

启动后访问:

http://127.0.0.1:8000/static/index.html

启动MCP服务:

py -3.10 -m backend.mcp.server

MCP 直启也默认按真实 eNSP 模式运行。

Related MCP server: Device MCP Server

最常用能力

  • 自动识别当前实验拓扑:直接读取当前目录下的 .topo,不用手工维护设备表

  • 快速发现拓扑文件:通过 find_topology_files 查找可用实验拓扑,适合目录混乱时先定位环境

  • 一键查看设备清单:通过 list_devices 获取当前实验中的路由器、交换机、PC 和连接信息

  • 图形化查看实验状态:通过 open_config_board 打开 HTML 看板,直接看拓扑、设备和配置结果

  • 执行常见实验任务:通过 execute_task 直接处理 pc_connectivityospfvlandhcp

  • 执行完整校园网实验:通过 execute_campus_lab 处理固定校园网场景下的 VRRP、MSTP、DHCP、NAT 等内容

  • 执行协议配置能力:支持 WiFi、IPSec VPN、访问控制、公网访问控制、DHCP Relay 等网络配置场景

当前支持直接执行的配置能力

  • 二层与基础网络:VLANMSTP

  • 三层路由:OSPF

  • 地址服务:DHCPDHCP Relay

  • 网关高可用:VRRP

  • 出口能力:NAT、选择性公网访问控制

  • 安全访问控制:ACLtraffic-filter、访客网与内网隔离

  • VPN 与互联:IPSec VPNGRE over IPSec

  • 无线网络:WiFiSSIDVAPAP Group、业务 VLAN

  • 防火墙能力:IPSec policynat-policyACLtraffic-filterno-nat、公网访问控制

这些能力可以通过 execute_taskexecute_campus_labanalyze_reference_configs 相关链路统一调用。

.topo 时也能用

没有拓扑文件时,可以走“注册设备模式”做临时排障:

  • register_device

  • unregister_device

  • list_registered_devices

  • auto_discover_devices

注册后,list_devicesrun_commandconnect_devices 等只读能力可以直接复用这些设备。

输出结果文件

运行过程中会在 output/ 下生成稳定工件,方便看板、MCP、脚本和其他 AI 工具复用:

  • current_topology.json

  • current_devices.json

  • last_verification_report.json

  • reference_capabilities.json

也可以主动导出:

  • export_topology_summary

  • export_verification_report

  • export_reference_capabilities

拓扑定位规则

默认规则很简单:

  1. 如果设置了 TOPOLOGY_FILE,优先使用它。

  2. 否则优先使用当前目录下的 <目录名>.topo

  3. 如果当前目录只有一个 .topo,直接使用它。

如果不确定拓扑在哪,先调用 find_topology_files

如果仓库目录和实验目录不是同一个目录,可以补充:

$env:ENSP_MCP_WORKSPACE_DIR="你的实验目录"

MCP 配置示例

{
  "mcpServers": {
    "ensp-mcp": {
      "command": "py",
      "args": ["-3.10", "-m", "backend.mcp.server"],
      "cwd": "C:\\Users\\用户名\\.agents\\mcps\\ensp_mcp"
    }
  }
}

开发与测试

运行全部测试:

py -3.10 -m pytest

项目结构

backend/
├─ main.py
├─ launch.py
├─ adapters/
├─ mcp/
├─ runtime/
├─ services/
├─ static/
└─ topology/
config/
tests/
requirements.txt

Related MCP Connectors

Related MCP Servers