返回市场
网络MCP Docker套件

网络MCP Docker套件

作者:pamosima8 星标更新:2025-11-06

项目介绍

技术文档摘要

🌐 网络 MCP Docker 套件

已发布

📚 学习与开发示例代码
这是一个展示网络管理中 MCP 服务器实现的演示项目。旨在用于教育、测试和开发环境。

基于 Docker 的 MCP 服务器套件,适用于 AIOps —— 通过集成 Cisco Meraki、Catalyst Center、IOS XE、ISE、ThousandEyes、Splunk 和 NetBox 实现 AI 驱动的网络操作。配备 LibreChat、Cursor 和其他 MCP 客户端,支持智能网络管理、自动化故障排除和运营洞察。

🎬 实时演示

使用 LibreChat 和多个 MCP 服务器进行 AI 驱动的网络故障排除

Catalyst Center MCP 演示

观看如何使用自然语言查询自动调查并解决网络问题,使用 Catalyst Center MCP 服务器和 IOS XE MCP 服务器。AI 助手将管理系统的数据(Catalyst Center)与直接设备访问(IOS XE SSH)关联起来,以识别根本原因并提供全面解决方案。

📋 描述

这个 专注于 AIOps 的 Docker 套件包含七个 MCP 服务器,支持 AI 驱动的网络操作:

  • Meraki MCP 服务器 (8000): 通过 Meraki Dashboard API 管理云网络 - 📖 详情
  • NetBox MCP 服务器 (8001): DCIM/IPAM 基础设施文档和管理 - 📖 详情
  • Catalyst Center MCP 服务器 (8002): 企业网络管理和保障 - 📖 详情
  • IOS XE MCP 服务器 (8003): 基于直接 SSH 的设备管理 - 📖 详情
  • ThousandEyes MCP 服务器 (8004): 网络性能监控和路径可视化 - 📖 详情
  • ISE MCP 服务器 (8005): 身份和访问控制操作 - 📖 详情
  • Splunk MCP 服务器 (8006): 日志分析和运营智能 - 📖 详情

所有服务器都容器化,并具有灵活的部署配置文件,通过自然语言查询、自动化故障排除和 AI 助手提供的智能网络分析来实现 AIOps 工作流

🎯 使用场景

网络管理员和 DevOps 团队在管理跨越云和本地环境的现代混合网络基础设施时面临重大挑战。此解决方案通过以下方式应对这些挑战:

🚀 主要使用场景

1. 统一网络操作 🌐

  • 单一接口:通过一个 MCP 协议接口管理 Meraki 云网络、本地 NetBox DCIM/IPAM、Catalyst Center 基础设施和直接 IOS-XE 设备
  • 简化工作流程:减少在多个网络管理工具和仪表板之间切换上下文的需求
  • 跨平台可见性:在不同的网络管理系统之间关联数据,以获得全面的操作洞察

2. AI 驱动的网络管理 🤖

  • 自然语言查询:使用 AI 助手(Cursor、LibreChat)用普通英语查询网络基础设施
  • 自动化故障排除:通过提供对网络数据的统一访问,启用 AI 驱动的网络问题诊断
  • 智能文档:生成结合实时网络状态和基础设施文档的自动化报告

3. DevOps 集成与自动化 ⚙️

  • 基础设施即代码:编程访问网络基础设施以实现自动化工作流
  • CI/CD 集成:在网络管理能力中嵌入部署管道
  • 配置管理:标准化 API 访问网络设备配置和监控

4. 运营效率 📈

  • 基于角色的访问:为 NOC 团队(监控 + 固件)、SysAdmin(只读)和全 API 访问提供细粒度权限
  • 审计跟踪:记录所有网络管理操作的详细日志,以满足合规性要求
  • 实时同步:网络设备和文档系统之间的自动同步

🎯 目标场景

场景描述使用的服务器优点
网络故障排除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 连接
        ✅ 简单设置 - 不需要身份验证
        ✅ 各个服务器的独立访问和配置
        ✅ 灵活的基于端口的部署
        ✅ 适合开发和测试

🎯 关键架构特性

  • 🐳 容器化服务:每个 MCP 服务器都在隔离的 Docker 容器中运行
  • 🔌 标准 MCP 协议:兼容任何 MCP 客户端(Cursor、Claude Desktop、LibreChat)
  • 📊 基于端口的访问:每个服务器在专用端口上运行(8000-8006)
  • 🔄 独立扩展:根据需要单独启动或停止服务器
  • 🛡️ 网络隔离:内部 Docker 网络用于容器间通信
  • 📝 全面的日志记录:带有旋转的 JSON 格式日志记录所有服务

🧩 解决方案组件

🏢 技术栈

  • MCP 协议实现:基于标准模型上下文协议的 AI 集成
  • Docker 容器化:结构良好的容器,考虑了安全性和资源限制
  • 网络隔离:通过 Docker 网络(mcp-network)进行安全通信
  • FastMCP 框架:现代基于 Python 的 MCP 服务器实现

🚀 快速开始

📋 先决条件

  • Docker 引擎 20.10+
  • Docker Compose 2.0+
  • API 访问:您想要集成的网络平台的有效凭证(请参阅各个服务器指南中的具体要求)

⚡ 三分钟设置

# 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)完整的基础设施可见性
ciscoCisco 重点平台Meraki + Catalyst Center + ThousandEyes + ISE + IOS XECisco 中心环境
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                         # 停止服务

外部网络集成(针对 LibreChat)

要在外部 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 服务器协同工作:

  1. Catalyst Center MCP 服务器 - 检查设备状态和问题
  2. IOS XE MCP 服务器 - 直接 SSH 访问以验证物理层
  3. 多服务器关联 - AI 关联数据以识别根本原因

确定的解决方案:

  • ✅ 设备正常运行(通过 SSH 验证)
  • ✅ 物理连接通过 CDP 确认
  • 根本原因:Catalyst Center 库存中的 IP 地址不匹配
  • 🔧 解决方案:更新设备 IP 并重新同步

更多示例提示

场景示例提示使用的服务器
设备配置"在大楼 A 的所有接入交换机上配置 VLAN 100"Catalyst Center + IOS XE
性能分析"显示我们主网站在过去 6 小时内的网络延迟"ThousandEyes
安全合规"显示所有不符合规范的设备及其授权配置文件"ISE + Catalyst Center
基础设施审核"生成设备不匹配 NetBox 和现实情况的报告"NetBox + Catalyst Center
容量规划"显示所有站点的带宽利用率趋势"Meraki + Catalyst Center

🌐 服务器端点

服务器端口端点目的
Meraki8000http://localhost:8000/mcp云网络管理
NetBox8001http://localhost:8001/mcpDCIM/IPAM 文档
Catalyst Center8002http://localhost:8002/mcp企业管理
IOS XE8003http://localhost:8003/mcp直接设备访问
ThousandEyes8004http://localhost:8004/mcp性能监控
ISE8005http://localhost:8005/mcp身份和访问控制
Splunk8006http://localhost:8006/mcp日志分析

🌐 MCP 客户端集成

Cursor IDE 配置

创建或更新 ~/.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