返回市场
代码仓库网络适配器

代码仓库网络适配器

作者:angoran7 星标更新:2025-11-13

项目介绍

NET-AI-ASSISTANT 🌐

Python 3.12+ FastMCP Netmiko MCP Tools Connectors

一个全面的MCP(模型上下文协议)服务器,用于网络基础设施管理。通过AI助手如Claude Desktop和Warp,在150多个供应商的网络设备上执行CLI命令,监控设备健康和性能,分析集中日志,管理数据中心结构,并控制无线基础设施。

关键特性:

  • SSH命令执行:直接访问路由器、交换机和防火墙的CLI(Netmiko)
  • 网络监控:实时监控设备、接口和传感器(LibreNMS)
  • 日志管理:集中日志搜索和分析(Graylog)
  • 数据中心操作:Cisco ACI结构管理和分析(APIC)
  • 无线管理:AP监控、客户端跟踪和射频优化(Aruba)

🎯 特性

  • 多厂商SSH支持:适用于Cisco、MikroTik、Palo Alto、Juniper、Aruba、HP等150多个供应商
  • 网络监控(LibreNMS):实时监控300多个设备、接口、传感器和事件
  • 日志分析(Graylog):跨基础设施搜索和分析集中日志
  • 数据中心结构(Cisco APIC):管理ACI结构健康、拓扑和安全策略
  • 无线控制(Aruba):监控AP、客户端、流氓检测和射频优化
  • MCP集成:无缝集成到Claude Desktop、Warp AI和其他兼容MCP的工具中
  • 自动检测:自动检测设备类型或允许手动指定
  • 安全:通过环境变量进行凭据管理
  • 快速:使用UV构建,实现闪电般的依赖管理速度

🚀 快速开始

先决条件

  • Python 3.12或更高版本
  • UV 包管理器
  • 对网络设备的SSH访问权限
  • Claude Desktop或Warp(用于原生MCP集成)

安装

  1. 克隆仓库

    git clone https://github.com/angoran/git-netai.git
    cd git-netai
    
  2. 使用UV同步依赖

    uv sync
    
  3. 配置凭据

    在项目根目录创建一个.env文件:

    # SSH凭据
    SSH_USERNAME="your_username"
    SSH_PASSWORD="your_password"
    
    # API端点和凭据
    LIBRENMS_URL="https://your-librenms-server"
    LIBRENMS_TOKEN="your_api_token"
    
    GRAYLOG_URL="https://your-graylog-server"
    GRAYLOG_TOKEN="your_api_token"
    
    APIC_URL="https://your-apic-server"
    APIC_USERNAME="your_username"
    APIC_PASSWORD="your_password"
    
    ARUBA_URL="https://your-aruba-controller:4343"
    ARUBA_USERNAME="your_username"
    ARUBA_PASSWORD='your_password'  # 使用单引号处理特殊字符
    

🔧 MCP客户端配置

Claude Desktop

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "NET-AI-ASSISTANT": {
      "command": "uv",
      "args": ["--directory", "/path/to/git-netai", "run", "python", "main.py"],
      "env": {"PYTHONPATH": "/path/to/git-netai"}
    }
  }
}

Warp AI

位置: ~/.warp/mcp_config.json

{
  "mcpServers": {
    "NET-AI-ASSISTANT": {
      "command": "uv",
      "args": ["run", "python", "main.py"],
      "env": {"PYTHONPATH": "/path/to/git-netai"},
      "working_directory": "/path/to/git-netai"
    }
  }
}

📚 使用方法

该服务器提供74个MCP工具,分布在5个类别中:

工具类别

类别工具描述
SSH命令执行1通过SSH在150多种网络设备类型上执行CLI命令
网络监控(LibreNMS)17设备、接口、传感器监控和事件跟踪
日志管理(Graylog)4集中日志搜索、流和分析
数据中心结构(Cisco APIC)35ACI结构健康、租户、策略和容量规划
无线管理(Aruba)17AP监控、客户端跟踪、射频优化和QoS

自然语言示例(Claude Desktop / Warp)

在设备10.1.1.1上使用cisco_ios执行"show version"
显示来自位置"datacenter-1"的所有设备
在过去的1小时内搜索Graylog中的"认证失败"
列出Aruba控制器上的所有连接客户端

Python API示例

from connectors import run_network_command

# Cisco IOS自动检测
result = run_network_command(
    ip_address="10.1.1.1",
    command="show version"
)

