Skip to main content
Glama
MSPbotsAIFramework

nable-rmm-mcp

nable-rmm-mcp

N-able RMM MCP 服务器 — 将 N-able RMM Data Extraction API 暴露为 MCP 工具。

命名说明: 在 app.mspbots.ai 中,此集成称为 "N-able RMM"(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(即 "N-able RMM" 集成背后的 API)。它遵循 MSPbots Vendor MCP Service SOP:无状态、不存储凭据、每次请求通过 header 进行认证。

底层 API 本身通过 apikey 查询参数进行认证,并返回 XML。本服务器从不存储该 key — 调用方在每次请求中通过 header 传入,所有工具响应均为 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"}

健康检查端点无需 token。

授权参数说明 (Authentication)

对 /mcp 的每个请求都必须包含以下 HTTP headers。Header 命名与 app.mspbots.ai 中现有 "N-able RMM" 集成表单的字段(API Token / URL)保持一致。

Header

类型

是否必填

默认值

枚举值

字段描述

Example

X-Nable-Api-Token

string

必填

无

无(自由文本)

N-able RMM API key,在 Settings > General Settings > API > Generate 生成。若 key 被限定到某个 client group,调用只返回该组内客户的数据。

X-Nable-Api-Token: <your_api_key>

X-Nable-Server

string

可选

NABLE_BASE_URL 环境变量(默认 https://www.am.remote.management)

见下方 11 个地区服务器列表

N-able RMM 按账号所属地区分为 11 个独立服务器,不带该 header 时用环境变量默认值;网关同时服务多地区租户时按请求覆盖。

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

X-Nable-Server 的 11 个枚举值(地区 → Base URL):

Region

Base URL

Americas (default)

https://www.am.remote.management

Asia

https://wwwasia.system-monitor.com

Australia

https://www.system-monitor.com

Europe

https://wwweurope1.systemmonitor.eu.com

France

https://wwwfrance.systemmonitor.eu.com

France1

https://wwwfrance1.systemmonitor.eu.com

Germany

https://wwwgermany1.systemmonitor.eu.com

Ireland

https://wwwireland.systemmonitor.eu.com

Poland

https://wwwpoland1.systemmonitor.eu.com

United Kingdom

https://www.systemmonitor.co.uk

United States

https://www.systemmonitor.us

缺少 X-Nable-Api-Token 时返回 401 Unauthorized。N-able RMM 还将自动化调用限制为 每个 key 每分钟 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)

  • Headers: X-Nable-Api-Token: <api_key>(必填)、X-Nable-Server: <base_url>(可选)

工具列表

共 16 个工具,覆盖完整的 N-sight 公共 API 参考,外加 app.mspbots.ai 的 "N-able RMM" 集成中已在生产环境使用的 4 个端点(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

获取单个检查项的详细配置(结构因检查类型/OS而异)

checkid (必填, int)

nable_rmm_get_outages

列出设备的 outage 记录(开放中或近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(streamable HTTP MCP 端点):

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 个只读工具均已针对真实的 N-able RMM 账号(美国地区)进行了端到端验证,并返回了真实数据,包括 N-able 公开文档中语焉不详的边界情况:

  • nable_rmm_get_performance_history 的 interval 参数是必填的(并非文档示例所暗示的可选),且只接受 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