ConnectWise Automate MCP server with decision tree architecture for Claude. Provides tools for interacting with the ConnectWise Automate API including endpoint management, company management, alert monitoring, and script execution.
ConnectWise Automate MCP demonstrates solid definition quality with consistent naming conventions, good schema coverage, and comprehensive parameter documentation. All 15 tools follow verb_noun naming patterns (navigate, list, get, create, update, search, run, reboot). Descriptions are present and actionable, ranging from 60 - 180 characters. Parameter schemas use proper JSON Schema with types and enums where applicable. However, there are notable gaps: (1) output schemas are not explicitly documented in tool definitions, forcing the LLM to infer response structures; (2) error handling descriptions are sparse, most tools do not explain recovery paths or categorize failures; (3) some parameter descriptions lack constraint details (e.g., limit/skip ranges); (4) tool composition could be improved, tools like cwautomate_computers_reboot and cwautomate_computers_run_command both execute commands but with different mechanisms, creating potential confusion. Security is well-handled: credentials use server-side injection (not parameters), and secrets are not exposed. Overall, this is a well-structured implementation that would benefit from explicit output schema documentation and richer error guidance.
Get details for a specific alert by ID. Alerts are read-only in the Automate API.
List alerts in ConnectWise Automate with optional filtering by computer, client or severity. Alerts are read-only in the Automate API: they carry no status and cannot be acknowledged or closed through it.
Create a new client in ConnectWise Automate
Get details for a specific client by ID
List all clients in ConnectWise Automate with optional filtering.
Update an existing client in ConnectWise Automate
Output schemas not documented in tool definitions. LLMs cannot plan downstream calls or extract required fields without knowing response structure. Example: cwautomate_computers_list has no documented return type, does it return {computers: [], total: number} or {results: [], count: number}?
Error handling guidance is absent from most tool descriptions. Tools like cwautomate_computers_reboot and cwautomate_computers_run_command do not explain what happens on timeout, permission denial, or offline computer, forcing the LLM to guess recovery steps. Example: timeout_seconds parameter exists but no description of partial result structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | <=2025-11-25 | v2 |
List the Automate command catalog. Commands are a fixed, server-defined set addressed by ID — call this to find the command ID before using cwautomate_computers_run_command.
Get details for a specific computer by its ID
List computers in ConnectWise Automate. Can filter by client, location, or online status.
Reboot a computer and wait for the command's result. Automate has no dedicated restart route: the reboot is issued as a catalog command (POST /Computers/{id}/CommandExecute). By default the first catalog entry named like 'Reboot' or 'Restart' is used; pass command_id (from cwautomate_commands_list) to choose a specific one. The API user's command level caps which commands may be issued.
Issue a catalog command to a computer and wait for its result. The command_id must come from cwautomate_commands_list; free-text commands are not accepted by Automate. Note that the API user's command level and the group-level 'Send Commands' grant silently cap which commands may be issued.
Run a script on a specific computer
Search for computers by name (matches any part of the computer name)
Discover available ConnectWise Automate tools by domain. Returns tool names and descriptions for the selected domain. All tools are callable at any time — this is a help/discovery aid, not a prerequisite.
Show credentials status and available domains
Constraint details missing from list/pagination parameters. cwautomate_computers_list, cwautomate_alerts_list, cwautomate_clients_list define limit and skip but do not specify valid ranges (e.g., 'limit: 1 - 100' or 'default: 50'). This invites out-of-range requests from LLMs.
Tool composition ambiguity: cwautomate_computers_reboot, cwautomate_computers_run_script, and cwautomate_computers_run_command all execute commands on a computer but via different mechanisms (auto-selecting catalog command, script, explicit command ID). Descriptions do not clearly explain when to use each. LLMs may pick the wrong one.
cwautomate_status description is extremely terse (47 characters: 'Show credentials status and available domains'). Does not explain what determines success, what happens on auth failure, or how to act on the output. Should be 100 - 150 characters with guidance on next steps.