PSA MCP Server 🐳 Docker

ConnectWise Manage MCP

MCP server for ConnectWise Manage (PSA) providing ticket management, company/contact CRM, project management, and time tracking.

🔗 Companion Plugin

Pair this MCP server with the ConnectWise PSA plugin for skills, commands, and API knowledge alongside direct API access.

Installation

Run the MCP server with npx:

npx @wyre-technology/connectwise-manage-mcp

Or install the package:

npm install @wyre-technology/connectwise-manage-mcp

MCPB Bundle (Claude Desktop)

Download the .mcpb bundle from GitHub Releases for a zero-config Claude Desktop install. No Node.js or terminal required — just open the bundle in Claude Desktop via Settings → MCP Servers → Install from file. Requires Claude Desktop 0.10+.

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "connectwise-manage": {
      "command": "npx",
      "args": [
        "@wyre-technology/connectwise-manage-mcp"
      ],
      "env": {
        "CW_MANAGE_COMPANY_ID": "your-cw-manage-company-id",
        "CW_MANAGE_PUBLIC_KEY": "your-cw-manage-public-key",
        "CW_MANAGE_PRIVATE_KEY": "your-cw-manage-private-key",
        "CW_MANAGE_CLIENT_ID": "your-cw-manage-client-id"
      }
    }
  }
}

Authentication

Variable Required Description
CW_MANAGE_COMPANY_ID Yes ConnectWise company identifier
CW_MANAGE_PUBLIC_KEY Yes API member public key
CW_MANAGE_PRIVATE_KEY Yes API member private key
CW_MANAGE_CLIENT_ID Yes ConnectWise client ID

Getting Credentials

Vendor portal: https://developer.connectwise.com/ClientID

Prerequisites

  • ConnectWise Manage account with Administrator role
  • Knowledge of your ConnectWise company identifier (the prefix in your ConnectWise URL)
  • An "Integrator" user role configured for API access (NOT a regular member role — see Member Maintenance docs)
  • ConnectWise Developer Network account (free) to obtain CW_MANAGE_CLIENT_ID at developer.connectwise.com/ClientID

Steps

  1. Visit https://developer.connectwise.com/ClientID and sign in (or register a free ConnectWise Developer Network account).
  2. Request a Client ID for your integration. Fill in: integration name (e.g., "WYRE Gateway"), description, ConnectWise product (Manage), and integration owner contact details.
  3. Save the issued Client ID to CW_MANAGE_CLIENT_ID. This identifies your integration globally to ConnectWise.
  4. Sign in to your ConnectWise Manage instance as an Administrator.
  5. Navigate to System → Members → API Members.
  6. Click "+" to create a new API Member, or edit an existing one.
  7. Set the API Member name (descriptive, e.g., "WYRE Gateway").
  8. Set the role to one with appropriate permissions for the entities you need.
  9. In the API Keys tab on the API Member, generate a new key pair.
    • Save BOTH the public key (becomes CW_MANAGE_PUBLIC_KEY) and the private key (becomes CW_MANAGE_PRIVATE_KEY)
    • ConnectWise only shows the private key once.
  10. Set CW_MANAGE_COMPANY_ID to your ConnectWise company identifier (the prefix in your portal URL).

Required Scopes / Permissions

  • Configure the API Member's role to grant access to the entities you need (Tickets, Companies, Time Entries, etc.). Least-privilege per your gateway scope.

Credential Format

Public/private keys are long random strings. Company ID is the URL prefix. Client ID is a UUID issued by ConnectWise Developer Network.

Rotation

Regenerate from the same API Member → API Keys tab. Old key pair invalidated when new pair is generated.

Architecture

Decision tree with lazy-loaded domain handlers.

Available Tools (10)

Tools are organized into 4 domains:

Tickets

Service ticket management.

Tool Description
List tickets List tickets with filters
Get ticket Get ticket details
Create ticket Create a new ticket
Update ticket Update ticket fields

Companies

Company management.

Tool Description
List companies List companies
Get company Get company details

Contacts

Contact management.

Tool Description
List contacts List contacts
Get contact Get contact details

Projects

Project management.

Tool Description
List projects List projects
Get project Get project details

Rate Limits

60 requests per minute. The underlying client library handles rate limiting automatically.