Skip to main content
Glama
MSPbotsAIFramework

connectwise-command-mcp

connectwise-command-mcp

ConnectWise Command MCP 서버 — ConnectWise Command(Continuum) ITSupport247 Reporting API를 MCP 도구로 노출합니다.

명칭 참고: app.mspbots.ai는 이 통합을 "ConnectWise Command (continuum)"(sys_integration.subject_code = CONTINUUM)이라고 부릅니다. ConnectWise가 Continuum을 인수하고 RMM 제품을 "ConnectWise Command"로 리브랜딩했습니다. 기본 API는 여전히 레거시 ITSupport247 도메인(itsupport247.net)에서 호스팅되며 "Reporting API"로 문서화되어 있습니다. 이 서버는 해당 Reporting API만 래핑하며, ConnectWise Manage(PSA)나 ConnectWise Automate와는 무관합니다.

개요

이 서버는 Model Context Protocol(Streamable HTTP/SSE 전송)을 구현하며, ConnectWise Command / Continuum 공식 "Reporting API REST Resources" 참조 문서의 모든 리소스를 래핑합니다. MSPbots Vendor MCP Service SOP를 따릅니다: 무상태(stateless), 저장된 자격 증명 없음, 요청별 헤더 인증.

기본 API는 HTTP Basic Auth(빈 사용자 이름, API 키를 비밀번호로 사용)로 인증하며 JSON을 반환합니다. 이 서버는 키를 절대 저장하지 않으며, 호출자가 요청별로 헤더를 통해 전달합니다. 아래의 모든 요청/응답 필드 이름은 공식 참조 문서에서 그대로 옮긴 것이며, 추측한 것이 아닙니다.

Related MCP server: nable-rmm-mcp

빠른 시작

Docker(권장)

docker compose up --build

서버는 http://localhost:8080에서 시작됩니다.

로컬(uv)

uv sync
python -m connectwise_command_mcp

상태 확인

curl http://localhost:8080/health
# {"status": "ok"}

상태 확인 엔드포인트에는 토큰이 필요하지 않습니다.

인증 매개변수 설명 (Authentication)

/mcp에 대한 모든 요청에는 다음 HTTP 헤더가 포함되어야 합니다:

Header

유형

필수 여부

기본값

열거값

필드 설명

예시

X-ConnectWise-Command-Api-Key

string

필수

없음

없음(자유 텍스트)

ConnectWise Command (Continuum) Reporting API 키는 ITSupport247 포털의 Admin > Integration > Reporting API > Regenerate Key 에서 생성합니다. 서버는 수신 후 이를 HTTP Basic Auth(사용자 이름은 비워 두고, 해당 키를 비밀번호로 사용)로 변환하여 업스트림 API로 전송하며, 어떤 저장도 하지 않습니다.

X-ConnectWise-Command-Api-Key: <your_reporting_api_key>

내부적으로 이 서버는 키를 다음과 같이 인코딩합니다:

Authorization: Basic base64(":" + api_key)

일부 다른 RMM 벤더(예: N-able)와 달리 ConnectWise Command의 Reporting API 호스트는 테넌트별이 아닌 고정 공개 엔드포인트입니다. 구성할 "URL" 필드/헤더가 없으며, app.mspbots.ai 통합 양식의 단일 "API Key" 필드와 일치합니다. X-ConnectWise-Command-Api-Key가 없으면 401 Unauthorized를 반환합니다.

환경 변수

변수

기본값

설명

MCP_HTTP_PORT

8080

수신 포트

MCP_HTTP_HOST

0.0.0.0

수신 호스트

CONNECTWISE_COMMAND_LEGACY_BASE_URL

https://itsapi.itsupport247.net/reportingapi/ReportingAPIService.svc/json

레거시 보고 엔드포인트(POST)

CONNECTWISE_COMMAND_SITES_BASE_URL

https://api.itsupport247.net

사이트/디바이스 엔드포인트(GET)

MCP 엔드포인트

POST http://localhost:8080/mcp

