The ConnectWise Control MCP Server - free, local, built for MSPs
Independent, open source, inspectable. Every line of code is on GitHub under Apache-2.0 - built for the MSP community, vendor-neutral by design. Not affiliated with, endorsed by, or sponsored by ConnectWise, LLC.
Passes all 4 mechanical gates (build · command-surface · claims · install). Awaiting its first MSP receipt - be the first, 60 seconds →.
Yes - there is an MCP server for ConnectWise Control. It’s free, open source, and runs on your own machine, so your client data never leaves your network. It connects ConnectWise Control to Claude, ChatGPT, Copilot, or any MCP-capable agent, and installs in about 60 seconds.
Drive ConnectWise Control (ScreenConnect) from the terminal or your AI agent instead of clicking the web console: list and search remote-support and access sessions, inspect a machine’s session detail, run an approved command on a guest, rename and tag sessions, manage users, and read the audit log - scriptable, with an offline SQLite mirror so session lookups are fast and local.
New to the term? An MCP server is the same thing ChatGPT calls an app or connector, Claude on the web calls a connector, and Claude Code calls a Skill. One thing, many names →
Install in 60s → View on GitHub →
Instead of clicking through ConnectWise Control, just ask
Instead of Scrolling the ConnectWise Control web console to find which machines have an active session
just ask: “List the access sessions across the instance”
Your agent runs: connectwise-control-cli sessions list --session-type Access --agent
Instead of Clicking into the console’s audit view to see what happened on a machine
just ask: “What’s in the audit log for this session?”
Your agent runs: connectwise-control-cli audit query-log --session-name "ACME-WS01" --agent
Instead of Opening a session and typing the same command into the console command box on each machine
just ask: “Run this command on the guest (gated for my approval)”
Your agent runs: connectwise-control-cli sessions run-command --session-id
See it in 30 seconds
Demo data is simulated. Every command shown exists in the real CLI.
What it does
| Question your MSP keeps asking | Command your agent runs |
|---|---|
| Which access sessions are in this group? | connectwise-control-cli sessions list --session-type Access --group "All Machines" --agent |
| Show the full detail (connections, events) for one session | connectwise-control-cli sessions get-detail --session-id <sessionId> --agent |
| What session groups exist on the instance? | connectwise-control-cli session-groups --agent |
| Run a command on a guest machine (approval-gated) | connectwise-control-cli sessions run-command --session-id <sessionId> --command "Get-Service" --powershell --agent |
| Who are the instance users and roles? | connectwise-control-cli security get-configuration --agent |
| What’s in the audit log for a session or time window? | connectwise-control-cli audit query-log --session-name "ACME-WS01" --agent |
| Rename a session | connectwise-control-cli sessions update-name --session-id <sessionId> --new-name "ACME - Reception PC" --agent |
Full command reference at github.com/servosity/msp-skills/blob/main/skills/connectwise-control/guide.md.
What makes this one different
Most ConnectWise Control integrations script one .ashx call at a time or wrap the console’s session list. This skill turns the whole instance surface - sessions, groups, users, and the audit log - into typed commands with JSON output and an offline SQLite mirror, so an AI agent can list, inspect, and act on sessions across your instance without clicking through the web console one machine at a time.
ConnectWise Control’s web console is built for a technician driving one remote session interactively. This complements it by making the same instance scriptable and agent-friendly - bulk session queries, audit lookups, and approval-gated command execution - from the terminal, without replacing the live remote-control experience.
The pain this closes
- ConnectWise Control is a web console built for a technician driving one remote session at a time - there’s no scriptable, terminal-native way to list, search, or act on sessions in bulk.
- Answering ‘which machines have an open session?’ or ‘what happened on this endpoint?’ means scrolling the console and clicking into sessions and the audit view by hand.
- Running the same diagnostic or remediation command across several machines means opening each session and typing it into the console’s command box.
Install
Works in any of these agents - pick yours:
| Agent | Quick install |
|---|---|
| Claude Desktop | Step-by-step → |
| ChatGPT (Plus/Pro+) | Step-by-step → |
| Claude Code | Step-by-step → |
| Codex CLI | Step-by-step → |
| Cursor, Windsurf, Cline, Continue, Zed, Copilot, Gemini, Hermes, OpenClaw | Which agent? → |
Quickest path for everyone else (terminal):
macOS / Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/servosity/msp-skills/main/skills/connectwise-control/install.sh)
Windows (PowerShell):
iwr -useb https://raw.githubusercontent.com/servosity/msp-skills/main/skills/connectwise-control/install.ps1 | iex
After install, authenticate once with your ConnectWise Control credentials, then verify with connectwise-control-cli --version.
Safety model
| Tier | Examples | Recommended agent policy |
|---|---|---|
| Read | sessions list / get-detail, session-groups, security get-configuration, audit get-info / query-log, and search | Allow |
| Write (session metadata) | sessions update-name, sessions update-custom-property | Preview with –dry-run, then a reviewed write |
| Session and host control | sessions run-command (runs a real command on a guest machine), sessions add-event-to (queues control events like wake) | Human-in-the-loop, explicit confirmation |
| Access grant | sessions get-access-token (issues a one-time token/URL that grants remote access to a session) | Human-in-the-loop only |
| Admin and identity | security save-user (create or update an instance user and roles), security delete-user | Operator-only, not for agents |
The skill is read-first: listing and inspecting sessions, session groups, instance users and roles, and the audit log are read-only and safe to let an agent run. Session and host control - running a command on a guest machine (sessions run-command) and queuing control events like wake (sessions add-event-to) - is gated human-in-the-loop, as are issuing a join access token, and creating, updating, or deleting instance users. The instance user’s own ConnectWise Control permissions are the outer limit on anything the agent can do. Full details in governance.md.
Frequently asked questions
Is there an MCP server for ConnectWise Control?
Yes - this one. A free, open source MCP server and Claude Code Skill for ConnectWise Control, built for MSPs. It runs locally on your machine, works with Claude, ChatGPT, Copilot, and any MCP-capable agent, and installs in about 60 seconds.
Is the ConnectWise Control MCP server safe for client data?
Yes, by design. The CLI, the MCP server, and any local data mirror run on your own machine - nothing is sent to MSP Skills or any third party. Credentials stay in your environment, and every command is safety-tiered (read, write, destructive) so your agent only gets the permissions you grant. Full policy in the safety model on this page.
Does this work with ChatGPT?
Yes, on paid ChatGPT plans. ChatGPT connects to remote MCP servers over HTTPS, so you expose the local ConnectWise Control MCP server via a secure bridge. Step-by-step in the install guide.
Do I need to know how to code?
No. Paste one sentence into Claude Code or Codex and your agent does the install, or run a one-line installer. You enter your credentials once.
Is my ConnectWise Control data safe?
Your data stays on your machine. The CLI, MCP server, and the local mirror are all local. The AI sees query results, not raw bulk data, and credentials are never bundled or transmitted by MSP Skills.
What does it cost?
Free. Apache-2.0 licensed. You pay only for whichever AI agent you already use.
Is this ConnectWise Control, or ConnectWise Manage / Automate?
ConnectWise Control - the remote support and access tool, formerly ScreenConnect. ConnectWise Manage (the PSA) and ConnectWise Automate (the RMM) are separate skills. This one talks to your Control instance’s session, user, and audit surface.
How does it authenticate, and does it need the RESTful API Manager extension?
HTTP Basic auth with a ConnectWise Control instance user (CONNECTWISE_CONTROL_USERNAME / CONNECTWISE_CONTROL_PASSWORD) against your instance base URL (CONNECTWISE_CONTROL_BASE_URL) - the same login you use for the web console. No extension is required; these are the built-in instance services the console itself uses.
Can it actually run commands on machines?
Yes, via sessions run-command, but that is gated human-in-the-loop in governance.md - it runs a real command on a guest endpoint. Day-to-day use is read-first: listing, searching, and inspecting sessions.
Status
Beta. Validated against the ConnectWise Control API surface and being validated with MSPs running it live against their own production tenants in our weekly Build Sessions.
Build Sessions are free and stay free - The Build Room is where the deep work happens.
Standards. Conforms to the open Agent Skills spec (Anthropic, Dec 2025; 40+ agents). MCP-compatible - works with any MCP-capable agent including Hermes. OpenClaw-ready (frontmatter pre-wired, awaiting OpenClaw launch).
Maintained by Servosity for the MSP community. Apache-2.0 licensed. Built with CLI Printing Press.