connectwise-asio-mcp
connectwise-asio-mcp
ConnectWise Asio MCP 服务器——将 ConnectWise Platform APIs(ConnectWise Asio 背后的"Current API",前身为 SolarWinds MSP/N-central 相邻 RMM)以 MCP 工具的形式暴露出来。
命名说明: app.mspbots.ai 将此集成称为 "ConnectWise Asio"(
sys_integration.subject_code = CWASIO)。它是与 ConnectWise Command (Continuum)、ConnectWise Manage (PSA) 和 ConnectWise Automate 不同的产品——每个产品在此服务器群中都有自己的 MCP 服务器。底层 API 在其 OpenAPI 规范中正式命名为 "ConnectWise Platform APIs"(developer.connectwise.com— Products > ConnectWise Platform > Platform Vendors > APIs and Callbacks 下的 "REST API" 文档)。
概述
此服务器实现了 Model Context Protocol(Streamable HTTP/SSE 传输),并封装了 ConnectWise Platform APIs — 25 个工具,涵盖 5 个类别(devices、companies_contacts、custom_fields、patching、automation),精简至 MSPbots 实际配置的 23 个端点加上最少的核心 CRUD(参见下方工具列表;最初是对 24 个标签类别的 107 个操作的完整 API 构建)。它遵循 MSPbots 的 Vendor MCP Service SOP:无状态、不存储凭据、按请求进行头部认证。
底层 API 通过 OAuth2 Client Credentials 进行认证。此服务器本身不执行 token 交换——它在每次请求时接收已获取的 bearer 访问 token(与此 MSPbots MCP 服务器群中其他 OAuth 流程集成的处理方式一致,例如 Microsoft Graph:网关根据 client_id/client_secret/scope 生成/刷新 token,只有最终产生的 token 到达此服务器)。
Related MCP server: mcp-connectwise-psa
快速入门
Docker(推荐)
docker compose up --build服务器启动于 http://localhost:8080。
本地(uv)
uv sync
python -m connectwise_asio_mcp健康检查
curl http://localhost:8080/health
# {"status": "ok"}健康检查端点不需要 token。
授权参数说明 (Authentication)
对 /mcp 的每次请求都必须包含以下 HTTP 头:
Header | 类型 | 是否必填 | 默认值 | 枚举值 | 字段描述 | Example |
| string | 必填 | 无 | 无(自由文本) | OAuth2 bearer access token,由调用方(Agent Platform / 上游网关)通过 |
|
| string | 可选 |
|
| ConnectWise Asio 按账号所属地区分 3 个独立服务器(Client ID 前缀 0e30=NA/0e31=EU/0e32=AU 可判断地区);不带该 header 时用环境变量默认值,网关同时服务多地区租户时按请求覆盖。 |
|
缺少 X-ConnectWise-Asio-Token 将返回 401 Unauthorized。
环境变量
变量 | 默认值 | 描述 |
|
| 监听端口 |
|
| 监听主机 |
|
| 默认区域服务器;可通过 |
MCP 端点
POST http://localhost:8080/mcp使用以下方式连接你的 MCP 客户端:
传输:
http(Streamable HTTP / SSE)请求头:
X-ConnectWise-Asio-Token: <access_token>(必填)、X-ConnectWise-Asio-Base-Url: <base_url>(可选)
工具列表
25 个工具,从最初的 104 工具完整 API 构建(2026-08-04)中精简而来。MSPbots 为此供应商存储的集成配置调用了 6 个底层资源类别(devices/endpoints、companies、sites、custom fields、patching、automation)中的 23 个端点——这 23 个已配置端点中的每一个(包括单独的 v1/v2 路径变体,在此处合并到同一工具上)都映射到下方保留的一个工具,并标记其对应的端点名称。原始 104 工具构建中的其他所有内容(Tickets — 最大的单一类别,24 个工具;Policy/Policy Group/Package、Mapping、Alerting & Incidents、Backup Dashboard、Misc — 6 个类别,约 79 个工具)因 MSPbots 未使用而被移除。如果日后需要某个被移除的类别,供应商的 OpenAPI 规范(下方链接)仍记录了其确切操作,可以按照保留工具的生成方式重新添加。
从原始构建延续下来的已知缺口:MSPbots 配置了两个端点 — "ConnectWise Asio Suspension"(GET /v2/alerting/suspensions)和 "ConnectWise Asio Suspension Details"(GET /v2/alerting/suspensions/{ruleid}) — 但此服务器中完全没有对应的工具(原始 104 工具构建的 alerting 类别只实现了 create/update/delete/post-incident 操作,从未实现 GET-suspension 读取)。这早于精简之前就已存在,并非精简引入;在此标记是因为工具数量减少后它变得更加明显。参见下方「已知缺口」。
公司与联系人(6)
Tool | 描述 | Params |
| 创建新的公司(客户)。 | body |
| 列出合作伙伴的所有公司(客户)。 | none |
| 按 ID 获取公司。 | company_id |
| 列出公司的所有站点。 | company_id |
| 按 ID 获取站点(合作伙伴范围,不限定于某公司)。 | site_id |
| 列出合作伙伴的所有站点(跨所有公司)。 | none |
自定义字段(6)
Tool | 描述 | Params |
| 获取公司的自定义字段值。 | company_id, attribute_ids?, with_defaults?, origin_type?, owner_id? |
| 按 ID 获取自定义字段定义模式。 | definition_id |
| 获取合作伙伴的自定义字段定义列表(供应商提供和合作伙伴自定义)。 | entity_type?, origin_type? |
| 获取设备(端点)的自定义字段值。 | endpoint_id, attribute_ids?, with_defaults?, origin_type?, owner_id? |
| 获取站点的自定义字段值。 | site_id, attribute_ids?, with_defaults?, origin_type?, owner_id? |
| 更新公司的多个自定义字段值。 | company_id, body |
设备与端点(9)
工具 | 描述 | 参数 |
| 获取特定端点(设备)的完整详细信息。 | company_id, site_id, endpoint_id, field? |
| 获取一组端点的已安装应用程序详细信息。 | resource_type, resources, limit, cursor, field?, name?, version? |
| 获取端点的最新 CPU 使用情况。 | endpoint_id |
| 获取端点的最新磁盘使用情况。 | endpoint_id |
| 获取设备的在线/离线可用性信息。 | resource_type, resources, offline_lookback?, availability? |
| 获取端点的最新内存使用情况。 | endpoint_id, minute? |
| 获取端点的服务(Windows 服务/守护进程)详细信息。 | company_id, site_id, endpoint_id, service_name?, field? |
| 获取端点的系统状态信息(正在运行的进程、服务等)。 | endpoint_id |
| 列出给定类别下的设备(端点),并限定到特定资源。 | category, resource_type, resources, limit, cursor, sort_by?, field?, filter? |
补丁 (3)
工具 | 描述 | 参数 |
| 获取端点的操作系统补丁列表。 | endpoint_id |
| 获取一组资源的批量操作系统补丁合规性摘要。 | resource_type, resources, limit, cursor, field? |
| 获取一组端点的批量操作系统补丁详细信息。 | resource_type, resources, field? |
自动化 (1)
工具 | 描述 | 参数 |
| 获取合作伙伴的所有自动化任务。 | none |
测试示例 (Test Example)
获取公司列表,然后获取其站点:
{
"method": "tools/call",
"params": { "name": "connectwise_asio_get_companies", "arguments": {} }
}针对运行中的服务器(可流式 HTTP MCP 端点)执行的等效 curl:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "X-ConnectWise-Asio-Token: <access_token>" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "connectwise_asio_get_companies", "arguments": {} }
}'参数化调用:
{
"method": "tools/call",
"params": {
"name": "connectwise_asio_get_endpoint_cpu_usage",
"arguments": { "endpoint_id": "abc-123" }
}
}API 参考
官方文档(ConnectWise Developer Network — 需要登录):Products > ConnectWise Platform > Platform Vendors > APIs and Callbacks > REST API
基础 URL:NA
https://openapi.service.itsupport247.net,EUhttps://openapi.service.euplatform.connectwise.com,AUhttps://openapi.service.auplatform.connectwise.com
已知缺口 / 尚未验证
于 2026-08-04 从 104 个工具缩减为 25 个工具。 原始构建根据早期的范围决策覆盖了完整的 ConnectWise Platform APIs 规范。后来的范围决策将其削减为 MSPbots 实际使用的类别 — 有关确切的端点→工具映射以及被移除的 6 个类别的完整列表(约 79 个工具,其中包括由 24 个工具组成的
tickets类别,即原始构建中最大的单个类别),请参阅上方的工具列表部分。如果之后需要某个被移除的类别,供应商的 OpenAPI 规范(如下链接)仍记录有其确切操作,可以按照生成保留工具时的相同方式重新添加。MSPbots 配置的 “Suspension”/“Suspension Details” 端点没有对应的工具 — 这个缺口在缩减之前就已存在(原始 104 工具构建中的
alerting类别从未实现 GET-suspension 读取操作,只有 create/update/delete/post-incident),并非由缩减引入。如果确实需要 suspension 数据,则需要根据供应商的 OpenAPI 规范添加此功能。尚未针对真实的 ConnectWise Asio 账户进行测试 — 目前仅完成了协议级验证(健康检查、缺少令牌时返回 401、
tools/list返回全部 25 个工具)。connectwise_asio_update_company_custom_fields和connectwise_asio_create_company使用通用的body: dict参数,而不是完全扁平化的命名参数 — docstring 列出了必需的顶级字段,但嵌套对象的结构应在首次使用时与线上 API 交叉核对。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Let AI agents query data and act across all your business apps via MCP.
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
Related MCP Servers
- AlicenseBqualityCmaintenanceExposes 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.825MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for ConnectWise PSA (Manage) enabling ticket management, time entry, and read-only lookups of companies, contacts, and configurations with role-based access control and bring-your-own-API-keys support.4595MIT
- 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
- FlicenseNot gradedqualityBmaintenanceExposes the CloudRadial REST API (client portal / PSA-adjacent MSP platform) as MCP tools, enabling operations on companies, articles, feedback, archives, flexible assets, and more via 34 tools with HTTP Basic Auth.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MSPbotsAI/connectwise-asio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server