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: mcp-ssh
Конфигурация
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 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-