Skip to content
VS Code

ConnectWise PSA for VS Code

io.github.mspstack/mcp-connectwise-psa

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

client:VS Code transport:stdio runtime:npm

Install ConnectWise PSA in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "cw-site",
      "description": "CW_SITE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-company-id",
      "description": "CW_COMPANY_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-client-id",
      "description": "CW_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-public-key",
      "description": "CW_PUBLIC_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-private-key",
      "description": "CW_PRIVATE_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-member-identifier",
      "description": "CW_MEMBER_IDENTIFIER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-toolsets",
      "description": "CW_TOOLSETS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-db-host",
      "description": "CW_DB_HOST",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-db-name",
      "description": "CW_DB_NAME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-db-user",
      "description": "CW_DB_USER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-db-password",
      "description": "CW_DB_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cw-db-query-library",
      "description": "CW_DB_QUERY_LIBRARY",
      "password": true
    }
  ],
  "servers": {
    "mcp-connectwise-psa": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-connectwise-psa"
      ],
      "env": {
        "CW_SITE": "${input:cw-site}",
        "CW_COMPANY_ID": "${input:cw-company-id}",
        "CW_CLIENT_ID": "${input:cw-client-id}",
        "CW_PUBLIC_KEY": "${input:cw-public-key}",
        "CW_PRIVATE_KEY": "${input:cw-private-key}",
        "CW_MEMBER_IDENTIFIER": "${input:cw-member-identifier}",
        "CW_TOOLSETS": "${input:cw-toolsets}",
        "CW_DB_HOST": "${input:cw-db-host}",
        "CW_DB_NAME": "${input:cw-db-name}",
        "CW_DB_USER": "${input:cw-db-user}",
        "CW_DB_PASSWORD": "${input:cw-db-password}",
        "CW_DB_QUERY_LIBRARY": "${input:cw-db-query-library}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

ConnectWise PSA in other clients