ConnectWise Manage API

by jasondsmith72

2 stars
185 downloads
Not rated
GitHub

About

Bridges Claude with the ConnectWise Manage API through a SQLite database built from API definitions, enabling natural language search, categorized navigation, and fast memory for efficient IT service ticket management and company information retrieval.

Details

Author
jasondsmith72
Repository
jasondsmith72/CWM-API-Gateway-MCP
GitHub stars
2
Downloads
185
Categories
Design, Developer Tools, Search, Knowledge Base, Frontend, AI, Cloud Service, Infrastructure
Tags
#integration

- API Discovery: Search for and explore ConnectWise API endpoints using keywords or natural language
- Simplified API Execution: Execute API calls with friendly parameter handling and automatic error management
- Fast Memory System: Save and retrieve frequently used API queries for more efficient workflows
- Raw API Access: Send custom API requests with complete control over endpoints, methods, and parameters

- Database-Backed API Discovery: Uses a SQLite database built from the ConnectWise API definition JSON for fast, efficient endpoint lookups
- Natural Language Search: Find relevant API endpoints using conversational descriptions of what you need
- Categorized API Navigation: Browse API endpoints organized by functional categories
- Detailed Documentation Access: View comprehensive information about API endpoints including parameters, schemas, and response formats
- Adaptive Learning: The system learns which API calls are most valuable to you through usage tracking

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name ConnectWise Manage API
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @jasondsmith72/CWM-API-Gateway-MCP
    Environment
    • CONNECTWISE_API_URL https://na.myconnectwise.net/v4_6_release/apis/3.0
    • CONNECTWISE_COMPANY_ID your_company_id
    • CONNECTWISE_PUBLIC_KEY your_public_key
    • CONNECTWISE_AUTH_PREFIX yourprefix+
    • CONNECTWISE_PRIVATE_KEY your_private_key

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

After installing on any platform (Windows, macOS, or Linux), complete the following steps:

Set the following environment variables with your ConnectWise credentials:

CONNECTWISE_API_URL=https://na.myconnectwise.net/v4_6_release/apis/3.0
CONNECTWISE_COMPANY_ID=your_company_id
CONNECTWISE_PUBLIC_KEY=your_public_key
CONNECTWISE_PRIVATE_KEY=your_private_key
CONNECTWISE_AUTH_PREFIX=yourprefix+ # Prefix required by ConnectWise for API authentication

These credentials are used in the authentication process as follows:

- CONNECTWISE_API_URL: The base URL for all API requests to your ConnectWise instance

  url = f"{API_URL}{endpoint}"  # e.g., https://na.myconnectwise.net/v4_6_release/apis/3.0/service/tickets

- CONNECTWISE_COMPANY_ID: Included in the 'clientId' header of each request to identify your company

  headers = {'clientId': COMPANY_ID, ...}

- CONNECTWISE_PUBLIC_KEY and CONNECTWISE_PRIVATE_KEY: Used together with AUTH_PREFIX to create the basic authentication credentials

  username = f"{AUTH_PREFIX}{PUBLIC_KEY}"  # e.g., "yourprefix+your_public_key"
password = PRIVATE_KEY
credentials = f"{username}:{password}" # Combined into "yourprefix+your_public_key:your_private_key"

- CONNECTWISE_AUTH_PREFIX: Required prefix added before your public key in the authentication username. ConnectWise API requires this prefix to identify the type of integration (e.g., "api+", "integration+", etc.)

The final HTTP headers sent with every request will look like:

'Authorization': 'Basic [base64 encoded credentials]'
'clientId': 'your_company_id'
'Content-Type': 'application/json'

There are two methods to integrate with Claude Desktop:

cwm-api-gateway-mcp

search_api_endpoints

Search for API endpoints by query string.

natural_language_api_search

Find endpoints using natural language descriptions.

list_api_categories

List all available API categories.

get_category_endpoints

