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: SSH MCP Server
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Issue, rotate and revoke scoped API-key passes for 25+ providers — the agent never sees a real key
Run commands and read/write files on your servers over Termalin's keyless tunnels (hosted MCP).
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables seamless SSH operations including secure connections, file transfers, interactive shell sessions, and Docker container management on remote servers. Supports both password and SSH key authentication with credential management and connection pooling.18
- AlicenseAqualityCmaintenanceEnables 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.11194MIT
- 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.4210MIT
- AlicenseAqualityCmaintenanceBridges AI agents with network infrastructure, enabling secure read-only access to multiple vendor routers via SSH for natural language queries and troubleshooting.581MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bowling233/network-operator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server