PluginBench
MCP Server
Active
MIT

ConnectWise PSA MCP Server

io.github.mspstack/mcp-connectwise-psa

What is the ConnectWise PSA MCP server?

ConnectWise PSA (Manage) MCP server — tickets, time entries, companies, configurations, BYOK

How to install ConnectWise PSA

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • 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 id

  • CW_CLIENT_ID
    required

    Integration clientId from developer.connectwise.com

  • CW_PUBLIC_KEY
    required
    secret

    API member public key

  • CW_PRIVATE_KEY
    required
    secret

    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
    secret

    Password for the read-only database login

  • CW_DB_QUERY_LIBRARY

    Path to a writable JSON file holding saved SQL queries

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-connectwise-psa": {
      "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>",
        "CW_MEMBER_IDENTIFIER": "<YOUR_CW_MEMBER_IDENTIFIER>",
        "CW_TOOLSETS": "<YOUR_CW_TOOLSETS>",
        "CW_DB_HOST": "<YOUR_CW_DB_HOST>",
        "CW_DB_NAME": "<YOUR_CW_DB_NAME>",
        "CW_DB_USER": "<YOUR_CW_DB_USER>",
        "CW_DB_PASSWORD": "<YOUR_CW_DB_PASSWORD>",
        "CW_DB_QUERY_LIBRARY": "<YOUR_CW_DB_QUERY_LIBRARY>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-connectwise-psa": {
      "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>",
        "CW_MEMBER_IDENTIFIER": "<YOUR_CW_MEMBER_IDENTIFIER>",
        "CW_TOOLSETS": "<YOUR_CW_TOOLSETS>",
        "CW_DB_HOST": "<YOUR_CW_DB_HOST>",
        "CW_DB_NAME": "<YOUR_CW_DB_NAME>",
        "CW_DB_USER": "<YOUR_CW_DB_USER>",
        "CW_DB_PASSWORD": "<YOUR_CW_DB_PASSWORD>",
        "CW_DB_QUERY_LIBRARY": "<YOUR_CW_DB_QUERY_LIBRARY>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-connectwise-psa": {
      "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>",
        "CW_MEMBER_IDENTIFIER": "<YOUR_CW_MEMBER_IDENTIFIER>",
        "CW_TOOLSETS": "<YOUR_CW_TOOLSETS>",
        "CW_DB_HOST": "<YOUR_CW_DB_HOST>",
        "CW_DB_NAME": "<YOUR_CW_DB_NAME>",
        "CW_DB_USER": "<YOUR_CW_DB_USER>",
        "CW_DB_PASSWORD": "<YOUR_CW_DB_PASSWORD>",
        "CW_DB_QUERY_LIBRARY": "<YOUR_CW_DB_QUERY_LIBRARY>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "mcp-connectwise-psa": {
      "type": "stdio",
      "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>",
        "CW_MEMBER_IDENTIFIER": "<YOUR_CW_MEMBER_IDENTIFIER>",
        "CW_TOOLSETS": "<YOUR_CW_TOOLSETS>",
        "CW_DB_HOST": "<YOUR_CW_DB_HOST>",
        "CW_DB_NAME": "<YOUR_CW_DB_NAME>",
        "CW_DB_USER": "<YOUR_CW_DB_USER>",
        "CW_DB_PASSWORD": "<YOUR_CW_DB_PASSWORD>",
        "CW_DB_QUERY_LIBRARY": "<YOUR_CW_DB_QUERY_LIBRARY>"
      }
    }
  }
}
Claude Code
claude mcp add mcp-connectwise-psa --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> --env CW_MEMBER_IDENTIFIER=<YOUR_CW_MEMBER_IDENTIFIER> --env CW_TOOLSETS=<YOUR_CW_TOOLSETS> --env CW_DB_HOST=<YOUR_CW_DB_HOST> --env CW_DB_NAME=<YOUR_CW_DB_NAME> --env CW_DB_USER=<YOUR_CW_DB_USER> --env CW_DB_PASSWORD=<YOUR_CW_DB_PASSWORD> --env CW_DB_QUERY_LIBRARY=<YOUR_CW_DB_QUERY_LIBRARY> -- npx -y mcp-connectwise-psa

Related MCP servers

IT Glue

Active

IT Glue MCP server for MSPs — documents, flexible assets, semantic vector search, RBAC, and BYOK

5
TypeScript
MIT
View repository →

Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled

4
TypeScript
MIT
View repository →