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.
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'sintervalparameter is required (not optional as the docs example implied) and only accepts15or60— confirmed via the API's own validation error (Invalid "interval": must be 15 or 60 (minutes)).nable_rmm_get_agentless_assetsreturns emptyitemson 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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。