nable-rmm-mcp

nable-rmm-mcp

Enables interaction with N-able RMM (N-sight) API to manage clients, sites, devices, and retrieve monitoring data such as checks, patches, and performance history.

Category
Visit Server

README

nable-rmm-mcp

N-able RMM MCP server — exposes the N-able RMM Data Extraction API as MCP tools.

Naming note: this integration is called "N-able RMM" in app.mspbots.ai (sys_integration.subject_code = SOLARWIND — it was originally SolarWinds RMM). N-able's own public developer docs call the same product "N-sight" (https://developer.n-able.com/n-sight/docs/...). This is a different product from N-able N-Central, which is a separate integration in app.mspbots.ai with its own API. This server wraps N-sight/N-able RMM only.

Overview

This server implements the Model Context Protocol (Streamable HTTP/SSE transport) and wraps the N-sight API (the API behind the "N-able RMM" integration). It follows the MSPbots Vendor MCP Service SOP: stateless, no stored credentials, per-request header authentication.

The underlying API itself authenticates via an apikey query parameter and returns XML. This server never stores that key — the caller passes it per-request via a header, and every tool response is the XML converted to JSON for readability.

Quick Start

Docker (recommended)

docker compose up --build

The server starts on http://localhost:8080.

Local (uv)

uv sync
python -m nable_rmm_mcp

Health Check

curl http://localhost:8080/health
# {"status": "ok", "service": "nable-rmm-mcp", "transport": "http"}

No token is required for the health endpoint.

授权参数说明 (Authentication)

Every request to /mcp must include the following HTTP headers. Header naming mirrors the fields on the existing "N-able RMM" integration form in app.mspbots.ai (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

Missing X-Nable-Api-Token returns 401 Unauthorized. N-able RMM also caps automated calls at 60 requests/minute per key — this server does not throttle for you, so pace bulk calls accordingly.

Environment Variables

Variable Default Description
MCP_HTTP_PORT 8080 Listening port
MCP_HTTP_HOST 0.0.0.0 Listening host
NABLE_BASE_URL https://www.am.remote.management Default regional server; override per-request with X-Nable-Server

MCP Endpoint

POST http://localhost:8080/mcp

Connect your MCP client with:

  • Transport: http (Streamable HTTP / SSE)
  • Headers: X-Nable-Api-Token: <api_key> (required), X-Nable-Server: <base_url> (optional)

Tool List

16 tools, covering the full public N-sight API reference plus the 4 endpoints already in production use under app.mspbots.ai's "N-able RMM" integration (Device Monitoring Details, Drive Space History, Patch, Performance History).

Clients & Sites

Tool 功能 参数
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?

Devices

Tool 功能 参数
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)

Checks, Patch & Performance

Tool 功能 参数
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)

List all servers at a site:

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

Equivalent curl against the running server (streamable HTTP MCP endpoint):

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 }
    }
  }'

Expected shape of a successful result (the underlying XML response, converted to JSON; fields abbreviated):

{
  "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 Reference

Verified Against a Live Account

All 14 read tools have been exercised end-to-end against a real N-able RMM account (US region) and returned real data, including edge cases N-able's public docs left ambiguous:

  • nable_rmm_get_performance_history's interval parameter is required (not optional as the docs example implied) and only accepts 15 or 60 — confirmed via the API's own validation error (Invalid "interval": must be 15 or 60 (minutes)).
  • nable_rmm_get_agentless_assets returns empty items on this account, consistent with N-able's note that the feature is deprecated.

The two write tools (nable_rmm_create_client, nable_rmm_create_site) were not exercised against the live account to avoid creating real data in a production customer's N-able RMM tenant — verify these against a disposable test account before relying on them.

Known Gaps / Not Implemented

  • get_site_installation_package — returns a binary installer download rather than structured data, not practical as an MCP tool.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured