JUHE API Marketplace
NorthLaneMS avatar
MCP Server

NetBrain MCP

An open-source network operations integration platform that connects large language models with network devices through the Model Context Protocol, allowing AI assistants to perform network configuration, diagnostics, and management tasks.

2
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

MseeP.ai Security Assessment Badge

NetBrain MCP

NetBrain MCP 是一个开源的网络运维整合平台,通过 Model Context Protocol (MCP) 连接大型语言模型(LLM)与网络设备。它允许 AI 助手通过标准化协议执行网络配置、诊断和管理任务。

🎉 项目状态:已完成所有计划功能,具备生产环境部署条件

功能特点

🔧 核心功能

  • 网络设备管理 - 统一管理各种厂商(思科、华为等)的网络设备
  • 设备连接 - 支持 SSH 和 Telnet 协议连接到网络设备
  • 命令执行 - 远程执行网络命令并获取结果
  • 凭据管理 - 安全管理设备访问凭据
  • MCP 协议支持 - 使大型语言模型能够访问和控制网络设备
  • 资源提供功能 - 通过 URI 将设备、配置等资源提供给 LLM
  • 提示模板系统 - 提供网络诊断、配置审查等专用提示模板

🌐 Web界面功能

  • 专业终端体验 - 基于 XTerm.js 的多标签页终端,支持命令补全和历史记录
  • 网络拓扑可视化 - 基于 D3.js 的交互式拓扑图,支持CDP/LLDP自动发现
  • 设备管理界面 - 直观的设备添加、编辑和状态监控界面
  • 会话管理 - 多设备连接会话管理,支持重连和心跳检测
  • 主题系统 - 完整的暗色/明亮主题切换,包括登录页面
  • 响应式设计 - 跨设备兼容的现代化用户界面

🚀 高级功能

  • 自动拓扑发现 - 基于CDP/LLDP协议的网络拓扑自动识别
  • 智能设备识别 - 内置厂商MAC地址识别功能,自动推断设备类型
  • 数据持久化 - JSON文件存储系统,支持数据备份和恢复
  • 多厂商支持 - 思科、华为、H3C等主流厂商设备适配
  • 命令模板库 - 预置厂商特定的命令模板和配置片段
  • 网络扫描 - 支持网络范围扫描和设备自动发现

技术架构

🔧 后端技术栈

  • 语言: Python 3.10+
  • MCP 框架: FastMCP (基于 mcp Python 包)
  • Web 框架: FastAPI + WebSocket
  • 设备连接: Scrapli (支持异步/同步混合模式)
  • 异步支持: 使用 asyncio 实现高效的网络操作
  • 数据存储: JSON文件存储 + 内存缓存
  • 模块化设计: 网络设备管理、连接器、工具管理和资源提供等独立模块

🌐 前端技术栈

  • 终端模拟: XTerm.js - 专业级终端体验
  • 数据可视化: D3.js - 网络拓扑可视化
  • 实时通信: WebSocket - 双向实时通信
  • 界面框架: 现代Web技术 + CSS3动画
  • 主题系统: CSS变量 + JavaScript主题管理
  • 响应式设计: Flexbox + Grid布局

系统组件

🔧 核心组件

  • 工具管理器 (tool_manager.py): 管理工具的注册、分类和调用
  • 设备管理器 (network_devices.py): 管理网络设备信息和凭据
  • 连接管理器 (device_connector.py): 处理与网络设备的连接和命令执行
  • 资源管理器 (mcp_resources.py): 管理 MCP 资源和提示模板
  • MCP 服务器 (server.py): 提供 MCP 接口,集成其他组件
  • 模板系统 (template_system.py): 提供AI提示模板管理和渲染

🌐 Web界面组件

  • Web服务器 (web/app.py): FastAPI Web服务器,提供RESTful API和WebSocket支持
  • WebSocket终端 (web/static/js/terminal.js): 实时终端通信和XTerm.js集成
  • 拓扑可视化 (web/static/js/topology.js): D3.js网络拓扑渲染引擎
  • 主题管理 (web/static/js/theme.js): 全局主题切换和持久化
  • 设备管理界面 (web/templates/): HTML模板和用户界面

🚀 扩展组件

  • 拓扑发现引擎 (topology_discovery_improved.py): CDP/LLDP协议拓扑发现
  • 网络扫描器 (network_scanner.py): 网络范围扫描和厂商MAC地址识别
  • 设备提示模板 (device_prompts.py): 设备特定的AI提示模板
  • 数据存储层 (data/): JSON文件存储和数据持久化
  • 命令模板库 (templates/): 厂商特定的命令模板和配置片段

可用工具

NetBrain MCP 提供以下网络管理工具:

设备管理工具

  • list_devices - 列出网络设备,支持按厂商、类型、状态、标签过滤
  • add_device - 添加新的网络设备
  • get_device - 获取设备详细信息
  • update_device - 更新设备信息
  • delete_device - 删除设备

凭据管理工具

  • add_credential - 添加设备访问凭据
  • list_credentials - 列出所有设备凭据

设备连接工具

  • connect_device - 连接到网络设备
  • disconnect_device - 断开与网络设备的连接
  • send_command - 向网络设备发送命令
  • send_commands - 向网络设备发送多个命令
  • get_active_connections - 获取当前活动的设备连接

拓扑发现工具

  • discover_topology - 基于CDP/LLDP协议自动发现网络拓扑
  • get_topology - 获取已发现的拓扑数据
  • clear_topology - 清除拓扑数据
  • get_device_neighbors - 获取设备邻居信息
  • discover_device_neighbors - 发现单个设备的邻居
  • get_topology_statistics - 获取拓扑统计信息

网络扫描工具

  • scan_network_range - 扫描网络地址范围
  • get_scan_results - 获取扫描结果
  • get_scan_statistics - 获取扫描统计信息
  • discover_devices_from_scan_results - 从扫描结果中发现设备
  • clear_scan_results - 清除扫描结果
  • scan_single_host - 扫描单个主机

资源管理工具

  • list_resources - 列出可用的 MCP 资源
  • get_resource - 获取指定 URI 的资源
  • clear_resource_cache - 清除资源缓存

模板管理工具

  • list_templates - 列出可用的提示模板
  • render_template - 渲染提示模板

测试工具

  • test_scrapli_connection - 测试Scrapli连接
  • test_telnet_connection - 测试Telnet连接
  • send_telnet_command - 发送Telnet命令

可用资源

NetBrain MCP 提供以下 MCP 资源:

设备资源

  • device/{device_id} - 获取设备详细信息
  • device/{device_id}/config - 获取设备配置信息
  • device/{device_id}/interfaces - 获取设备接口信息
  • device/{device_id}/routes - 获取设备路由表信息
  • device/{device_id}/neighbors - 获取设备邻居信息

拓扑资源

  • topology - 获取网络拓扑数据
  • topology/statistics - 获取拓扑统计信息

扫描资源

  • scan/results - 获取网络扫描结果
  • scan/statistics - 获取扫描统计信息
  • scan/result/{ip_address} - 获取特定IP的扫描结果

系统资源

  • greeting/{name} - 获取个性化问候语
  • system/status - 获取系统状态信息
  • credentials - 获取所有凭据信息(敏感信息已脱敏)

提示模板

NetBrain MCP 提供以下提示模板:

  • device_diagnosis - 设备诊断提示模板
  • config_review - 设备配置审查提示模板
  • route_analysis - 路由分析提示模板
  • network_diagnosis - 网络诊断提示模板
  • vlan_config - VLAN配置生成模板
  • network_topology - 网络拓扑分析模板
  • network_security - 网络安全评估模板

运行服务器

🔧 MCP服务器模式

使用 Python 直接运行

python server.py

使用 MCP 开发工具运行

mcp run server.py

带调试界面运行 (MCP Inspector)

mcp dev server.py

🚀 生产环境部署

