The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the ConnectWise Automate listing page.
A Model Context Protocol (MCP) server for ConnectWise Automate with decision tree architecture for Claude.
[!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).
[!NOTE] The DigitalOcean target builds the full Docker image and runs the complete MCP server over HTTP — this is the recommended path for operators. This repo has no Cloudflare Workers entrypoint (
src/worker.ts), so the Workers button is not a supported target yet; prefer DigitalOcean or the prebuilt container image (ghcr.io/wyre-ai/connectwise-automate-mcp).
cwautomate_computers_get renders as a read-only interactive card in MCP Apps hosts (Claude Desktop/web); neutral by default, brandable via window.__BRAND__ injection or MCP_BRAND_* env vars; plain-JSON behavior is unchanged in other hostsThis 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.
Set the following environment variables:
| Variable | Required | Description |
|---|---|---|
CW_AUTOMATE_SERVER_URL | Yes | Your ConnectWise Automate server URL (e.g. https://your-server.hostedrmm.com) |
CW_AUTOMATE_CLIENT_ID | Yes | ConnectWise Automate Client ID |
CW_AUTOMATE_USERNAME | Yes | Integrator username or user login |
CW_AUTOMATE_PASSWORD | Yes | Integrator password or user password |
CW_AUTOMATE_2FA_CODE | No | Two-factor authentication code (forces user authentication) |
CW_AUTOMATE_AUTH_METHOD | No | integrator (default) or user |
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.
Add to your Claude configuration:
The server uses a decision tree pattern. Start by navigating to a domain:
cwautomate_navigate to select a domain (computers, clients, alerts, scripts)cwautomate_back to return to the main menuApache-2.0