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/...). 이는 자체 API를 가진 app.mspbots.ai의 별도 통합인 N-able N-Central과는 다른 제품입니다. 이 서버는 N-sight/N-able RMM만 래핑합니다.
개요
이 서버는 Model Context Protocol(Streamable HTTP/SSE 전송)을 구현하며 N-sight API("N-able RMM" 통합의 기반이 되는 API)를 래핑합니다. MSPbots Vendor MCP Service SOP를 따릅니다: 무상태(stateless), 자격 증명 저장 없음, 요청별 헤더 인증.
기본 API 자체는 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 헤더가 포함되어야 합니다. 헤더 이름은 app.mspbots.ai의 기존 "N-able RMM" 통합 양식(API Token / URL)의 필드를 그대로 따릅니다.
헤더 | 유형 | 필수 여부 | 기본값 | 열거 값 | 필드 설명 | 예시 |
| string | 필수 | 없음 | 없음(자유 텍스트) | N-able RMM API key는 Settings > General Settings > API > Generate에서 생성합니다. key가 특정 클라이언트 그룹으로 제한된 경우 호출은 해당 그룹 내 고객 데이터만 반환합니다. |
|
| string | 선택 |
| 아래 11개 지역 서버 목록 참조 | N-able RMM은 계정이 속한 지역에 따라 11개의 독립 서버로 나뉩니다. 해당 header가 없으면 환경 변수 기본값을 사용하며, 게이트웨이가 여러 지역의 테넌트를 동시에 서비스할 때는 요청별로 덮어씁니다. |
|
X-Nable-Server의 11개 열거 값(지역 → Base URL):
지역 | Base URL |
Americas (default) |
|
Asia |
|
Australia |
|
Europe |
|
France |
|
France1 |
|
Germany |
|
Ireland |
|
Poland |
|
United Kingdom |
|
United States |
|
X-Nable-Api-Token이 없으면 401 Unauthorized를 반환합니다. N-able RMM은 또한 자동화 호출을 키당 분당 60회로 제한합니다 — 이 서버는 자체적으로 스로틀링하지 않으므로 대량 호출은 이에 맞춰 간격을 조절하세요.
환경 변수
변수 | 기본값 | 설명 |
|
| 수신 포트 |
|
| 수신 호스트 |
|
| 기본 지역 서버; |
MCP 엔드포인트
POST http://localhost:8080/mcpMCP 클라이언트를 다음으로 연결하세요:
전송:
http(Streamable HTTP / SSE)헤더:
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)를 포함합니다.
클라이언트 및 사이트
도구 | 기능 | 매개변수 |
| 해당 API key로 볼 수 있는 모든 고객 나열 |
|
| 특정 고객의 모든 사이트 나열 |
|
| 고객 생성(쓰기 작업) |
|
| 고객 아래에 새 사이트 생성(쓰기 작업) |
|
장치
도구 | 기능 | 매개변수 |
| 장치 유형별로 고객의 모든 사이트 장치 나열 |
|
| 사이트의 서버 장치 및 온라인/점검 상태 나열 |
|
| 사이트의 워크스테이션 장치 및 온라인/점검 상태 나열 |
|
| 사이트의 에이전트 없는(스캔으로 발견된) 자산 나열(N-able은 이 기능을 deprecated로 표시함) |
|
| 단일 장치의 상세 모니터링 정보 가져오기 |
|
검사, 패치 및 성능
도구 | 기능 | 매개변수 |
| 현재 실패 중인 검사 항목 나열 |
|
| 특정 장치에 구성된 모든 검사 항목 나열 |
|
| 단일 검사 항목의 상세 구성 가져오기(구조는 검사 유형/OS에 따라 다름) |
|
| 장치의 outage 기록 나열(열려 있거나 최근 61일 이내에 종료된 것) |
|
| 디스크 공간 검사 기록(list_checks를 기반으로 check_type 1003/1004로 필터링, N-sight에는 별도 서비스 없음) |
|
| 장치의 모든 패치와 상태/심각도 나열 |
|
| 장치의 과거 성능 지표(대역폭/디스크/CPU/메모리/네트워크 카드) |
|
테스트 예시 (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이 해당 기능을 deprecated로 표시한 내용과 일치합니다.
두 개의 쓰기 도구(nable_rmm_create_client, nable_rmm_create_site)는 프로덕션 고객의 N-able RMM 테넌트에 실제 데이터를 생성하지 않기 위해 라이브 계정으로 테스트하지 않았습니다 — 이 도구들에 의존하기 전에 일회용 테스트 계정으로 검증하세요.
알려진 한계 / 미구현
get_site_installation_package— 구조화된 데이터가 아닌 바이너리 설치 프로그램 다운로드를 반환하므로 MCP 도구로는 실용적이지 않습니다.
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