# Cisco Nexus(明确设备类型)
result = run_network_command(
    ip_address="10.1.10.100",
    command="show ip int br",
    device_type="cisco_nxos"
)
from connectors.librenms_con import search_devices

# 按位置搜索设备
devices = search_devices("location", "datacenter-1")
from connectors.graylog_con import search_logs

# 搜索过去1小时的日志
logs = search_logs("error", relative_range=3600)

🛠 支持的设备类型

厂商设备类型示例命令
Cisco IOScisco_iosshow version
Cisco NX-OScisco_nxosshow ip int br
Cisco ASAcisco_asashow firewall
MikroTikmikrotik_routeros/system resource print
Palo Altopaloalto_panosshow system info
Juniperjuniper_junosshow version
Arubaaruba_osshow version
HP Comwarehp_comwaredisplay version

对于150多种支持设备的完整列表,请参见Netmiko支持平台


📁 项目结构

git-netai/
├── main.py                    # MCP服务器入口点
├── connectors/
│   ├── __init__.py           # 包初始化
│   ├── ssh_conn.py           # SSH连接模块
│   ├── librenms_con.py       # LibreNMS API连接器
│   ├── graylog_con.py        # Graylog API连接器
│   ├── apic_con.py           # Cisco APIC API连接器
│   └── aruba_con.py          # Aruba WiFi控制器API连接器
├── .env                       # 凭据(未提交)
├── .gitignore                 # Git忽略规则
├── pyproject.toml             # 项目配置
├── uv.lock                    # UV锁文件
├── test_connectors.py         # 连接器烟雾测试
└── README.md                  # 本文件

🧪 测试

快速测试

验证服务器:

uv run python -c "from main import mcp; print('✓ 服务器正常:', mcp.name)"

测试所有连接器:

uv run python test_connectors.py

单个连接器测试

# SSH连接
from connectors import run_network_command
result = run_network_command("10.1.1.1", "show version", "cisco_ios")

# LibreNMS
from connectors.librenms_con import search_devices
devices = search_devices("location", "datacenter-1")

# Graylog
from connectors.graylog_con import search_logs
logs = search_logs("error", relative_range=3600)

# Cisco APIC
from connectors.apic_con import get_apic_fabric_health
health = get_apic_fabric_health()

# Aruba
from connectors.aruba_con import ArubaConnector
aruba = ArubaConnector()
info = aruba.get_controller_info()
aruba.logout()

🔒 安全

  • 凭据:不要提交.env文件(已在.gitignore中)
  • 生产环境:使用密钥管理器(例如HashiCorp Vault、AWS Secrets Manager、1Password CLI)
  • 网络:确保SSH连接已适当加密并设置防火墙
  • 权限:使用具有最小必要权限的服务账户
  • 日志:在生产环境中禁用会话日志以避免凭据泄露

🐛 故障排除

问题解决方案
SSH连接失败使用ping验证网络连通性,手动测试SSH,检查.env凭据
服务器无法启动验证uv --versionpython --version(≥3.12),重新安装uv sync
自动检测失败明确指定设备类型:run_network_command("10.1.1.1", "show version", "cisco_ios")
启用调试日志在连接器文件中添加:import logging; logging.basicConfig(level=logging.DEBUG)

🤝 贡献

欢迎贡献!分叉仓库,创建功能分支,提交更改,并打开拉取请求。


📄 许可证

本项目采用MIT许可证——详情请参阅LICENSE文件。


🙏 致谢

  • FastMCP - 快速MCP服务器框架
  • Netmiko - 多厂商网络设备库
  • UV - 高速Python包管理器
  • Anthropic - 提供MCP协议和Claude

📞 支持


🗺️ 发展路线图

✅ 已完成

  • 150多个网络设备供应商的SSH连接器(Netmiko)
  • LibreNMS API连接器 - 17个工具用于网络监控
  • Graylog API连接器 - 4个工具用于日志管理
  • Cisco APIC API连接器 - 35个工具用于数据中心结构
  • Aruba WiFi控制器API连接器 - 17个工具用于无线管理

🚀 未来增强

  • 集成Cisco NDFC API
  • 集成Cisco DNA API
  • 添加更多LibreNMS端点(警报、设备组、库存)
  • 扩展Graylog功能(警报管理、仪表板)
  • 添加更多APIC端点(故障排查、变更管理)
  • 扩展Aruba能力(射频分析、热图)