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:无状态、不存储凭据、按请求通过请求头进行认证。

底层 API 通过 HTTP Basic Auth(用户名为空,API key 作为密码)进行认证,并返回 JSON。本服务器从不存储该 key — 调用方在每次请求时通过请求头传入。下文所有请求/响应字段名均逐字转录自官方参考文档,而非猜测。

Related MCP server: nable-rmm-mcp

快速开始

Docker(推荐)

docker compose up --build

本地 (uv)

uv sync
python -m connectwise_command_mcp

健康检查

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

健康检查端点无需 token。

授权参数说明 (Authentication)

对 /mcp 的每个请求都必须包含以下 HTTP 请求头:

请求头

类型

是否必填

默认值

枚举值

字段描述

示例

X-ConnectWise-Command-Api-Key

string

必填

无

无(自由文本)

ConnectWise Command (Continuum) Reporting API key,在 ITSupport247 门户 Admin > Integration > Reporting API > Regenerate Key 生成。服务端收到后转换为 HTTP Basic Auth(用户名留空,该 key 作为密码)发往上游 API,不做任何存储。

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

在内部,本服务器将该 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。

环境变量

Variable

Default

Description

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

Sites/Devices 端点 (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 个,因该类别较小而全部保留)、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(整数);部分工具还接受 resource_type("desktop" 或 "server";文档将其固定为单一值之处已按资源注明限制)。

站点、设备与汇总

工具

功能

参数

connectwise_command_get_sites

列出该 API key 可见的所有活跃站点

无参数

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 (均必填)

保修

工具

功能

参数

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 (均必填)

杂项

工具

功能

参数

connectwise_command_get_score_summary

站点整体健康/风险评分(多项指标,-1 表示该站点不适用)

site_code, month, year (均必填)

测试示例 (Test Example)

列出所有站点,然后获取其中一个站点的设备:

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

针对运行中的服务器(streamable HTTP MCP 端点)执行等效 curl:

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": {} }
  }'

一个基于 month/year 的资源:

{
  "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 个 Misc 工具中的 6 个 — 共 17 个工具)。如果之后需要某个被移除的工具,官方 Reporting API 文档(下方链接)中仍有说明,可以按照保留工具的相同方式重新添加。

  • 错误结构因资源而异 — 某些响应使用 "Error"(大写,例如 Agent Details),大多数使用 "error"(小写,例如 Antivirus Summary),且在响应中的位置也各不相同(顶部、底部或逐项嵌套)。ContinuumClient._parse 会同时检查两种大小写。

  • GET 资源(Sites、Devices)返回裸 JSON 数组,而不是带有 error 键的对象。

  • 请求字段名 MachineID(用于 Antivirus Version Summary、Installed Software、System Information 的请求体)与响应字段 MachineId 的大小写不同 — 两者均已从官方文档逐字确认。

  • 该 API 不存在与 get_site_installation_package 等效的功能;此处不适用(不同于 N-able RMM)。

Related MCP Connectors

Related MCP Servers