@goxtechnologies/connectwise-rmm-mcp
v1.2.4
Published
28 MCP tools + 111 named operations for ConnectWise RMM (Asio) + ScreenConnect (Control). Fleet analytics, patch compliance, device inspection, and remote command execution. Independent community project — not affiliated with ConnectWise LLC.
Downloads
789
Maintainers
Readme
@goxtechnologies/connectwise-rmm-mcp
MCP server connecting AI assistants to ConnectWise RMM (Asio) + ScreenConnect (Control) — 28 tools, 111 named operations, fleet analytics, and remote command execution. Built for MSP technicians experimenting with AI-assisted workflows.
This project started as a personal experiment -- I wanted to see how far I could push AI assistants as a daily driver for MSP operations. It grew from a simple API wrapper into a full-featured toolkit with fleet health analytics, patch compliance dashboards, and remote command execution via ScreenConnect.
Built for MSP technicians and IT professionals who like to tinker. If you're running ConnectWise RMM and want to experiment with AI-assisted workflows -- querying your fleet through natural language, running diagnostics remotely, tracking patch compliance -- this gives you the plumbing to do it.
Heads up: This is an active experiment. The core tools (API calls, device queries, named operations) are well-tested. Many of the analytics handlers and ScreenConnect integrations, however, have seen limited real-world testing. Things may not work perfectly in every environment. Contributions, bug reports, and feedback are welcome.
Quick Start
1. Install
npm install -g @goxtechnologies/connectwise-rmm-mcp2. Configure credentials
Create ~/.config/connectwise-rmm/.env:
CW_RMM_API_URL=api.example.com
CW_RMM_CLIENT_ID=your-oauth2-client-id
CW_RMM_CLIENT_SECRET=your-oauth2-client-secret
CW_RMM_TIMEZONE=America/TorontoCW_RMM_TIMEZONE is an IANA timezone name used when displaying dates in analytics and reports. The default is UTC. Dates sent to the RMM API always remain in UTC -- this setting affects display only.
3. Verify
connectwise-rmm-mcpThe server writes its startup message to stderr. If credentials are missing, it still registers all tools -- calls to those tools return a descriptive error until credentials are set. If ScreenConnect credentials are absent, the server starts in RMM-only mode with 19 tools instead of 28.
Features
28 MCP Tools
Tools are organized into 8 groups:
| Group | Tools | What they do |
|-------|-------|--------------|
| Discovery | cw_rmm_search_endpoints, cw_rmm_endpoint_details, cw_rmm_api_categories, cw_rmm_category_endpoints | Browse and inspect the full RMM API catalogue from a bundled SQLite database |
| Execution | cw_rmm_api_call, cw_rmm_raw_request | Execute any API call with full response -- no truncation |
| Pagination | cw_rmm_paginated_fetch, cw_rmm_count | Auto-paginate collections via Link header cursors or estimate record counts |
| Memory | cw_rmm_save_query, cw_rmm_list_queries, cw_rmm_delete_query, cw_rmm_clear_queries | Persist frequently-used queries across sessions with usage-count tracking |
| Composite | cw_rmm_device_context, cw_rmm_company_overview, cw_rmm_ticket_context, cw_rmm_patch_dashboard | Fan out multiple parallel API calls and return a single assembled result |
| Batch | cw_rmm_batch_update | Execute multiple operations sequentially, with a mandatory dry-run preview before any data is changed |
| Named Operations | cw_rmm_operation, cw_rmm_list_operations | Execute or browse 111 pre-built operations by name |
| ScreenConnect | cw_rmm_sc_send_command, cw_rmm_sc_get_session, cw_rmm_sc_get_sessions, + 6 more | Remote command execution, session management, messaging, toolbox deployment |
111 Named Operations
Pre-built operations covering the RMM and ScreenConnect API surface across 13 domains. Read-only queries require no confirmation; write operations require confirmation before data is modified.
Use cw_rmm_list_operations to browse by category or keyword. Use cw_rmm_operation to execute by name:
cw_rmm_operation: list_endpoints
cw_rmm_operation: get_endpoint { id: "device-uuid" }
cw_rmm_operation: fleet_healthOperation categories include: Device, Ticketing, Company, Automation, Policy, Patching, Alert, Vulnerability, DeviceGroups, Mapping, Analytics, and ScreenConnect.
Analytics Handlers
The Analytics category includes 12 server-side aggregation handlers covering:
- Fleet health and endpoint status
- Patch compliance and vulnerability exposure
- Ticket aging and volume trends
- Endpoint lifecycle and warranty tracking
- Resource utilization and performance
- Company and site breakdowns
Configuration
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| CW_RMM_API_URL | Yes | Asio API hostname (e.g., api.example.com) -- without https:// |
| CW_RMM_CLIENT_ID | Yes | OAuth2 client ID |
| CW_RMM_CLIENT_SECRET | Yes | OAuth2 client secret |
| CW_RMM_TIMEZONE | No | IANA timezone name for date display in analytics and reports. Default: UTC. Example: America/Toronto. The API always operates in UTC; this setting converts displayed dates only. |
| CW_RMM_TICKETING_MODE | No | auto / psa / rmm -- controls ticket routing when a PSA integration is configured. Default: auto. |
ScreenConnect (Optional)
| Variable | Description |
|----------|-------------|
| CW_SC_URL | ScreenConnect instance URL (e.g., https://your-instance.screenconnect.com) |
| CW_SC_AUTH_SECRET | CTRLAuthHeader secret |
| CW_SC_EXTENSION_ID | REST API Manager extension GUID |
If SC variables are omitted, the server starts with 19 RMM-only tools. Add them to enable the full 28-tool suite.
.env File Location
The server searches for credentials in this order:
~/.config/connectwise-rmm/.env-- primary location, always writable<package_root>/.env-- legacy fallback
Existing environment variables always take precedence over .env file values.
Data files
The data/ directory holds the API catalogue powering the discovery tools (cw_rmm_search_endpoints, cw_rmm_endpoint_details, cw_rmm_api_categories, cw_rmm_category_endpoints).
| File | Role | Tracked in git? | Shipped on npm? |
|------|------|-----------------|-----------------|
| asio-api.yaml | Source — ConnectWise Asio OpenAPI spec | Yes (source of truth) | No |
| connectwise_rmm_api.db | Build artifact — SQLite index over the spec (87 endpoints, 179 parameters) | No (gitignored) | Yes (rebuilt by prepublishOnly) |
Why the DB is gitignored: it's a derived artifact. Each rebuild changes the binary, which would bloat git history for no benefit. npm install && npm run build && npm run build:db regenerates it from asio-api.yaml. Users installing via npx or the .dxt bundle get the prebuilt DB inside the tarball (CI rebuilds it before every publish).
Companion sibling MCPs follow the same pattern. The PSA MCP (@goxtechnologies/connectwise-psa-mcp) gitignores its connectwise_api.db the same way. The CPQ MCP (@goxtechnologies/connectwise-cpq-mcp) has no DB at all — its 29 endpoints are hand-coded in src/utils/endpoints.ts because SQLite indexing is overkill at that scale.
No sensitive data. The DB contains public ConnectWise API metadata only: paths, methods, parameter names, response schemas. No credentials, no tenant data, no customer info.
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"connectwise-rmm": {
"command": "connectwise-rmm-mcp",
"env": {
"CW_RMM_API_URL": "api.example.com",
"CW_RMM_CLIENT_ID": "your-client-id",
"CW_RMM_CLIENT_SECRET": "your-client-secret",
"CW_RMM_TIMEZONE": "America/Toronto"
}
}
}
}The config file is located at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after saving.
Usage with Claude Code
Register the MCP server with Claude Code:
claude mcp add connectwise-rmm -- connectwise-rmm-mcpThen ensure your credentials are set in ~/.config/connectwise-rmm/.env.
Usage Standalone (npx)
Run without a global install:
CW_RMM_API_URL=api.example.com \
CW_RMM_CLIENT_ID=your-client-id \
CW_RMM_CLIENT_SECRET=your-client-secret \
npx @goxtechnologies/connectwise-rmm-mcpOr rely on the .env file at ~/.config/connectwise-rmm/.env and run:
npx @goxtechnologies/connectwise-rmm-mcpArchitecture
MCP Client (Claude Code, Claude Desktop, etc.)
|
| stdio (JSON-RPC)
|
connectwise-rmm-mcp
|
+-- tools/ (8 handler groups)
+-- operations/ (registry + executor + analytics)
+-- services/ (OAuth2 API, SC API, SQLite DB, cache)
+-- types/ (core + operations + screenconnect)
+-- utils/ (formatters, conditions, timezone)
|
+-- data/
+-- asio-api.yaml (OpenAPI 3.0.3 spec, 87 endpoints)
+-- connectwise_rmm_api.db (SQLite schema database)Development
git clone https://github.com/jencryzthers/connectwise-rmm-mcp.git
cd connectwise-rmm-mcp
npm install
npm run build
npm testScripts
| Script | Purpose |
|--------|---------|
| npm run build | Compile TypeScript |
| npm run build:db | Rebuild SQLite schema database from YAML |
| npm test | Run unit tests |
| npm start | Start MCP server |
Requirements
- Node.js 18 or later
Releasing
Releases are automated. Bump version in both package.json and manifest.json (they must match), commit, then push a matching tag:
git tag v1.1.1
git push origin v1.1.1The Release workflow builds, runs tests, verifies the tag matches both version fields, publishes to npm via OIDC Trusted Publishing (with provenance), builds the Claude Desktop .dxt bundle, and attaches it to an auto-generated GitHub Release.
Pull requests and pushes to main run the CI workflow (build + unit tests).
License and Legal Notices
MIT Licensed
@goxtechnologies/connectwise-rmm-mcp is released under the MIT License. See the LICENSE file for the full text.
Source code: github.com/jencryzthers/connectwise-rmm-mcp.
Experimental Software
This software is an active experiment in AI-assisted MSP operations. The core tools (API calls, device queries, named operations) are reasonably tested, but many analytics handlers, composite operations, and ScreenConnect integrations have seen limited real-world testing. Features may be added, changed, or removed without notice between versions.
This software is NOT a substitute for professional judgment. All outputs, recommendations, and actions should be independently verified by qualified IT professionals before being relied upon.
When used with AI assistants (Claude, GPT, or similar), the AI may propose or execute actions that are incorrect, incomplete, or destructive. Human review of all AI-proposed actions is strongly recommended.
ConnectWise Trademark Notice
"ConnectWise," "ConnectWise RMM," "ConnectWise Asio," "ConnectWise ScreenConnect," "ConnectWise Control," and "Asio" are trademarks or registered trademarks of ConnectWise, LLC.
This package is NOT an official ConnectWise product. It is NOT developed, endorsed, sponsored, certified, or approved by ConnectWise, LLC. GOX Technologies Inc. has no affiliation with ConnectWise, LLC. These marks are referenced solely to identify the third-party APIs this software interoperates with.
ConnectWise API Requirements
To use this software you must hold your own valid ConnectWise RMM and/or ConnectWise ScreenConnect license and API credentials. Your use of the ConnectWise APIs is governed by your agreements with ConnectWise, LLC. GOX Technologies Inc. is not responsible for any ConnectWise Terms of Service violations that result from your use of this software.
Data and Security
- GOX Technologies Inc. has no access to your API credentials, your ConnectWise data, or any actions performed through this software.
- This software can execute remote commands on live endpoints and modify device configurations in real time. You bear full responsibility for every action performed through this software, including actions initiated by AI assistants using this software as an MCP integration.
- Store your API credentials securely. Use minimum-privilege API keys.
- If using this software with an AI assistant, validate every proposed action before it executes. AI systems can produce incorrect or destructive outputs.
No Warranty / Limitation of Liability
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. GOX TECHNOLOGIES INC. IS NOT LIABLE FOR ANY DATA LOSS, SERVICE DISRUPTION, UNAUTHORIZED ACCESS, FINANCIAL LOSS, OR ANY OTHER DAMAGE ARISING FROM YOUR USE OF THIS SOFTWARE. USE AT YOUR OWN RISK.
See the LICENSE file for the complete MIT terms.
Third-Party Dependencies
This software uses open-source packages governed by their own licenses:
- better-sqlite3 -- MIT License
- @modelcontextprotocol/sdk -- MIT License
- js-yaml -- MIT License
Copyright (c) 2024-2026 GOX Technologies Inc. Released under the MIT License.
Source and issues: github.com/jencryzthers/connectwise-rmm-mcp
