nable-rmm-mcp
nable-rmm-mcp
N-able RMM servidor MCP — expone la API de extracción de datos de N-able RMM como herramientas MCP.
Nota sobre la nomenclatura: esta integración se llama "N-able RMM" en app.mspbots.ai (
sys_integration.subject_code = SOLARWIND— originalmente era SolarWinds RMM). La documentación pública para desarrolladores de N-able llama al mismo producto "N-sight" (https://developer.n-able.com/n-sight/docs/...). Es un producto diferente de N-able N-Central, que es una integración separada en app.mspbots.ai con su propia API. Este servidor solo envuelve N-sight/N-able RMM.
Descripción general
Este servidor implementa el Model Context Protocol (transporte Streamable HTTP/SSE) y envuelve la API de N-sight (la API detrás de la integración "N-able RMM"). Sigue el Vendor MCP Service SOP de MSPbots: sin estado, sin credenciales almacenadas, autenticación por encabezado en cada solicitud.
La API subyacente se autentica mediante un parámetro de consulta apikey y devuelve XML. Este servidor nunca almacena esa clave: el llamador la pasa en cada solicitud mediante un encabezado, y cada respuesta de herramienta es el XML convertido a JSON para facilitar la lectura.
Related MCP server: Datto RMM MCP Server
Inicio rápido
Docker (recomendado)
docker compose up --buildEl servidor se inicia en http://localhost:8080.
Local (uv)
uv sync
python -m nable_rmm_mcpComprobación de salud
curl http://localhost:8080/health
# {"status": "ok"}No se requiere token para el endpoint de salud.
Parámetros de autenticación
Cada solicitud a /mcp debe incluir los siguientes encabezados HTTP. Los nombres de los encabezados reflejan los campos del formulario de integración "N-able RMM" existente en app.mspbots.ai (API Token / URL).
Encabezado | Tipo | Obligatorio | Valor por defecto | Valores enumerados | Descripción del campo | Ejemplo |
| string | Obligatorio | Ninguno | Ninguno (texto libre) | Clave de API de N-able RMM, generada en Settings > General Settings > API > Generate. Si la clave está restringida a un grupo de clientes, la llamada solo devuelve los datos de los clientes de ese grupo. |
|
| string | Opcional | Variable de entorno | Ver la lista de 11 servidores regionales a continuación | N-able RMM se divide en 11 servidores independientes según la región de la cuenta; si no se envía este encabezado, se usa el valor por defecto de la variable de entorno; cuando la puerta de enlace atiende a inquilinos de varias regiones, se sobrescribe por solicitud. |
|
Los 11 valores enumerados de X-Nable-Server (región → URL base):
Región | URL base |
Américas (predeterminado) |
|
Asia |
|
Australia |
|
Europa |
|
Francia |
|
France1 |
|
Alemania |
|
Irlanda |
|
Polonia |
|
Reino Unido |
|
Estados Unidos |
|
La ausencia de X-Nable-Api-Token devuelve 401 Unauthorized. N-able RMM también limita las llamadas automatizadas a 60 solicitudes/minuto por clave; este servidor no aplica limitación por ti, así que espacia las llamadas masivas en consecuencia.
Variables de entorno
Variable | Valor por defecto | Descripción |
|
| Puerto de escucha |
|
| Host de escucha |
|
| Servidor regional predeterminado; se puede sobrescribir por solicitud con |
Endpoint MCP
POST http://localhost:8080/mcpConecta tu cliente MCP con:
Transporte:
http(Streamable HTTP / SSE)Encabezados:
X-Nable-Api-Token: <api_key>(obligatorio),X-Nable-Server: <base_url>(opcional)
Lista de herramientas
16 herramientas, que cubren la referencia completa de la API pública de N-sight más los 4 endpoints ya en uso en producción en la integración "N-able RMM" de app.mspbots.ai (Device Monitoring Details, Drive Space History, Patch, Performance History).
Clientes y sitios
Herramienta | Función | Parámetros |
| Lista todos los clientes visibles para esta clave de API |
|
| Lista todos los sitios de un cliente |
|
| Crea un cliente (operación de escritura) |
|
| Crea un sitio dentro de un cliente (operación de escritura) |
|
Dispositivos
Herramienta | Función | Parámetros |
| Lista los dispositivos de todos los sitios de un cliente por tipo de dispositivo |
|
| Lista los servidores de un sitio y su estado en línea/de comprobación |
|
| Lista las estaciones de trabajo de un sitio y su estado en línea/de comprobación |
|
| Lista los activos sin agente (descubiertos por escaneo) de un sitio (N-able ha marcado esta función como obsoleta) |
|
| Obtiene la información de monitoreo detallada de un solo dispositivo |
|
Comprobaciones, parches y rendimiento
Herramienta | Función | Parámetros |
| Lista las comprobaciones que fallan actualmente |
|
| Lista todas las comprobaciones configuradas en un dispositivo |
|
| Obtiene la configuración detallada de una sola comprobación (la estructura varía según el tipo de comprobación/SO) |
|
| Lista los registros de outage de un dispositivo (abiertos o cerrados en los últimos 61 días) |
|
| Historial de comprobación de espacio en disco (basado en list_checks filtrado por check_type 1003/1004; N-sight no tiene un servicio independiente) |
|
| Lista todos los parches de un dispositivo con su estado/gravedad |
|
| Métricas de rendimiento históricas del dispositivo (ancho de banda/disco/CPU/memoria/tarjeta de red) |
|
Ejemplo de prueba
Lista todos los servidores de un sitio:
{
"method": "tools/call",
"params": {
"name": "nable_rmm_get_servers",
"arguments": { "siteid": 12345 }
}
}Equivalente curl contra el servidor en ejecución (endpoint MCP HTTP streamable):
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 }
}
}'Forma esperada de un resultado correcto (la respuesta XML subyacente, convertida a JSON; campos abreviados):
{
"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}"
}
]
}Referencia de la API
Verificado con una cuenta real
Las 14 herramientas de lectura se han probado de extremo a extremo contra una cuenta real de N-able RMM (región EE. UU.) y devolvieron datos reales, incluidos casos límite que la documentación pública de N-able dejaba ambiguos:
El parámetro
intervaldenable_rmm_get_performance_historyes obligatorio (no opcional como sugería el ejemplo de la documentación) y solo acepta15o60; confirmado mediante el error de validación de la propia API (`Invalid "interval": must
This server cannot be deployed
Maintenance
Related MCP Connectors
- ScopableOAuthio.scopable
Scopable MSP API: clients, quotes, assessments, compliance, QBRs. OAuth 2.1, read-only or read-write
Manage Accelo companies, contacts, jobs, tasks, tickets and time.
Read NodePing checks, uptime, results and events; mute checks, manage maintenance and schedules.
Check devices, alerts and tickets in Atera, and open tickets, comment or resolve alerts.
Related MCP Servers
- AlicenseAqualityAmaintenanceExposes N-able N-central REST API as MCP tools for managing devices, organizations, users, and more, with support for read-only, write, and full write modes.125MIT
- AlicenseBqualityDmaintenanceComprehensive read/write access to the Datto RMM API v2, enabling management of devices, sites, alerts, audits, jobs, variables, filters, and activity logs through 46 tools.46MIT
- AlicenseNot gradedqualityBmaintenanceExposes the ConnectWise Command (Continuum) ITSupport247 Reporting API as MCP tools, enabling querying of sites, devices, patches, antivirus, performance, and more.Apache 2.0
- AlicenseAqualityCmaintenanceEnables interaction with the SuperOps.ai PSA/RMM platform via its GraphQL API, providing tools for managing clients, tickets, assets, technicians, and custom queries.21Apache 2.0