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 |
+ show interface ethernet |详细的单端口统计数据(端口格式: 1/0/X`) |
虚拟局域网
| 工具 | CLI命令 | 说明 |
|---|
netgear_show_vlan | show vlan / `show interfaces switchport |
| ` | 所有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命令 |
🚀 快速开始
# 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://:8082/mcp - 认证: Authorization: Bearer
- 工具自动出现
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许可证——见 许可证.