NETGEAR M4250/M4300/M4350——MCP服务器🔌
MCP(模型上下文协议)服务器,将NETGEAR M4250/M4300/M4350 Pro AV网络交换机作为AI原生工具公开。将任何兼容MCP的LLM客户端(Claude Desktop、OpenWebUI、Cursor…)连接到您的网络基础设施,并通过自然语言查询、监控或排除NETGEAR交换机组的故障。
目标受众: 希望使用AI助手与NETGEAR Pro AV交换机交互的网络工程师和AV集成商。
✨ 特性
双HTTP传输 — streamable-http (推荐)和 SSE,可通过单个环境变量切换
SSH连接 --使用SSH连接到NETGEAR交换机 异步ssh
交互式外壳处理 --寻呼机旁路自动启用模式(terminal length 0),以及 --More-- 提示处理
多交换机支持 --通过IP定位任何交换机;按子网区域或全局回退解析凭据
结构化JSON输出 --每个工具都返回一致的、机器可读的JSON有效负载
安全中间件 --承载令牌身份验证和IP分配列表(CIDR),在ASGI层强制执行
兼容OpenWebUI --在OpenWebUI中作为MCP工具服务器开箱即用
多型号支持 --具有型号自适应命令的M4250、M4300和M4350系列
11个NETGEAR工具 --设备信息、接口、VLAN、PoE、STP、路由、LLDP、配置备份和通用CLI
按设计只读 --没有工具可以修改交换机配置
🔧 可用工具
核心和设备信息
工具
CLI命令
说明
netgear_show_version
show version / show switch
型号、串行、固件、正常运行时间(型号自适应)
netgear_show_hosts
show hosts
主机名、DNS域、DNS服务器
netgear_config_backup
show running-config
完整运行配置备份
端口和接口
工具
CLI命令
说明
netgear_show_interfaces
show interface counters
所有端口流量计数器
netgear_show_interface_port
show interfaces status <port> + show interface ethernet <port>
详细的单端口统计数据(端口格式: 1/0/X)
虚拟局域网
工具
CLI命令
说明
netgear_show_vlan
show vlan / show interfaces switchport <port>
所有VLAN或每个端口的交换端口配置
能量网络
工具
CLI命令
说明
netgear_show_poe
show poe
PoE功率预算、消耗、每个端口状态
生成树
工具
CLI命令
说明
netgear_show_spanning_tree
show spanning-tree
STP网桥/根信息
路由
工具
CLI命令
说明
netgear_show_ip_route
show ip route
IP路由表
链路层发现协议
工具
CLI命令
说明
netgear_show_lldp
show lldp remote-device all
LLDP邻居发现
通用CLI
工具
CLI命令
说明
netgear_cli_readonly
任何 show ... command
执行任何只读CLI命令
🚀 快速开始
先决条件: Python 3.10+ 和 紫外线
复制 # 1. Clone the repository
git clone https://github.com/0xEkho/Netgear-AV-MCP.git
cd Netgear-AV-MCP
# 2. Install dependencies
uv sync
# 3. Configure
cp .env.example .env
# → Edit .env: set NETGEAR_GLOBAL_USERNAME, NETGEAR_GLOBAL_PASSWORD, MCP_API_KEY
# 4. Start the MCP server
uv run mcp-server
服务器启动于 http://0.0.0.0:8082 (流式HTTP传输)。
🐳 Docker(生产)
复制 cp .env.example .env
# Edit .env
docker compose up -d
⚙️ 配置
复制 .env.example 到 .env 并调整数值。永不承诺 .env 版本控制。
MCP 服务器
变量
默认值
描述
MCP_SERVER_NAME
netgear-av-mcp
显示名称
MCP_TRANSPORT
streamable-http
运输: streamable-http, sse,或 stdio
MCP_HOST
0.0.0.0
绑定地址
MCP_PORT
8082
监听端口
安全
变量
默认值
描述
MCP_API_KEY
(空)
不记名代币。留空以禁用。
MCP_ALLOWED_IPS
127.0.0.1/32,...
逗号分隔的CIDR列表
SSH凭据
变量
默认值
描述
NETGEAR_GLOBAL_USERNAME
--
默认SSH用户名
NETGEAR_GLOBAL_PASSWORD
--
默认SSH密码
NETGEAR_ZONE{X}_USERNAME
(空)
覆盖10.X.0.0/16
NETGEAR_ZONE{X}_PASSWORD
(空)
覆盖10.X.0.0/16
基于区域的凭据: 集 NETGEAR_ZONE9_USERNAME / NETGEAR_ZONE9_PASSWORD 所有开关打开 10.9.0.0/16.
SSH设置
变量
默认值
描述
SSH_STRICT_HOST_KEY
false
严格的主机密钥检查
SSH_KNOWN_HOSTS_FILE
./known_hosts
SSH已知主机路径
SSH_CONNECT_TIMEOUT
10
连接超时(秒)
SSH_COMMAND_TIMEOUT
30
命令超时(秒)
📁 项目结构
复制 Netgear-AV-MCP/
├── src/
│ └── mcp_server/
│ ├── server.py # FastMCP init, transport, security middleware
│ ├── tools/ # MCP tools — one file per category
│ │ ├── core.py # version, hosts, config backup
│ │ ├── ports.py # interface counters, port details
│ │ ├── vlan.py # VLAN audit
│ │ ├── poe.py # PoE status
│ │ ├── spantree.py # Spanning Tree
│ │ ├── routing.py # IP routes
│ │ ├── lldp.py # LLDP neighbors
│ │ └── cli.py # Generic read-only CLI
│ └── ssh/
│ ├── client.py # asyncssh interactive shell client
│ └── auth.py # Credential resolver (global → zone)
├── tests/
├── .env.example
├── pyproject.toml
├── AGENTS.md
└── LICENSE
🌐 OpenWebUI集成
从...开始 MCP_TRANSPORT=streamable-http (默认)
在OpenWebUI中→ 设置→ 工具→ 添加工具服务器:
网址: http://<server-ip>:8082/mcp
认证: Authorization: Bearer <MCP_API_KEY>
工具自动出现
SSE:设置 MCP_TRANSPORT=sse,使用 /sse 终点。
🔧 Claude桌面集成
编辑 claude_desktop_config.json:
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
视窗 : %APPDATA%\Claude\claude_desktop_config.json
复制 {
"mcpServers": {
"netgear-av": {
"command": "uv",
"args": ["--directory", "/path/to/Netgear-AV-MCP", "run", "mcp-server"],
"env": {"MCP_TRANSPORT": "stdio"}
}
}
}
⚠️ 替换 /path/to/Netgear-AV-MCP 在您的计算机上拥有此项目的绝对路径。
🛠 发展
复制 uv sync # Install dependencies
uv run mcp-server # Start (streamable-http)
MCP_TRANSPORT=sse uv run mcp-server # SSE transport
MCP_TRANSPORT=stdio uv run mcp-server # STDIO
uv run pytest # Run tests
uv run pytest --cov=mcp_server # With coverage
npx @modelcontextprotocol/inspector uv run mcp-server # MCP Inspector
🤖 副驾驶代理
该项目包括4名专业的Copilot代理商(.github/agents/)用于自动化协作。
代理
域
mcp-developer
源代码: src/mcp_server/ (工具、SSH客户端、身份验证)
mcp-tester
测试: tests/ --从不修改 src/
mcp-scaffolder
配置: pyproject.toml, .gitignore, .env.example
mcp-documenter
文件: README.md,文档字符串, AGENTS.md
🔗 资源
📄 许可证
MIT许可证——见 许可证 .