List all endpoints in a specific category.

get_api_endpoint_details

Get detailed information about a specific endpoint.

execute_api_call

Execute an API call with path, method, parameters, and data.

send_raw_api_request

Send a raw API request in the format 'METHOD /path [JSON body]'.

save_to_fast_memory

Manually save an API query to Fast Memory.

list_fast_memory

List all queries saved in Fast Memory.

delete_from_fast_memory

Delete a specific query from Fast Memory.

clear_fast_memory

Clear all queries from Fast Memory.

The API Gateway MCP server provides several tools for working with the ConnectWise API:

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "connectwise manage api": {
            "env": {
                "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
                "CONNECTWISE_COMPANY_ID": "your_company_id",
                "CONNECTWISE_PUBLIC_KEY": "your_public_key",
                "CONNECTWISE_AUTH_PREFIX": "yourprefix+",
                "CONNECTWISE_PRIVATE_KEY": "your_private_key"
            },
            "args": [
                "-y",
                "@jasondsmith72/CWM-API-Gateway-MCP"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key"
    },
    "args": [
        "-y",
        "@jasondsmith72/CWM-API-Gateway-MCP"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key"
    },
    "args": [
        "-y",
        "@jasondsmith72/CWM-API-Gateway-MCP"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "@jasondsmith72/CWM-API-Gateway-MCP"
    ],
    "command": "cmd"
}

ConnectWise API Gateway MCP Server

This Model Context Protocol (MCP) server provides a comprehensive interface for interacting with the ConnectWise Manage API. It simplifies API discovery, execution, and management for both developers and AI assistants.

Core Capabilities

- API Discovery: Search for and explore ConnectWise API endpoints using keywords or natural language
- Simplified API Execution: Execute API calls with friendly parameter handling and automatic error management
- Fast Memory System: Save and retrieve frequently used API queries for more efficient workflows
- Raw API Access: Send custom API requests with complete control over endpoints, methods, and parameters

Key Features

- Database-Backed API Discovery: Uses a SQLite database built from the ConnectWise API definition JSON for fast, efficient endpoint lookups
- Natural Language Search: Find relevant API endpoints using conversational descriptions of what you need
- Categorized API Navigation: Browse API endpoints organized by functional categories
- Detailed Documentation Access: View comprehensive information about API endpoints including parameters, schemas, and response formats
- Adaptive Learning: The system learns which API calls are most valuable to you through usage tracking

Installation & Setup

Prerequisites

- Python 3.10 or higher
- Access to ConnectWise Manage API credentials
- ConnectWise API definition file (manage.json) - included in the repository

Installation Steps

Option 1: Using GitHub NPM Package (Recommended)

You can install the package directly from GitHub:

npm install -g jasondsmith72/CWM-API-Gateway-MCP

This method automatically handles all dependencies and provides a simpler configuration for Claude Desktop.

Option 2: Manual Installation

Windows

1. Clone or download the repository:

   git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP

2. Install the package:

   pip install -e .

macOS

For the NPM installation method, simply run:

npm install -g jasondsmith72/CWM-API-Gateway-MCP

For manual installation:

1. Install Python 3.10+ if not already installed:

   # Using Homebrew
brew install python@3.10

# Or using pyenv
brew install pyenv
pyenv install 3.10.0
pyenv global 3.10.0

2. Clone the repository:

   git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP

3. Set up a virtual environment (recommended):

   python3 -m venv venv
source venv/bin/activate

4. Install the package:

   pip install -e .

Linux (Ubuntu/Debian)

For the NPM installation method, simply run:

sudo npm install -g jasondsmith72/CWM-API-Gateway-MCP

For manual installation:

1. Install Python 3.10+ if not already installed:

   # For Ubuntu 22.04+
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev python3-pip

# For older versions of Ubuntu/Debian
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev python3-pip

2. Clone the repository:

   git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP

3. Set up a virtual environment (recommended):

   python3.10 -m venv venv
source venv/bin/activate

4. Install the package:

   pip install -e .

Post-Installation Steps

After installing on any platform (Windows, macOS, or Linux), complete the following steps:

1. (Optional) Build the API Database

This repository already includes a pre-built database, so this step is optional. Only run this if you need to use a newer ConnectWise API definition file:

# On Windows
python build_database.py path/to/manage.json

On macOS/Linux

python3 build_database.py path/to/manage.json

This step only needs to be done once, or whenever the ConnectWise API definition changes.

2. Configure API Credentials

Set the following environment variables with your ConnectWise credentials:

CONNECTWISE_API_URL=https://na.myconnectwise.net/v4_6_release/apis/3.0
CONNECTWISE_COMPANY_ID=your_company_id
CONNECTWISE_PUBLIC_KEY=your_public_key
CONNECTWISE_PRIVATE_KEY=your_private_key
CONNECTWISE_AUTH_PREFIX=yourprefix+ # Prefix required by ConnectWise for API authentication

These credentials are used in the authentication process as follows:

- CONNECTWISE_API_URL: The base URL for all API requests to your ConnectWise instance

  url = f"{API_URL}{endpoint}"  # e.g., https://na.myconnectwise.net/v4_6_release/apis/3.0/service/tickets

- CONNECTWISE_COMPANY_ID: Included in the 'clientId' header of each request to identify your company

  headers = {'clientId': COMPANY_ID, ...}

- CONNECTWISE_PUBLIC_KEY and CONNECTWISE_PRIVATE_KEY: Used together with AUTH_PREFIX to create the basic authentication credentials

  username = f"{AUTH_PREFIX}{PUBLIC_KEY}"  # e.g., "yourprefix+your_public_key"
password = PRIVATE_KEY
credentials = f"{username}:{password}" # Combined into "yourprefix+your_public_key:your_private_key"

- CONNECTWISE_AUTH_PREFIX: Required prefix added before your public key in the authentication username. ConnectWise API requires this prefix to identify the type of integration (e.g., "api+", "integration+", etc.)

The final HTTP headers sent with every request will look like:

'Authorization': 'Basic [base64 encoded credentials]'
'clientId': 'your_company_id'
'Content-Type': 'application/json'

Configuration for Claude Desktop

There are two methods to integrate with Claude Desktop:

Method 1: Using NPM Package (Recommended)

Install the package using NPM:

npm install -g jasondsmith72/CWM-API-Gateway-MCP

Then configure Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "CWM-API-Gateway-MCP": {
      "command": "npx",
      "args": [
        "-y",
        "@jasondsmith72/CWM-API-Gateway-MCP"
      ],
      "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+"
      }
    }
  }
}

Method 2: Using Node.js Script (Alternate Method)

If you've cloned the repository and installed the dependencies, you can use the included Node.js script:

{
  "mcpServers": {
    "CWM-API-Gateway-MCP": {
      "command": "node",
      "args": ["C:/path/to/CWM-API-Gateway-MCP/bin/server.js"],
      "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+"
      }
    }
  }
}

Method 3: Using Direct Python Script Path

If you prefer to use the Python script directly:

{
  "mcpServers": {
    "CWM-API-Gateway-MCP": {
      "command": "python",
      "args": ["C:/path/to/CWM-API-Gateway-MCP/api_gateway_server.py"],
      "env": {
        "CONNECTWISE_API_URL": "https://na.myconnectwise.net/v4_6_release/apis/3.0",
        "CONNECTWISE_COMPANY_ID": "your_company_id",
        "CONNECTWISE_PUBLIC_KEY": "your_public_key",
        "CONNECTWISE_PRIVATE_KEY": "your_private_key",
        "CONNECTWISE_AUTH_PREFIX": "yourprefix+"
      }
    }
  }
}

For macOS and Linux, use the appropriate path format:

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.