📚 学习与开发示例代码
这是一个展示网络管理中 MCP 服务器实现的演示项目。旨在用于教育、测试和开发环境。
基于 Docker 的 MCP 服务器套件,适用于 AIOps —— 通过集成 Cisco Meraki、Catalyst Center、IOS XE、ISE、ThousandEyes、Splunk 和 NetBox 实现 AI 驱动的网络操作。配备 LibreChat、Cursor 和其他 MCP 客户端,支持智能网络管理、自动化故障排除和运营洞察。
使用 LibreChat 和多个 MCP 服务器进行 AI 驱动的网络故障排除

观看如何使用自然语言查询自动调查并解决网络问题,使用 Catalyst Center MCP 服务器和 IOS XE MCP 服务器。AI 助手将管理系统的数据(Catalyst Center)与直接设备访问(IOS XE SSH)关联起来,以识别根本原因并提供全面解决方案。
这个 专注于 AIOps 的 Docker 套件包含七个 MCP 服务器,支持 AI 驱动的网络操作:
所有服务器都容器化,并具有灵活的部署配置文件,通过自然语言查询、自动化故障排除和 AI 助手提供的智能网络分析来实现 AIOps 工作流。
网络管理员和 DevOps 团队在管理跨越云和本地环境的现代混合网络基础设施时面临重大挑战。此解决方案通过以下方式应对这些挑战:
| 场景 | 描述 | 使用的服务器 | 优点 |
|---|---|---|---|
| 网络故障排除 | NOC 工程师调查连接问题(如演示所示) | Catalyst Center + IOS-XE + ThousandEyes | 跨平台关联与性能监控 |
| 性能分析 | 网络分析师监控应用性能 | ThousandEyes + Catalyst Center | 端到端性能可见性 |
| 基础设施文档 | SysAdmin 更新网络文档 | NetBox + Catalyst Center | 自动文档同步 |
| 合规报告 | IT 经理生成审计报告 | 所有服务器 | 基础设施的综合报告 |
| 设备配置 | 网络工程师部署配置 | Catalyst Center + IOS-XE | 标准化的配置管理 |
有关全面使用场景和实施细节,请参阅:
该套件提供了对七个容器化 MCP 服务器的直接访问,非常适合开发、测试和 AI 驱动的网络操作:
┌─────────────────┐ ┌──────────────────────────────────┐
│ │ │ Docker 主机 │
│ MCP 客户端 │ │ │
│ │ │ ┌─────────────────────────────┐ │
│ • Cursor IDE │────┼─▶│ Meraki MCP :8000 │ │
│ • LibreChat │ │ ├─────────────────────────────┤ │
│ • Claude Desktop│────┼─▶│ NetBox MCP :8001 │ │
│ • 其他 MCP │ │ ├─────────────────────────────┤ │
│ 客户端 │────┼─▶│ Catalyst Center :8002 │ │
│ │ │ ├─────────────────────────────┤ │
│ │────┼─▶│ IOS XE MCP :8003 │ │
│ │ │ ├─────────────────────────────┤ │
│ │────┼─▶│ ThousandEyes MCP :8004 │ │
│ │ │ ├─────────────────────────────┤ │
│ │────┼─▶│ ISE MCP :8005 │ │
│ │ │ ├─────────────────────────────┤ │
│ │────┼─▶│ Splunk MCP :8006 │ │
│ │ │ └─────────────────────────────┘ │
└─────────────────┘ └──────────────────────────────────┘
直接 HTTP 连接
✅ 简单设置 - 不需要身份验证
✅ 各个服务器的独立访问和配置
✅ 灵活的基于端口的部署
✅ 适合开发和测试
# 1. 克隆仓库
git clone https://github.com/pamosima/network-mcp-docker-suite.git
cd network-mcp-docker-suite
# 2. 配置环境变量(所有服务器共用一个 .env 文件)
cp .env.example .env # 复制环境模板
nano .env # 编辑和配置:
# - 设置 ENABLE_*_MCP=false 对于不使用的服务器
# - 添加启用服务器的 API 密钥和凭证
# 请参阅 .env.example 获取详细的配置说明
# 3. 部署服务器
./deploy.sh start all # 所有服务器
# 或
./deploy.sh start cisco # 仅 Cisco 平台
# 或
./deploy.sh start meraki # 仅 Meraki
# 4. 验证部署
curl http://localhost:8000/mcp # 测试 Meraki 服务器
curl http://localhost:8002/mcp # 测试 Catalyst Center 服务器
💡 快速提示:所有服务器现在使用一个集中的
.env文件进行配置。使用ENABLE_*_MCP=false来禁用不需要的服务器,并只为启用的服务器添加凭证。
🌐 LibreChat 集成:要在外部网络上使用 LibreChat,请参阅下面的 外部网络集成 部分。
使用 .env 文件中的环境变量控制哪些 MCP 服务器运行:
# 启用/禁用单个服务器(编辑 .env)
ENABLE_MERAKI_MCP=true # 设置为 false 以禁用
ENABLE_NETBOX_MCP=true # 设置为 false 以禁用
ENABLE_CATC_MCP=true # 设置为 false 以禁用
ENABLE_IOS_XE_MCP=false # 禁用 - 不会启动
ENABLE_THOUSANDEYES_MCP=true
ENABLE_ISE_MCP=true
ENABLE_SPLUNK_MCP=false # 禁用 - 不会启动
最佳实践:
ENABLE_*_MCP=false| 配置文件 | 描述 | 部署的服务器 | 使用场景 |
|---|---|---|---|
all | 部署所有服务器 | 所有 7 个服务器(8000-8006) | 完整的基础设施可见性 |
cisco | Cisco 重点平台 | Meraki + Catalyst Center + ThousandEyes + ISE + IOS XE | Cisco 中心环境 |
monitoring | 网络监控 | Meraki + Catalyst Center + ThousandEyes + Splunk | 运营团队 |
security | 安全重点 | Catalyst Center + ISE | 安全运营 |
management | 传统管理 | Meraki + Catalyst Center | 网络管理 |
docs | 文档重点 | NetBox + Catalyst Center | 基础设施文档 |
# 使用配置文件的灵活部署
./deploy.sh start all # 完整套件
./deploy.sh start cisco # 仅 Cisco 平台
./deploy.sh start monitoring # 监控重点
./deploy.sh start security # 安全重点
# 单个服务器
./deploy.sh start meraki # 云管理
./deploy.sh start catc # 企业级管理
./deploy.sh start ios-xe # 直接设备访问
# 管理操作
./deploy.sh status all # 检查状态
./deploy.sh logs cisco # 查看日志
./deploy.sh stop all # 停止服务
要在外部 Docker 网络上集成 LibreChat 或其他服务:
# 1. 创建外部网络
docker network create mcp-server
# 2. 复制并使用覆盖配置
cp docker-compose.override.yml.example docker-compose.override.yml
# 3. 部署(自动使用覆盖文件)
./deploy.sh start all
docker-compose.override.yml 将所有 MCP 服务器配置为加入外部 mcp-server 网络,允许与同一网络上的 LibreChat 和其他服务无缝通信。
这里有一个实际示例,展示如何使用自然语言与 MCP 服务器交互:
用户提示:
检查为什么 wlsn-access-1.dna.its-best.ch 从 Cisco Catalyst Center 无法访问。
AI 助手响应: AI 助手自动使用两个 MCP 服务器协同工作:
确定的解决方案:
| 场景 | 示例提示 | 使用的服务器 |
|---|---|---|
| 设备配置 | "在大楼 A 的所有接入交换机上配置 VLAN 100" | Catalyst Center + IOS XE |
| 性能分析 | "显示我们主网站在过去 6 小时内的网络延迟" | ThousandEyes |
| 安全合规 | "显示所有不符合规范的设备及其授权配置文件" | ISE + Catalyst Center |
| 基础设施审核 | "生成设备不匹配 NetBox 和现实情况的报告" | NetBox + Catalyst Center |
| 容量规划 | "显示所有站点的带宽利用率趋势" | Meraki + Catalyst Center |
| 服务器 | 端口 | 端点 | 目的 |
|---|---|---|---|
| Meraki | 8000 | http://localhost:8000/mcp | 云网络管理 |
| NetBox | 8001 | http://localhost:8001/mcp | DCIM/IPAM 文档 |
| Catalyst Center | 8002 | http://localhost:8002/mcp | 企业管理 |
| IOS XE | 8003 | http://localhost:8003/mcp | 直接设备访问 |
| ThousandEyes | 8004 | http://localhost:8004/mcp | 性能监控 |
| ISE | 8005 | http://localhost:8005/mcp | 身份和访问控制 |
| Splunk | 8006 | http://localhost:8006/mcp | 日志分析 |
创建或更新 ~/.cursor/mcp.json:
{
"mcpServers": {
"Meraki-MCP-Server": {
"transport": "http",
"url": "http://localhost:8000/mcp",
"timeout": 60000
},
"NetBox-MCP-Server": {
"transport": "http",
"url": "http://localhost:8001/mcp",
"timeout": 60000
},
"Catalyst-Center-MCP-Server