Network Operator MCP
Network Operator MCP
network-operator-mcp permite que un agente opere interfaces de gestión de dispositivos de red mientras mantiene las credenciales de los dispositivos dentro del servidor MCP.
El servidor admite estos backends de dispositivos:
ssh-terminal: una PTY SSH persistente para CLIs de red interactivas.ssh-exec: una solicitud SSH exec estándar por llamada de herramienta.http-tplink-switch: APIs WebUI de switches TP-Link.http-zte-be7200: APIs WebUI de ZTE BE7200 Pro+.http-mellanox-onyx: APIs WebUI de Mellanox Onyx.
El servidor no interpreta comandos, indicaciones ni respuestas de API. Transporta solicitudes y respuestas entre el agente y el dispositivo seleccionado.
Dispositivos probados
Vendedor y modelo | Software | Backend |
Huawei S1730S-S48T4X-A1 | VRP 5.170 (V200R022C00SPC500) |
|
Huawei S5720-28P-LI-AC | VRP 5.170 (V200R011C10SPC600) |
|
Huawei S5720S-52P-LI-AC | VRP 5.170 (V200R011C10SPC600) |
|
Huawei FutureMatrix S6720S-S24S28X-A | VRP 5.170 (V200R022C00SPC500) |
|
MikroTik CCR2004-1G-12S+2XS (r3) | RouterOS 7.23.1 stable |
|
Dispositivos OpenWrt e ImmortalWrt | Varios |
|
TP-Link TL-SG2226 | WebUI 2023 |
|
TP-Link TL-SG2024D | WebUI 2023 |
|
TP-Link TL-SE2206 | WebUI 2024 |
|
ZTE BE7200 Pro+ | V1.0.0.4B8.8000 |
|
Mellanox SN2700 | Onyx 3.7.1134 |
|
Related MCP server: mcp-ssh
Configuración
backends:
ssh-terminal:
connect_timeout_seconds: 15
default_quiet_timeout_ms: 1000
default_deadline_ms: 15000
default_response_limit_bytes: 200000
max_sessions: 10
session_idle_ttl_seconds: 600
max_session_lifetime_seconds: 3600
ssh-exec:
connect_timeout_seconds: 15
default_command_timeout_seconds: 60
http:
connect_timeout_seconds: 10
default_request_timeout_seconds: 30
max_response_bytes: 2000000
accounts:
ssh-operator:
username: netadmin
password: plaintext-password
web-operator:
username: webadmin
password: plaintext-password
zte-password:
password: plaintext-password
devices:
example-huawei:
type: ssh-terminal
host: 192.0.2.10
account: ssh-operator
example-tplink:
type: http-tplink-switch
host: 192.0.2.20
account: web-operator
example-zte:
type: http-zte-be7200
host: 192.0.2.30
account: zte-password
example-onyx:
type: http-mellanox-onyx
host: 192.0.2.40
account: web-operator
verify_tls: falseLas cuentas pueden compartirse entre varios dispositivos. Las cuentas SSH pueden usar password, una private_key en línea y una private_key_passphrase opcional. El backend ZTE acepta una cuenta solo con contraseña porque ese producto tiene un nombre de usuario WebUI fijo.
HTTP usa el puerto 80 por defecto, excepto para http-mellanox-onyx, que usa el puerto HTTPS 443. Establezca scheme, port y verify_tls en un dispositivo cuando su configuración difiera de esos valores predeterminados. La configuración de ejemplo completa está en config/devices.example.yaml.
Herramientas MCP
Herramienta | Backend de dispositivo | Propósito |
| Todos | Lista los nombres de dispositivos configurados y los tipos de backend. |
|
| Ejecuta una solicitud SSH exec. |
|
| Abre o reutiliza la terminal de un dispositivo. |
|
| Lista las terminales abiertas. |
|
| Escribe entrada en la terminal y lee la salida. |
|
| Lee la salida desde un cursor de bytes. |
|
| Cierra la terminal de un dispositivo. |
| Backends HTTP | Envía una solicitud de API WebUI autenticada. |
Solicitudes HTTP
http_request acepta un device configurado, un method HTTP y un path relativo al dispositivo. Los argumentos opcionales son query, headers, body, body_base64, form y timeout_seconds. Proporcione como máximo uno de body, body_base64 y form.
El servidor MCP gestiona credenciales, cookies y tokens de dispositivo. Los llamadores no pueden proporcionar encabezados con credenciales, y los encabezados de autenticación sensibles no se devuelven. Las redirecciones de las solicitudes del agente se devuelven al agente en lugar de seguirse automáticamente. Las respuestas de texto se devuelven directamente; las respuestas binarias usan base64 y establecen body_encoding en base64.
Ejemplo:
{
"device": "example-zte",
"method": "POST",
"path": "/?_type=vueData&_tag=vuecfg_data",
"form": {
"IF_ACTION": "Get"
}
}Terminales SSH
Cada terminal tiene un lector en segundo plano que agrega la salida del dispositivo a una transcripción temporal. Lleve initial_output.next_cursor al primer exchange y luego lleve cada next_cursor devuelto hacia adelante. Un tiempo de espera silencioso solo significa que no llegaron nuevos bytes durante ese intervalo; no prueba que un comando haya finalizado.
Un reinicio del servidor MCP necesariamente cierra las conexiones SSH activas y descarta sus transcripciones. Llame a open_session nuevamente para el dispositivo y continúe con el nuevo cursor inicial.
Estado
Las terminales SSH se identifican por nombre de dispositivo y no pertenecen a una sesión de cliente MCP. Las herramientas no exponen ni aceptan un identificador de sesión de terminal. El transporte HTTP transmisible también es sin estado, por lo que reiniciar el servidor MCP no deja al cliente con un identificador de sesión MCP obsoleto.
Ejecutar el servidor
Valide una configuración:
network-operator-mcp --config config/devices.local.yaml validate-configEjecute sobre stdio:
network-operator-mcp --config config/devices.local.yaml serveEjecute con Streamable HTTP:
network-operator-mcp --config config/devices.local.yaml serve \
--transport streamable-http --host 127.0.0.1 --port 8000El servidor también admite el transporte sse.
Notas de seguridad
Proteja los archivos de configuración porque contienen credenciales en texto plano.
Las claves de host del servidor SSH no se verifican.
Mantenga la verificación TLS habilitada cuando un dispositivo tenga un certificado de confianza. Use
verify_tls: falsesolo para dispositivos cuyo certificado WebUI no pueda validarse.Exponga el transporte MCP solo a agentes y usuarios de confianza. Las llamadas a la API HTTP pueden cambiar la configuración del dispositivo.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
- emisarOAuthdev.emisar
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
- NoxgildOAuthcom.noxgild
Secure AI access to Windows, macOS, Linux computers and a hosted Cloud Browser.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables remote server management through SSH and SFTP, supporting command execution, file transfers, and interactive shell sessions. It allows for multiple concurrent connections using either password or SSH key authentication.1120 npm5MIT
- AlicenseBqualityDmaintenanceEnables secure SSH connections to remote servers for executing shell commands and managing active sessions. It supports authentication via passwords or private keys and provides optional host-based access control.4109 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute SSH commands on network devices using natural language, supporting multiple vendors and authentication methods for automated network management.-
- FlicenseBqualityCmaintenanceEnables remote management of TR-069 ACS (Auto Configuration Server) via SSH, including device management, configuration deployment, script execution, and server lifecycle control.32-