ConnectWise PSA (Manage) MCP server — tickets, time entries, companies, configurations, BYOK
registry version 0.4.0
npm
npx -y mcp-connectwise-psanpm
npx -y mcp-connectwise-psa@0.4.0
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa@0.4.0"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add --env CW_SITE=<YOUR_CW_SITE> --env CW_COMPANY_ID=<YOUR_CW_COMPANY_ID> --env CW_CLIENT_ID=<YOUR_CW_CLIENT_ID> --env CW_PUBLIC_KEY=<YOUR_CW_PUBLIC_KEY> --env CW_PRIVATE_KEY=<YOUR_CW_PRIVATE_KEY> mcp-connectwise-psa-2 -- npx -y mcp-connectwise-psa
claude mcp add --env CW_SITE=<YOUR_CW_SITE> --env CW_COMPANY_ID=<YOUR_CW_COMPANY_ID> --env CW_CLIENT_ID=<YOUR_CW_CLIENT_ID> --env CW_PUBLIC_KEY=<YOUR_CW_PUBLIC_KEY> --env CW_PRIVATE_KEY=<YOUR_CW_PRIVATE_KEY> mcp-connectwise-psa-2 -- npx -y mcp-connectwise-psa@0.4.0
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa@0.4.0"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}{
"servers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa@0.4.0"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}{
"mcpServers": {
"mcp-connectwise-psa-2": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa@0.4.0"
],
"env": {
"CW_SITE": "<YOUR_CW_SITE>",
"CW_COMPANY_ID": "<YOUR_CW_COMPANY_ID>",
"CW_CLIENT_ID": "<YOUR_CW_CLIENT_ID>",
"CW_PUBLIC_KEY": "<YOUR_CW_PUBLIC_KEY>",
"CW_PRIVATE_KEY": "<YOUR_CW_PRIVATE_KEY>"
}
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
CW_SITE required — ConnectWise host (e.g. na.myconnectwise.net or an on-prem host; full URLs accepted)CW_COMPANY_ID required — ConnectWise login company idCW_CLIENT_ID required — Integration clientId from developer.connectwise.comCW_PUBLIC_KEY required secret — API member public keyCW_PRIVATE_KEY required secret — API member private keyCW_MEMBER_IDENTIFIER — Member identifier the API keys belong to — enables "my tickets"/"my time" tools⭐ 6 stars · 最近更新于 36 天前 · MIT license
mcp connectwise psa An MCP (Model Context Protocol) server for ConnectWise PSA (Manage) — curated tools across 8 toolsets covering technicians, dispatchers, and billing, plus an escape hatch for the rest of the API and a read only SQL toolset for on prem deployments, so an AI assistant works PSA the…
Summary from the project README — github.com/selic/mcp-connectwise-psa
Distributed as npm, listed under Developer Tools. Review our MCP security guide before granting access to real data.
mcp connectwise psa An MCP (Model Context Protocol) server for ConnectWise PSA (Manage) — curated tools across 8 toolsets covering technicians, dispatchers, and billing, plus an escape hatch for the rest of the API and a read only SQL toolset for on prem deployments, so an AI assistant works PSA the
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/selic/mcp-connectwise-psa. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/mcp-connectwise-psa-2/)
HTML
<a href="https://mcpnav.net/server/mcp-connectwise-psa-2/"><img src="https://mcpnav.net/badge/mcp-connectwise-psa-2.svg" alt="Listed on MCPNav" height="20"></a>