MCP 클라이언트를 다음과 같이 연결하세요:

  • 전송: http(Streamable HTTP / SSE)

  • 헤더: X-ConnectWise-Command-Api-Key: <api_key>

도구 목록

21개 도구로, 원래 41개 도구 전체 API 빌드(2026-08-04)에서 축소되었습니다. 이 벤더에 대한 MSPbots 자체 저장 통합 구성은 19개 엔드포인트를 호출하며(통합 ID 1424565871921713153에 대해 web/int/sys/integration/api/list로 확인), Antivirus(7개 중 7개 유지 — 모든 안티바이러스 도구가 실제로 사용됨), Patches(4개 중 4개 유지 — 동일), Warranty(3개 중 3개 유지 — 동일), Sites/Devices(3개 중 2개가 실제 사용되며, 카테고리가 작아 3개 모두 유지), Agent/System/Software(3개 중 3개 유지 — 동일), 그리고 단일 Misc 도구(get_score_summary, 실제로 사용되는 유일한 Misc 엔드포인트)를 포함합니다. 원래 41개 도구 빌드의 나머지 — Performance(7), Availability(3), Recover for Continuity/Backup(4), 그리고 기타 6개 Misc 도구(비준수 모바일 디바이스, OS 요약, 월/주별 서비스 요청, SNMP 디바이스, 작업 요약) — 는 MSPbots가 사용하지 않는 것으로 판단하여 제거되었습니다. 나중에 제거된 도구가 필요해지면 공식 "Reporting API REST Resources" 문서(아래 링크)에 여전히 문서화되어 있으며, 유지된 도구가 생성된 것과 동일한 방식으로 다시 추가할 수 있습니다.

대부분의 유지된 도구는 site_code(먼저 connectwise_command_get_sites에서 가져옴)와 month/year(int)를 받습니다. 일부는 resource_type("desktop" 또는 "server", 문서가 단일 값으로 고정하는 경우 리소스별 제한 사항이 명시됨)도 받습니다.

사이트, 디바이스 및 요약

도구

기능

매개변수

connectwise_command_get_sites

이 API 키로 볼 수 있는 모든 활성 사이트 나열

매개변수 없음

connectwise_command_get_devices

사이트의 디바이스 나열, 단일 디바이스로 선택적 필터링

site_code (필수), machine_id?

connectwise_command_get_site_summary

사이트 자산 및 티켓 개요

site_code, month, year (모두 필수)

에이전트 / 시스템 / 소프트웨어

도구

기능

매개변수

connectwise_command_get_agent_details

사이트 내 모든 디바이스의 모니터링 에이전트 상세(Machine ID 획득에도 사용)

site_code (필수)

connectwise_command_get_system_information

시스템 하드웨어/OS/BIOS 정보, 단일 디바이스로 선택적 필터링

site_code (필수), machine_id?

connectwise_command_get_installed_software

설치된 소프트웨어 목록, 단일 디바이스로 선택적 필터링

site_code (필수), machine_id?

안티바이러스

도구

기능

매개변수

connectwise_command_get_antivirus_ages

데스크톱의 바이러스 정의 업데이트 기간(일), desktop만 지원

site_code, month, year (모두 필수)

connectwise_command_get_antivirus_summary

안티바이러스 보호 상태 카운트 요약

site_code, month, year, resource_type (모두 필수, "Desktop"/"server")

connectwise_command_get_antivirus_version_summary

안티바이러스 제품/버전, 단일 디바이스로 선택적 필터링

site_code (필수), machine_id?

connectwise_command_get_daily_antivirus_status

일별 안티바이러스 상태

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_missing_antivirus

안티바이러스 보호가 없는 디바이스 목록

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_outdated_antivirus

바이러스 정의가 만료된 디바이스 목록

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_unsupported_antivirus

지원되지 않는 안티바이러스 제품을 사용하는 디바이스 목록

site_code, month, year, resource_type (모두 필수)

패치

도구

기능

매개변수