# 安装依赖
pip install -r requirements.txt

# 启动服务器
python server.py

使用示例

🌐 Web界面使用

  1. 启动服务器

    python server.py
    
  2. 访问Web界面

    • 打开浏览器访问 http://localhost:8088
    • 使用登录页面进入系统
  3. 使用终端功能

    • 点击"终端"标签页
    • 添加新设备或选择现有设备
    • 建立SSH/Telnet连接
    • 享受专业级终端体验(命令补全、历史记录等)
  4. 查看网络拓扑

    • 点击"网络拓扑"标签页
    • 点击"发现拓扑"开始自动扫描
    • 查看可视化的网络拓扑图
    • 双击节点可快速连接设备
  5. 管理设备

    • 在"设备"页面添加、编辑设备信息
    • 配置设备凭据和连接参数
    • 监控设备在线状态

🔧 MCP协议使用

可以通过以下步骤测试功能:

  1. 运行 MCP 服务器
  2. 使用 MCP Inspector 查看可用工具
  3. 使用 list_devices 工具列出预配置的设备
  4. 使用设备 ID 和凭据 ID 连接设备
  5. 发送命令查看模拟输出

📊 资源访问示例

获取设备信息:

GET device/1

获取设备配置:

GET device/1/config

获取拓扑数据:

GET topology

使用提示模板:

POST render_template
{
  "template_name": "device_diagnosis",
  "context": {
    "device_info": "...",
    "interfaces_info": "..."
  }
}

🚀 高级功能示例

自动拓扑发现:

# 通过MCP工具调用
discover_topology({
  "device_ids": "device1,device2"
})

网络扫描:

# 扫描网络范围
scan_network_range({
  "network": "192.168.1.0/24",
  "timeout": 3.0,
  "auto_create_devices": true
})

批量设备配置:

# 使用命令模板
send_commands({
  "device_id": "cisco_router_1", 
  "credential_id": "admin_cred",
  "commands": "interface gi0/1;ip address 192.168.10.1 255.255.255.0;no shutdown"
})

项目亮点

🎯 已完成的核心功能

完整的MCP协议实现 - 基于FastMCP的标准化AI-设备通信协议
专业级终端体验 - 基于XTerm.js,支持命令补全、历史记录、真实提示符
网络拓扑可视化 - 基于D3.js的交互式拓扑图,支持CDP/LLDP自动发现
多厂商设备支持 - 思科、华为、H3C等主流厂商统一接入
现代化Web界面 - 响应式设计,暗色/明亮主题,跨设备兼容
数据持久化存储 - JSON文件存储,自动备份恢复
智能设备识别 - 内置厂商MAC地址库,自动设备类型推断
网络扫描功能 - 支持大规模网络发现和设备自动识别

🚀 技术特色

  • 高度模块化架构 - 基于抽象工厂和策略模式的可扩展设计
  • 异步性能优化 - 全异步架构带来高并发处理能力
  • AI驱动操作 - MCP协议实现AI与网络设备的无缝集成
  • 专业工程实践 - 完整的错误处理、日志记录、配置管理
  • 混合连接模式 - Scrapli异步/同步智能适配,确保最佳兼容性

🔮 未来扩展方向

虽然项目核心功能已完成,未来可考虑以下增强:

  • 企业级功能 - 用户权限管理、审计日志、合规报告
  • 监控告警 - 网络性能监控、故障自动诊断、预测性维护
  • 协议扩展 - SNMP、NETCONF、RESTCONF等更多网络协议
  • 虚拟化集成 - eNSP、GNS3、EVE-NG等网络模拟器支持
  • AI能力增强 - 网络故障智能分析、配置优化建议

项目团队

  • 技术负责人:Koreyoshi - MCP协议实现、系统架构设计
  • 功能开发:Koreyoshi - 设备管理、数据存储、拓扑发现
  • 前端开发:Koreyoshi - Web界面、终端功能、可视化设计

贡献

欢迎通过 Pull Requests 或 Issues 提交您的建议和改进。

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source