Skip to main content
Glama
bowling233

Network Operator MCP

by bowling233

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)

ssh-terminal

Huawei S5720-28P-LI-AC

VRP 5.170 (V200R011C10SPC600)

ssh-terminal

Huawei S5720S-52P-LI-AC

VRP 5.170 (V200R011C10SPC600)

ssh-terminal

Huawei FutureMatrix S6720S-S24S28X-A

VRP 5.170 (V200R022C00SPC500)

ssh-terminal

MikroTik CCR2004-1G-12S+2XS (r3)

RouterOS 7.23.1 stable

ssh-exec

OpenWrt and ImmortalWrt devices

Various

ssh-exec

TP-Link TL-SG2226

2023 WebUI

http-tplink-switch

TP-Link TL-SG2024D

2023 WebUI

http-tplink-switch

TP-Link TL-SE2206

2024 WebUI

http-tplink-switch

ZTE BE7200 Pro+

V1.0.0.4B8.8000

http-zte-be7200

Mellanox SN2700

Onyx 3.7.1134

http-mellanox-onyx

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

Инструмент

Бэкенд устройства

Назначение

list_devices

Все

Список настроенных имён устройств и типов бэкендов.

ssh_execute

ssh-exec

Выполнить один SSH exec-запрос.

open_session

ssh-terminal

Открыть или повторно использовать терминал устройства.

list_sessions

ssh-terminal

Список открытых терминалов.

exchange

ssh-terminal

Записать ввод в терминал и прочитать вывод.

read_session

ssh-terminal

Прочитать вывод с байтового курсора.

close_session

ssh-terminal

Закрыть терминал устройства.

http_request

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-вызовы могут изменять конфигурацию устройства.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables 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
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    11
    19
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    4
    210
    MIT

Latest Blog Posts

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