
ConnectWise Automate
io.github.wyre-technologyPublished by GitHub account wyre-technologyv1.8.2Updated Oct 24, 2026
MCP server for ConnectWise Automate RMM — computers, clients, alerts, and scripts.
Overview
MCP server for ConnectWise Automate RMM that lets an assistant browse computers, clients, alerts and scripts, and run scripts or reboots on managed machines.
- What you can do
- Navigate a decision tree between the computers, clients, alerts and scripts domains, then go back to the main menu.
- List, search and inspect computers, including a read-only interactive device card in MCP Apps hosts.
- Reboot computers remotely and run scripts on them.
- List, view, create and update clients.
- List and inspect alerts (read-only in the Automate API).
- List scripts, view script details and execute them on computers.
- When to use it
- Useful for managed service providers and IT teams that want an assistant to look up devices, clients and alerts in ConnectWise Automate, or to trigger script runs and reboots on managed endpoints without switching to the Automate console.
- Requirements
- Runs locally over stdio (npx or the container image) or over HTTP. Needs CW_AUTOMATE_SERVER_URL, CW_AUTOMATE_CLIENT_ID, CW_AUTOMATE_USERNAME and CW_AUTOMATE_PASSWORD; CW_AUTOMATE_2FA_CODE is optional and switches to user authentication. The npm package is on GitHub Packages, so installing it requires a GitHub token with read:packages (NODE_AUTH_TOKEN). HTTP mode also needs CONDUIT_S2S_SECRET.
Installation
In SourceWeft
- Open ConnectWise Automate in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
ConnectWise Automate MCP Server
A Model Context Protocol (MCP) server for ConnectWise Automate with decision tree architecture for Claude.
One-Click Deployment
[!IMPORTANT] Before you click: this server depends on
@wyre-ai/node-connectwise-automate, which is hosted on the GitHub Packages npm registry. GitHub Packages has no anonymous access — even though the package is public, everynpm installneeds a token. The cloud builder runsnpm installfor you, so you must give it one, or the build fails withnpm error 401 Unauthorized ... npm.pkg.github.com.
- Create a GitHub Personal Access Token with the
read:packagesscope (classic token). Any GitHub account works — you do not need to be a member of theWYRE-AIorg to read its public packages.- Add it as a build variable when prompted by the deploy flow:
- Cloudflare Workers → set a build variable named
NODE_AUTH_TOKENto your PAT (Workers → Settings → Build → Variables and Secrets).- DigitalOcean App Platform → set an encrypted env var named
GITHUB_TOKENwith scope Build Time to your PAT (the.do/deploy.template.yamlalready declares it).
[Deploy to Cloudflare Workers]
[!NOTE] The DigitalOcean target builds the full Docker image and runs the complete MCP server over HTTP — this is the recommended path for operators. Set
CONDUIT_S2S_SECRET(and theCW_AUTOMATE_*secrets) before the first boot; HTTP mode exits if the S2S secret is missing. The template setsAUTH_MODE=envfor that single-tenant deploy. This repo has no supported Cloudflare Workers target yet; prefer DigitalOcean or the prebuilt container image (ghcr.io/wyre-ai/connectwise-automate-mcp).
Features
- Decision Tree Architecture: Navigate between domains (computers, clients, alerts, scripts) to access relevant tools
- Lazy Loading: Client initialization and domain handlers are loaded on demand
- Comprehensive API Coverage: Manage computers, clients, alerts, and scripts
- Interactive Device Card (MCP Apps):
cwautomate_computers_getrenders as a read-only interactive card in MCP Apps hosts (Claude Desktop/web); neutral by default, brandable viawindow.__BRAND__injection orMCP_BRAND_*env vars; plain-JSON behavior is unchanged in other hosts
Installation
This package is published to the GitHub Packages npm registry, which requires a token even for public packages. Authenticate once, then install:
The repo's .npmrc already points the @wyre-ai scope at GitHub Packages and
reads the token from NODE_AUTH_TOKEN, so no further config is needed.
Configuration
Copy .env.example and set the variables below. The stdio transport reads CW_AUTOMATE_* and does not use CONDUIT_S2S_SECRET.
/health stays unauthenticated and does not read credentials.
HTTP authentication
With MCP_TRANSPORT=http and a real CONDUIT_S2S_SECRET, every /mcp request must include X-Gateway-S2S. The header value is t=<unix seconds>,v1=<hex>, where the hex is HMAC-SHA256 of the literal string t=<unix seconds> keyed with CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header is HTTP 401, before vendor credentials are read.
In AUTH_MODE=gateway, those X-CWA-* headers are the only credential source (X-CWA-2FA and X-CWA-Auth-Method are optional). A request missing any required header is HTTP 401 and does not use CW_AUTOMATE_* from the environment. With AUTH_MODE=env, the signed request uses the CW_AUTOMATE_* variables instead.
Docker
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass the S2S secret. In gateway mode, Automate credentials arrive on each request as headers; they are not read from the environment.
Compose refuses to start when CONDUIT_S2S_SECRET is unset, sets AUTH_MODE=gateway, does not inject CW_AUTOMATE_*, and publishes 127.0.0.1:8080:8080:
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses CW_AUTOMATE_*:
Local HTTP without a secret is development-only. It binds 127.0.0.1 only and logs a warning. A non-loopback MCP_HTTP_HOST is overridden to 127.0.0.1:
The DigitalOcean App Platform template is single-tenant: it sets AUTH_MODE=env so the CW_AUTOMATE_* secrets stay the credential source, and it declares CONDUIT_S2S_SECRET. Set that secret in the App Platform UI or the container exits on boot.
Authentication methods
The server supports both ConnectWise Automate authentication methods:
integrator(default) – machine-to-machine integrator account. Recommended for automation. Does not use 2FA.user– interactive user login, which can supply a two-factor code.
You normally don't need to set CW_AUTOMATE_AUTH_METHOD: integrator auth is used by
default, and user auth is selected automatically when CW_AUTOMATE_2FA_CODE is
provided.
Usage
As an MCP Server
Add to your Claude configuration:
Navigation
The server uses a decision tree pattern. Start by navigating to a domain:
- Use
cwautomate_navigateto select a domain (computers, clients, alerts, scripts) - Domain-specific tools become available
- Use
cwautomate_backto return to the main menu
Available Domains
Computers
- List computers with filtering options
- Get computer details
- Search computers by name
- Reboot computers remotely
- Run scripts on computers
Clients
- List all clients
- Get client details
- Create new clients
- Update existing clients
Alerts
- List alerts with filtering (read-only in the Automate API)
- Get alert details
Scripts
- List available scripts
- Get script details
- Execute scripts on computers
Development
License
Apache-2.0
Source: README.md at commit 3aa588f
Tools
0Version history
1- v1.8.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts