Skip to main content
Glama
MSPbotsAIFramework

nable-rmm-mcp

nable-rmm-mcp

N-able RMM MCP-сервер — предоставляет N-able RMM Data Extraction API в виде MCP-инструментов.

Примечание о названии: эта интеграция называется «N-able RMM» в app.mspbots.ai (sys_integration.subject_code = SOLARWIND — изначально это было SolarWinds RMM). В собственной публичной документации разработчика N-able тот же продукт называется «N-sight» (https://developer.n-able.com/n-sight/docs/...). Это другой продукт, нежели N-able N-Central, который является отдельной интеграцией в app.mspbots.ai со своим собственным API. Этот сервер оборачивает только N-sight/N-able RMM.

Обзор

Этот сервер реализует Model Context Protocol (транспорт Streamable HTTP/SSE) и оборачивает N-sight API (API, лежащий в основе интеграции «N-able RMM»). Он следует MSPbots Vendor MCP Service SOP: без сохранения состояния, без хранения учётных данных, аутентификация через заголовок при каждом запросе.

Базовый API аутентифицируется через query-параметр apikey и возвращает XML. Этот сервер никогда не хранит этот ключ — вызывающая сторона передаёт его при каждом запросе через заголовок, а каждый ответ инструмента представляет собой XML, преобразованный в JSON для удобочитаемости.

Related MCP server: Datto RMM MCP Server

Быстрый старт

Docker (рекомендуется)

docker compose up --build

Сервер запускается на http://localhost:8080.

Локально (uv)

uv sync
python -m nable_rmm_mcp

Проверка работоспособности

curl http://localhost:8080/health
# {"status": "ok"}

Для конечной точки проверки работоспособности токен не требуется.

Параметры аутентификации (Authentication)

Каждый запрос к /mcp должен включать следующие HTTP-заголовки. Имена заголовков повторяют поля существующей формы интеграции «N-able RMM» в app.mspbots.ai (API Token / URL).

Заголовок

Тип

Обязательность

Значение по умолчанию

Допустимые значения

Описание поля

Пример

X-Nable-Api-Token

string

обязателен

нет

нет (произвольный текст)

Ключ API N-able RMM создаётся в Settings > General Settings > API > Generate. Если ключ ограничен определённой группой клиентов, вызов возвращает данные только клиентов этой группы.

X-Nable-Api-Token: <your_api_key>

X-Nable-Server

string

необязателен

переменная окружения NABLE_BASE_URL (по умолчанию https://www.am.remote.management)

см. список из 11 региональных серверов ниже

N-able RMM разделён на 11 независимых серверов по региону учётной записи; если заголовок не передан, используется значение по умолчанию из переменной окружения; когда шлюз одновременно обслуживает арендаторов из нескольких регионов, значение переопределяется для каждого запроса.

X-Nable-Server: https://www.systemmonitor.co.uk

11 допустимых значений X-Nable-Server (регион → Base URL):

Регион

Base URL

Америка (по умолчанию)

https://www.am.remote.management

Азия

https://wwwasia.system-monitor.com

Австралия

https://www.system-monitor.com

Европа

https://wwweurope1.systemmonitor.eu.com

Франция

https://wwwfrance.systemmonitor.eu.com

Франция1

https://wwwfrance1.systemmonitor.eu.com

Германия

https://wwwgermany1.systemmonitor.eu.com

Ирландия

https://wwwireland.systemmonitor.eu.com

Польша

https://wwwpoland1.systemmonitor.eu.com

Великобритания

https://www.systemmonitor.co.uk

Соединённые Штаты

https://www.systemmonitor.us

Отсутствие X-Nable-Api-Token возвращает 401 Unauthorized. N-able RMM также ограничивает автоматические вызовы 60 запросами в минуту на ключ — этот сервер не ограничивает частоту запросов за вас, поэтому планируйте массовые вызовы соответствующим образом.

Переменные окружения

Переменная

Значение по умолчанию

Описание

MCP_HTTP_PORT

8080

Порт прослушивания

MCP_HTTP_HOST

0.0.0.0

Хост прослушивания

NABLE_BASE_URL

https://www.am.remote.management

Региональный сервер по умолчанию; переопределяется для каждого запроса с помощью X-Nable-Server

Конечная точка MCP

POST http://localhost:8080/mcp

Подключите ваш MCP-клиент с помощью:

  • Транспорт: http (Streamable HTTP / SSE)

  • Заголовки: X-Nable-Api-Token: <api_key> (обязателен), X-Nable-Server: <base_url> (необязателен)

Список инструментов

16 инструментов, охватывающих всю публичную справочную документацию N-sight API, плюс 4 конечные точки, уже используемые в продакшене в рамках интеграции «N-able RMM» в app.mspbots.ai (Device Monitoring Details, Drive Space History, Patch, Performance History).

Клиенты и сайты

Инструмент

Функция

Параметры

nable_rmm_get_clients

Перечислить всех клиентов, доступных для данного API key

devicetype? ("server"/"workstation"/"mobile_device")

nable_rmm_get_sites

Перечислить все сайты клиента

clientid (обязателен, int)

nable_rmm_create_client

Создать клиента (запись)

name (обязателен), timezone?, officehoursemail?, officehourssms?, outofofficehoursemail?, outofofficehourssms?

nable_rmm_create_site

Создать сайт у клиента (запись)

clientid (обязателен), sitename (обязателен), router1?, router2?, workstationtemplate?, servertemplate?

Устройства

Инструмент

Функция

Параметры

nable_rmm_get_devices_at_client

Перечислить устройства всех сайтов клиента по типу устройства

clientid (обязателен), devicetype (обязателен, "server"/"workstation"/"mobile_device")

nable_rmm_get_servers

Перечислить серверы на сайте и их статус онлайн/проверки

siteid (обязателен, int)

nable_rmm_get_workstations

Перечислить рабочие станции на сайте и их статус онлайн/проверки

siteid (обязателен, int)

nable_rmm_get_agentless_assets

Перечислить активы без агента (обнаруженные сканированием) на сайте (N-able пометил эту функцию как deprecated)

siteid (обязателен, int)

nable_rmm_get_device_monitoring_details

Получить подробную информацию мониторинга для одного устройства

deviceid (обязателен, int)

Проверки, патчи и производительность

Инструмент

Функция

Параметры

nable_rmm_get_failing_checks

Перечислить текущие неудачные проверки

clientid?, check_type? ("checks"/"tasks"/"random")

nable_rmm_get_checks

Перечислить все проверки, настроенные на устройстве

deviceid (обязателен, int)

nable_rmm_get_check_config

Получить подробную конфигурацию отдельной проверки (структура зависит от типа проверки/ОС)

checkid (обязателен, int)

nable_rmm_get_outages

Перечислить записи о сбоях устройства (открытые или закрытые за последние 61 день)

deviceid (обязателен, int)

nable_rmm_get_drive_space_history

История проверок дискового пространства (на основе list_checks с фильтром по check_type 1003/1004; в N-sight нет отдельного сервиса)

deviceid (обязателен, int)

nable_rmm_get_patch_list

Перечислить все патчи на устройстве и их статус/критичность

deviceid (обязателен, int)

nable_rmm_get_performance_history

Исторические показатели производительности устройства (пропускная способность/диск/CPU/память/сетевой адаптер)

deviceid (обязателен, int), interval (обязателен, int, только 15 или 60), since?

Тестовый пример (Test Example)

Перечислить все серверы на сайте:

{
  "method": "tools/call",
  "params": {
    "name": "nable_rmm_get_servers",
    "arguments": { "siteid": 12345 }
  }
}

Эквивалентная команда curl к запущенному серверу (конечная точка MCP со streamable HTTP):

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-Nable-Api-Token: <api_key>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "nable_rmm_get_servers",
      "arguments": { "siteid": 12345 }
    }
  }'

Ожидаемый вид успешного результата (базовый XML-ответ, преобразованный в JSON; поля сокращены):

{
  "content": [
    {
      "type": "text",
      "text": "{\n  \"created\": \"2026-03-15T10:00:00+00:00\",\n  \"host\": \"...\",\n  \"status\": \"OK\",\n  \"items\": {\n    \"server\": [ { \"serverid\": \"9001\", \"name\": \"DC01\", \"online\": \"1\", \"status_247\": \"5\", \"os\": \"Windows Server 2022\" } ]\n  }\n}"
    }
  ]
}

Справочник API

Проверено на реальном аккаунте

Все 14 инструментов чтения были протестированы end-to-end на реальном аккаунте N-able RMM (регион US) и вернули реальные данные, включая крайние случаи, которые публичная документация N-able оставила неоднозначными:

  • Параметр interval инструмента nable_rmm_get_performance_history является обязательным (не необязательным, как подразумевал пример в документации) и принимает только 15 или 60 — подтверждено ошибкой валидации самого API (Invalid "interval": must be 15 or 60 (minutes)).

  • nable_rmm_get_agentless_assets возвращает пустой items на этом аккаунте, что согласуется с примечанием N-able о том, что функция устарела.

Два инструмента записи (nable_rmm_create_client, nable_rmm_create_site) не тестировались на реальном аккаунте, чтобы не создавать реальные данные в тенанте N-able RMM производственного заказчика — проверьте их на одноразовом тестовом аккаунте, прежде чем полагаться на них.

Известные пробелы / Не реализовано

  • get_site_installation_package — возвращает загрузку бинарного установщика, а не структурированные данные, что непрактично в качестве MCP-инструмента.

Related MCP Connectors

Related MCP Servers