find-contact
CommandResolve a 3CX contact or extension by email, extension, or name
Execute a script on an endpoint in ConnectWise Automate
$ npx -y skills add wyre-ai/msp-claude-plugins --agent claude-code
description: Execute a script on an endpoint in ConnectWise Automate argument-hint: "<computer> <script> [params] [wait]" arguments: [computer, script, params, wait]
Execute a script on an endpoint in ConnectWise Automate with optional parameters, then collect its result without re-running it.
1. **Resolve computer identifier**
2. **Verify the computer is online**
3. **Resolve the script**
4. **Check nothing is already running**
5. **Execute (after approval)**
6. **Collect the result**
Under the hood step 5 issues `POST /cwa/api/v1/Computers/{computerID}/Scripts/{scriptID}/Execute`; Automate has no synchronous run, which is why history is the source of truth for the outcome.
Automate's fixed command catalog (for example reboot, refresh inventory) is a separate surface:
1. `cwautomate_commands_list` — find the command ID; free-text commands are not accepted. 2. `cwautomate_computers_run_command` (admin) with `computer_id`, `command_id` and positional `parameters`. It queues the command and returns an `execution_id`. 3. `cwautomate_computers_command_status` with `computer_id` and `execution_id` to read the outcome. Never re-issue on a timeout or a "Duplicate command" result; poll instead.
`cwautomate_computers_reboot` follows the same queue-and-poll pattern.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | computer | string | Yes | - | Computer hostname or ID | | script | string | Yes | - | Script name or ID | | params | string | No | - | Parameters as `key=value,key2=value2` | | wait | flag | No | false | Keep polling `cwautomate_scripts_history` until the run completes |
/run-script "ACME-DC01" "Clear Temp Files" /run-script "ACME-DC01" "Clear Temp Files" --params "days=30,path=C:\\Temp" /run-script 12345 1001 --wait
Script Completed Computer: ACME-DC01 (ID: 12345) Script: Clear Temp Files (ID: 1001) Result: Success Message: Successfully deleted 156 files (2.3 GB freed)
Script still running on ACME-DC01 (ID: 12345) The run was queued and has not finished within the wait window. Not re-launching. Checking cwautomate_scripts_history for the result.
Script Failed Computer: ACME-DC01 Script: Clear Temp Files Message: Access denied to C:\Temp\locked.file Suggestions: - Check whether the file is in use - Verify the script runs with the permissions it needs
| Error | Cause | Resolution | |-------|-------|------------| | Computer offline | Agent not checked in | Report last contact; do not queue unless the operator wants it to run on next check-in | | Script not found | Wrong name or ID | Re-list with `cwautomate_scripts_list` | | Missing parameters | Required script parameter omitted | Read `cwautomate_scripts_get` and ask for the value | | Not permitted | No `admin` grant on the vendor | The operator must grant it; do not fall back to another tool | | `completed: false` | Run outlasted the wait | Poll `cwautomate_scripts_history`; never re-launch |
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Resolve a 3CX contact or extension by email, extension, or name
Snapshot of 3CX queue staffing and active call load
Review and triage abuse mailbox cases in Abnormal Security
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Triage recent email threats detected by Abnormal Security by severity and attack type
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.