npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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

Readme

@goxtechnologies/connectwise-rmm-mcp

npm version license node

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-mcp

2. 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/Toronto

CW_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-mcp

The 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_health

Operation 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:

  1. ~/.config/connectwise-rmm/.env -- primary location, always writable
  2. <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-mcp

Then 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-mcp

Or rely on the .env file at ~/.config/connectwise-rmm/.env and run:

npx @goxtechnologies/connectwise-rmm-mcp

Architecture

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 test

Scripts

| 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.1

The 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:


Copyright (c) 2024-2026 GOX Technologies Inc. Released under the MIT License.

Source and issues: github.com/jencryzthers/connectwise-rmm-mcp