ConnectWise PSA MCP Server
by mspstackio.github.mspstack/mcp-connectwise-psav0.12.0
MCP server for ConnectWise PSA (Manage) — tickets, time entries, companies, and configurations for technicians, with per-tech API keys (BYOK) so writes are attributed to the real member
context tax
queued
security
queued
cold start
queued
freshness
Active3d ago
Install ConnectWise PSA MCP server
Install in Claude Code
claude mcp add connectwise-psa -e CW_SITE='<cw-site>' -e CW_COMPANY_ID='<cw-company-id>' -e CW_CLIENT_ID='<cw-client-id>' -e CW_PUBLIC_KEY='<cw-public-key>' -e CW_PRIVATE_KEY='<cw-private-key>' -e CW_DB_PASSWORD='<cw-db-password>' -- npx -y mcp-connectwise-psaInstall in Cursor
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<cw-site>",
"CW_COMPANY_ID": "<cw-company-id>",
"CW_CLIENT_ID": "<cw-client-id>",
"CW_PUBLIC_KEY": "<cw-public-key>",
"CW_PRIVATE_KEY": "<cw-private-key>",
"CW_DB_PASSWORD": "<cw-db-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<cw-site>",
"CW_COMPANY_ID": "<cw-company-id>",
"CW_CLIENT_ID": "<cw-client-id>",
"CW_PUBLIC_KEY": "<cw-public-key>",
"CW_PRIVATE_KEY": "<cw-private-key>",
"CW_DB_PASSWORD": "<cw-db-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"connectwise-psa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<cw-site>",
"CW_COMPANY_ID": "<cw-company-id>",
"CW_CLIENT_ID": "<cw-client-id>",
"CW_PUBLIC_KEY": "<cw-public-key>",
"CW_PRIVATE_KEY": "<cw-private-key>",
"CW_DB_PASSWORD": "<cw-db-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"connectwise-psa": {
"command": "npx",
"args": [
"-y",
"mcp-connectwise-psa"
],
"env": {
"CW_SITE": "<cw-site>",
"CW_COMPANY_ID": "<cw-company-id>",
"CW_CLIENT_ID": "<cw-client-id>",
"CW_PUBLIC_KEY": "<cw-public-key>",
"CW_PRIVATE_KEY": "<cw-private-key>",
"CW_DB_PASSWORD": "<cw-db-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| CW_SITE | yes | — | ConnectWise host (e.g. na.myconnectwise.net or an on-prem host; full URLs accepted) |
| CW_COMPANY_ID | yes | — | ConnectWise login company id |
| CW_CLIENT_ID | yes | — | Integration clientId from developer.connectwise.com |
| CW_PUBLIC_KEY | yes | yes | API member public key |
| CW_PRIVATE_KEY | yes | yes | API member private key |
| CW_MEMBER_IDENTIFIER | — | — | Member identifier the API keys belong to — enables "my tickets"/"my time" tools |
| CW_TOOLSETS | — | — | Comma list of toolsets/presets (default: all). Add sql for database queries. |
| CW_DB_HOST | — | — | ConnectWise SQL Server host (on-prem only) — enables the opt-in sql toolset |
| CW_DB_NAME | — | — | ConnectWise Manage database, e.g. cwwebapp_acme |
| CW_DB_USER | — | — | Dedicated read-only database login (db_datareader) |
| CW_DB_PASSWORD | — | yes | Password for the read-only database login |
| CW_DB_QUERY_LIBRARY | — | — | Path to a writable JSON file holding saved SQL queries |
Freshness
Active — last maintenance signal 3d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-07 · 3d ago · GitHub
Latest release
2026-10-07 · 3d ago · GitHub · v0.12.0
Package published
no data · npm/PyPI
Registry entry updated
2026-10-07 · 3d ago · official registry · v0.12.0
FAQ
›How do I install the ConnectWise PSA MCP server in Claude Code?
Run: claude mcp add connectwise-psa -e CW_SITE='<cw-site>' -e CW_COMPANY_ID='<cw-company-id>' -e CW_CLIENT_ID='<cw-client-id>' -e CW_PUBLIC_KEY='<cw-public-key>' -e CW_PRIVATE_KEY='<cw-private-key>' -e CW_DB_PASSWORD='<cw-db-password>' -- npx -y mcp-connectwise-psa. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does ConnectWise PSA require an API key?
Yes. It expects CW_SITE, CW_COMPANY_ID, CW_CLIENT_ID, CW_PUBLIC_KEY, CW_PRIVATE_KEY, CW_DB_PASSWORD, of which 3 are secrets.
›Can I use ConnectWise PSA as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is ConnectWise PSA in the official MCP registry?
Yes, as io.github.mspstack/mcp-connectwise-psa.
Alternatives to ConnectWise PSA
Other project management MCP servers.