cisco-iosxe-mcp
cisco-iosxe-mcp
一个 MCP 服务器,将 Cisco IOS-XE 设备作为工具暴露给 LLM 客户端调用。提供命名的操作读取,以及一条配置变更路径:显示精确的命令列表,在 configure terminal revert timer 下应用它,验证设备在一个新的会话中仍能响应,然后才确认。
它通过 Streamable HTTP 使用 MCP 通信,因此它作为自己的服务在网络上运行,而不是某个客户端的本地子进程。到设备的传输是通过 SSH 的 IOS-XE CLI,经由 scrapli。
专为 universal-network-director 构建,这是一个聊天驱动的多厂商网络管理器,对每次写入都设有人工审批门禁——但它是一个独立的 MCP 服务器,可与任何 MCP 客户端配合使用。
与 Cisco Systems, Inc. 无关联、未经其认可、亦不受其支持。 “Cisco”和“IOS-XE”是其各自所有者的商标,此处仅用于描述本软件所交互的对象。
安全模型
两步流程,与 Junos 路径形态相同——但有一个你需要在使用前理解的坦诚差异。
步骤 1 — 预览显示命令列表,而非 diff
preview_config_change 返回将要发送的确切命令、这些命令将发送到的设备,以及它们所涉及行的当前状态。你批准该内容。
这比 Junos show | compare 更弱。 Junos 会加载候选配置,由设备计算真实 diff;IOS-XE 没有候选配置,因此没有可让设备进行 diff 的对象。此处的预览是所写形式的变更,与当前配置核对——而不是设备自己会对结果作何描述。请阅读命令,而不只是摘要。
步骤 2 — 在回滚定时器下应用
write_apply_config_block 只接受预览 ID——它不能应用任何未经预览的内容。命令在 configure terminal revert timer <n> 下进入:立即生效,但 IOS-XE 会自动回滚配置,除非及时收到 configure confirm。然后本服务器会在新的 SSH 会话上重新连接,以证明设备仍然可达,并且只有可达时才确认。如果把自己锁在外面,设备会撤销变更。
Junos 所没有的设备前置条件: 必须配置 IOS
archive功能(archive/path ...),否则回滚定时器没有回滚点,安全网会悄然缺失。get_archive_status会按设备报告这一点,并且在缺失时write_apply_config_block会拒绝应用,而不是无保护地应用。
故意没有提供自由格式的命令工具。 每次操作读取都运行由固定模板加已验证参数构建的命令。模型唯一自由编写文本的地方——配置块——受到门禁,原样展示给人类,并在回滚定时器下应用。
Related MCP server: Itential MCP Server
在把此服务器指向生产环境之前,请阅读以下内容
十九个工具中有三个会改变状态,而本服务器在执行它们之前不会询问。 write_ 前缀是一种约定,以便你的客户端能够对它们进行门禁。
工具 | 作用 | 风险 |
| 应用已预览的命令列表 | 命令要求什么,就是什么。 位于带有可达性验证的回滚定时器之后——但仅在配置了 |
| 将 running-config 复制到 startup-config | 不写入任何新配置——它使当前配置在重新加载后仍然存在,包括你仍在考虑中的更改。 |
| 重启设备,可选择在延迟后执行 | 使设备宕机。不可回滚。 未保存的配置将丢失;已保存的配置会恢复。 |
注意前缀编码的不对称性:write_ 表示“必须有人类批准此事”,而不是“这会编辑配置”。 write_save_config 完全不添加配置,它之所以受到门禁,是因为让变更永久生效是一个应该由某人慎重做出的决定。
cancel_reload 有意不受门禁——它是一种恢复操作,如果要求通过审批往返来阻止待执行的重启,那是错误的权衡。
将设备账户的权限范围设为只读,除非你确实打算让写入生效。该控制权位于设备上,而不是在这段代码中。
MCP 端点没有身份验证
本服务器将工具暴露给任何能访问其端口的人。MCP 一侧没有令牌、没有客户端认证、没有 TLS。
因此 MCP_HOST 默认为 127.0.0.1。容器镜像将 0.0.0.0 作为默认值,因为它必须如此,这意味着发布容器端口会在该接口上暴露一条通往你路由器的未认证路径。 请将其与客户端放在内部网络中,或者在其前面终止 TLS 和身份验证。
设备清单
设备凭据位于以只读方式挂载到容器中的 JSON 文件里——绝不会被烘焙进镜像,也绝不会被提交。该文件包含明文 SSH 凭据,因此请对其执行 chmod 600,并将其属主设置为容器运行时的 uid。
与 Junos 网关的清单格式相同,因此只需学习一种格式,外加一个可选的 enable_password:
{
"csr-lab": {
"ip": "192.0.2.53",
"port": 22,
"username": "automation",
"auth": { "type": "password", "password": "..." }
}
}仅在设备确实需要时才会读取 enable_password——已是特权级别 15 的账户会直接进入 #,无需二次提权。
请使用与 Junos 网关不同的文件。 分离的容器持有分离的凭据,这正是服务器被拆分的全部原因:此服务器中的 bug 无法触及你的防火墙。
容器 uid。 该镜像特意创建了一个 uid-1000 的 passwd 条目。scrapli 的
system传输会执行ssh二进制文件,而当调用方的 uid 没有对应的/etc/passwd条目时,OpenSSH 拒绝运行——其症状是令人困惑的“EOF reading from transport”,而不是任何指出原因的信息。
运行
docker build -t cisco-iosxe-mcp .
docker run --rm \
-v "$PWD/secrets/devices.json:/app/config/devices.json:ro" \
--user 1000:1000 \
-p 127.0.0.1:8004:8004 \
cisco-iosxe-mcp变量 | 默认值 | 含义 |
|
| 设备清单路径 |
|
| 预览保持可用的秒数 |
|
| 绑定地址(镜像设置为 |
|
| 绑定端口 |
测试
docker run --rm cisco-iosxe-mcp python test_arg_validation.py
docker run --rm cisco-iosxe-mcp python test_reload.py两者均为离线测试——无需接触设备,无需凭据。
test_reload.py 重放真实 IOS-XE 设备针对 reload in 5、reload cancel 以及确认提示所发送的确切字节,包括保存提示从未出现的情况。
工具参考
TOOLS.md 提供逐一工具参考:参数、每个工具返回的内容、哪些需要批准,以及门禁设计背后的理由。
许可证
Apache-2.0。参见 LICENSE。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceAn MCP server that allows LLMs to create, configure, validate, and explain Cisco Packet Tracer network topologies. It provides a comprehensive suite of tools for generating deployment scripts, CLI configurations, and automated network troubleshooting.129MIT

Itential MCP Serverofficial
AlicenseBqualityAmaintenanceMCP server for connecting LLMs to Itential Platform, enabling network automation, workflow orchestration, and platform monitoring.7635GPL 3.0- Alicense-qualityCmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
- Flicense-qualityDmaintenanceMCP server for Cisco Catalyst SD-WAN Manager (vManage) that exposes REST API as tools for AI assistants to query and manage SD-WAN fabric, including device management, monitoring, templates, and policies.8
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anderson-jason573/cisco-iosxe-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server