connectwise_command_get_missing_patches

데스크톱 누락 패치 요약

site_code, month, year (모두 필수)

connectwise_command_get_patch_summary_by_resource

디바이스 기준 패치 상태 카운트

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_patch_summary_by_severity

심각도별 패치 카운트

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_patch_summary_by_state

상태별(설치됨/누락/블랙리스트 등) 패치 총계

site_code, month, year, resource_type (모두 필수)

보증(Warranty)

도구

기능

매개변수

connectwise_command_get_expiring_warranties

만료되었거나 곧 만료될 보증 디바이스 목록

site_code, month, year, resource_type (모두 필수)

connectwise_command_get_warranty_details

디바이스 보증 상세(month/year 불필요)

site_code (필수), include_warranty_history?(기본 false)

connectwise_command_get_warranty_summary

보증 상태(유효/만료/데이터 없음) 카운트

site_code, month, year, resource_type (모두 필수)

기타(Misc)

도구

기능

매개변수

connectwise_command_get_score_summary

사이트 전반적 건강/위험 점수(여러 지표, -1은 해당 사이트에 해당 없음)

site_code, month, year (모두 필수)

테스트 예시 (Test Example)

모든 사이트를 나열한 다음, 하나의 사이트에 대한 디바이스를 가져옵니다:

{
  "method": "tools/call",
  "params": { "name": "connectwise_command_get_sites", "arguments": {} }
}

실행 중인 서버에 대한 동등한 curl(streamable HTTP MCP 엔드포인트):

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-ConnectWise-Command-Api-Key: <api_key>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": { "name": "connectwise_command_get_sites", "arguments": {} }
  }'

월/년 기반 리소스:

{
  "method": "tools/call",
  "params": {
    "name": "connectwise_command_get_cpu_utilization",
    "arguments": { "site_code": "AGTSolutions", "month": 4, "year": 2015 }
  }
}

API 참조

  • 공식 문서(ITSupport247 포털, Admin > Integration > Reporting API):

    • "Getting Started with the Reporting API"

    • "Reporting API REST Resources"(리소스별 전체 요청/응답 스키마 — 이 서버의 모든 필드 이름의 출처)

구현 참고 사항

  • 2026-08-04에 41개에서 21개 도구로 축소됨. 원래 빌드는 공식 Reporting API 문서의 모든 리소스를 다루었습니다. 이후 범위 결정으로 MSPbots가 실제로 구성한 19개 엔드포인트와 항상 유지되는 작은 Sites/Devices/Agent/System 카테고리로 축소되었습니다. 정확한 근거와 제거된 도구 전체 목록(Performance, Availability, Recover for Continuity/Backup, 그리고 7개 중 6개 Misc 도구 — 총 17개 도구)은 위의 도구 목록 섹션을 참조하세요. 나중에 제거된 도구가 필요해지면 공식 Reporting API 문서(아래 링크)에 여전히 문서화되어 있으며, 유지된 도구가 생성된 것과 동일한 방식으로 다시 추가할 수 있습니다.

  • 오류 형태는 리소스별로 다릅니다 — 일부 응답은 "Error"(대문자, 예: Agent Details)를 사용하고, 대부분은 "error"(소문자, 예: Antivirus Summary)를 사용하며, 응답 내 위치도 다양합니다(상단, 하단, 또는 항목별 중첩). ContinuumClient._parse는 두 대소문자를 모두 확인합니다.

  • GET 리소스(Sites, Devices)는 error 키가 있는 객체가 아닌, 순수 JSON 배열을 반환합니다.

  • 요청 필드 이름 MachineID(Antivirus Version Summary, Installed Software, System Information의 요청 본문에 사용)는 응답 필드 MachineId와 대소문자가 다릅니다 — 둘 다 공식 문서에서 그대로 확인되었습니다.

  • 이 API에는 get_site_installation_package에 해당하는 기능이 없습니다. 여기서는 해당되지 않습니다(N-able RMM과 달리).

Related MCP Connectors

Related MCP Servers