Network Operator MCP
Network Operator MCP
network-operator-mcp позволяет агенту управлять интерфейсами управления сетевыми устройствами, сохраняя учётные данные устройств внутри MCP-сервера.
Сервер поддерживает следующие бэкенды устройств:
ssh-terminal: постоянный SSH PTY для интерактивных сетевых CLI.ssh-exec: один стандартный SSH exec-запрос на каждый вызов инструмента.http-tplink-switch: API WebUI коммутаторов TP-Link.http-zte-be7200: API WebUI ZTE BE7200 Pro+.http-mellanox-onyx: API WebUI Mellanox Onyx.
Сервер не интерпретирует команды, подсказки или ответы API. Он передаёт запросы и ответы между агентом и выбранным устройством.
Протестированные устройства
Производитель и модель | ПО | Бэкенд |
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 |
|
OpenWrt and ImmortalWrt devices | Various |
|
TP-Link TL-SG2226 | 2023 WebUI |
|
TP-Link TL-SG2024D | 2023 WebUI |
|
TP-Link TL-SE2206 | 2024 WebUI |
|
ZTE BE7200 Pro+ | V1.0.0.4B8.8000 |
|
Mellanox SN2700 | Onyx 3.7.1134 |
|
Related MCP server: SSH MCP Server
Конфигурация
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: falseУчётные записи могут использоваться несколькими устройствами. SSH-аккаунты могут использовать password, встроенный private_key и необязательный private_key_passphrase. Бэкенд ZTE принимает только парольную учётную запись, поскольку у этого продукта фиксированное имя пользователя WebUI.
HTTP по умолчанию использует порт 80, за исключением http-mellanox-onyx, который по умолчанию использует HTTPS-порт 443. Установите scheme, port и verify_tls на устройстве, если его настройки отличаются от этих значений по умолчанию. Полная примерная конфигурация находится в config/devices.example.yaml.
Инструменты MCP
Инструмент | Бэкенд устройства | Назначение |
| Все | Список настроенных имён устройств и типов бэкендов. |
|
| Выполнить один SSH exec-запрос. |
|
| Открыть или повторно использовать терминал устройства. |
|
| Список открытых терминалов. |
|
| Записать ввод в терминал и прочитать вывод. |
|
| Прочитать вывод с байтового курсора. |
|
| Закрыть терминал устройства. |
| HTTP-бэкенды | Отправить аутентифицированный запрос к WebUI API. |
HTTP-запросы
http_request принимает настроенный device, HTTP method и относительный к устройству path. Необязательные аргументы: query, headers, body, body_base64, form и timeout_seconds. Укажите не более одного из body, body_base64 и form.
MCP-сервер управляет учётными данными, cookie и токенами устройств. Вызывающие не могут предоставлять заголовки с учётными данными, а чувствительные заголовки аутентификации не возвращаются. Перенаправления из запросов агента возвращаются агенту, а не выполняются автоматически. Текстовые ответы возвращаются напрямую; бинарные ответы используют base64 и устанавливают body_encoding в base64.
Пример:
{
"device": "example-zte",
"method": "POST",
"path": "/?_type=vueData&_tag=vuecfg_data",
"form": {
"IF_ACTION": "Get"
}
}SSH-терминалы
Каждый терминал имеет фоновый читатель, который добавляет вывод устройства во временную запись. Передайте initial_output.next_cursor в первый exchange, затем переносите каждый возвращённый next_cursor вперёд. Тайм-аут тишины означает только то, что за этот интервал не поступило новых байтов; это не доказывает, что команда завершена.
Перезапуск MCP-сервера обязательно закрывает активные SSH-соединения и отбрасывает их записи. Вызовите open_session снова для устройства и продолжите с новым начальным курсором.
Состояние
SSH-терминалы привязаны к имени устройства и не принадлежат сессии MCP-клиента. Инструменты не предоставляют и не принимают идентификатор сессии терминала. Транспорт Streamable HTTP также не сохраняет состояние, поэтому перезапуск MCP-сервера не оставляет у клиента устаревший идентификатор MCP-сессии.
Запуск сервера
Проверка конфигурации:
network-operator-mcp --config config/devices.local.yaml validate-configЗапуск через stdio:
network-operator-mcp --config config/devices.local.yaml serveЗапуск с Streamable HTTP:
network-operator-mcp --config config/devices.local.yaml serve \
--transport streamable-http --host 127.0.0.1 --port 8000Сервер также поддерживает транспорт sse.
Замечания по безопасности
Защищайте файлы конфигурации, поскольку они содержат учётные данные в открытом виде.
Ключи хоста SSH-сервера не проверяются.
Оставляйте проверку TLS включённой, если устройство имеет доверенный сертификат. Используйте
verify_tls: falseтолько для устройств, чей сертификат WebUI не может быть проверен.Предоставляйте доступ к MCP-транспорту только доверенным агентам и пользователям. HTTP API-вызовы могут изменять конфигурацию устройства.
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