ConnectWise PSA (Manage) MCP server — tickets, time entries, companies, configurations, BYOK
Connect Runs on your machine
claude mcp add mcp-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_MEMBER_IDENTIFIER=<CW_MEMBER_IDENTIFIER> -e CW_TOOLSETS=<CW_TOOLSETS> -e CW_DB_HOST=<CW_DB_HOST> -e CW_DB_NAME=<CW_DB_NAME> -e CW_DB_USER=<CW_DB_USER> -e CW_DB_PASSWORD=<CW_DB_PASSWORD> -e CW_DB_QUERY_LIBRARY=<CW_DB_QUERY_LIBRARY> -- npx -y [email protected]
{
"mcpServers": {
"mcp-connectwise-psa": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"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_MEMBER_IDENTIFIER": "<CW_MEMBER_IDENTIFIER>",
"CW_TOOLSETS": "<CW_TOOLSETS>",
"CW_DB_HOST": "<CW_DB_HOST>",
"CW_DB_NAME": "<CW_DB_NAME>",
"CW_DB_USER": "<CW_DB_USER>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>",
"CW_DB_QUERY_LIBRARY": "<CW_DB_QUERY_LIBRARY>"
}
}
}
}
{
"mcpServers": {
"mcp-connectwise-psa": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"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_MEMBER_IDENTIFIER": "<CW_MEMBER_IDENTIFIER>",
"CW_TOOLSETS": "<CW_TOOLSETS>",
"CW_DB_HOST": "<CW_DB_HOST>",
"CW_DB_NAME": "<CW_DB_NAME>",
"CW_DB_USER": "<CW_DB_USER>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>",
"CW_DB_QUERY_LIBRARY": "<CW_DB_QUERY_LIBRARY>"
}
}
}
}
{
"servers": {
"mcp-connectwise-psa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"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_MEMBER_IDENTIFIER": "<CW_MEMBER_IDENTIFIER>",
"CW_TOOLSETS": "<CW_TOOLSETS>",
"CW_DB_HOST": "<CW_DB_HOST>",
"CW_DB_NAME": "<CW_DB_NAME>",
"CW_DB_USER": "<CW_DB_USER>",
"CW_DB_PASSWORD": "<CW_DB_PASSWORD>",
"CW_DB_QUERY_LIBRARY": "<CW_DB_QUERY_LIBRARY>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
CW_SITERequired | ConnectWise host (e.g. na.myconnectwise.net or an on-prem host; full URLs accepted) |
CW_COMPANY_IDRequired | ConnectWise login company id |
CW_CLIENT_IDRequired | Integration clientId from developer.connectwise.com |
CW_PUBLIC_KEYRequired, secret | API member public key |
CW_PRIVATE_KEYRequired, secret | API member private key |
CW_MEMBER_IDENTIFIEROptional | Member identifier the API keys belong to — enables "my tickets"/"my time" tools |
CW_TOOLSETSOptional | Comma list of toolsets/presets (default: all). Add sql for database queries. |
CW_DB_HOSTOptional | ConnectWise SQL Server host (on-prem only) — enables the opt-in sql toolset |
CW_DB_NAMEOptional | ConnectWise Manage database, e.g. cwwebapp_acme |
CW_DB_USEROptional | Dedicated read-only database login (db_datareader) |
CW_DB_PASSWORDOptional, secret | Password for the read-only database login |
CW_DB_QUERY_LIBRARYOptional | Path to a writable JSON file holding saved SQL queries |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 7 Oct 2026 |
| Last updated | 7 Oct 2026 |
| Registry name | io.github.mspstack/mcp-connectwise-psa |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
