The ConnectWise Manage API Gateway 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.
manage.json
) - included in the repositorynpm install -g jasondsmith72/CWM-API-Gateway-MCP
Clone or download the repository:
shell
git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP
Install the package:
shell
pip install -e .
For the NPM installation method, simply run:
npm install -g jasondsmith72/CWM-API-Gateway-MCP
For manual installation:
Install Python 3.10+ if not already installed:
```shell
brew install [email protected]
brew install pyenv
pyenv install 3.10.0
pyenv global 3.10.0
```
Clone the repository:
shell
git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP
Set up a virtual environment (recommended):
shell
python3 -m venv venv
source venv/bin/activate
Install the package:
shell
pip install -e .
For the NPM installation method, simply run:
sudo npm install -g jasondsmith72/CWM-API-Gateway-MCP
For manual installation:
Install Python 3.10+ if not already installed:
```shell
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev python3-pip
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev python3-pip
```
Clone the repository:
shell
git clone https://github.com/jasondsmith72/CWM-API-Gateway-MCP.git
cd CWM-API-Gateway-MCP
Set up a virtual environment (recommended):
shell
python3.10 -m venv venv
source venv/bin/activate
Install the package:
shell
pip install -e .
# On Windows
python build_database.py path/to/manage.json
# On macOS/Linux
python3 build_database.py path/to/manage.json
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+
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+"
}
}
}
}
{
"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+"
}
}
}
}
{
"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+"
}
}
}
}
Tool | Description |
---|---|
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 |
Tool | Description |
---|---|
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]" |
Tool | Description |
---|---|
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 |
search_api_endpoints("tickets")
natural_language_api_search("find all open service tickets that are high priority")
execute_api_call(
"/service/tickets",
"GET",
{"conditions": "status/name='Open' and priority/name='High'"}
)
execute_api_call(
"/service/tickets",
"POST",
None, # No query parameters
{
"summary": "Server is down",
"board": {"id": 1},
"company": {"id": 2},
"status": {"id": 1},
"priority": {"id": 3}
}
)
send_raw_api_request("GET /service/tickets?conditions=status/name='Open'")
list_fast_memory()
save_to_fast_memory(
"/service/tickets",
"GET",
"Get all high priority open tickets",
{"conditions": "status/name='Open' and priority/name='High'"}
)
list_fast_memory()
list_fast_memory("search term")
delete_from_fast_memory(query_id)
clear_fast_memory()
The Fast Memory system is powered by a SQLite database (fast_memory_api.db
) that stores:
The database structure includes:
id
: Unique identifier for each saved querydescription
: User-provided description of what the query doespath
: API endpoint pathmethod
: HTTP method (GET, POST, PUT, etc.)params
: Query parameters in JSON formatdata
: Request body in JSON formattimestamp
: When the query was last usedusage_count
: How many times the query has been usedError: Database file not found at [path]
Please run build_database.py script first to generate the database
Solution: Run the build_database.py
script with the path to your ConnectWise API definition file:
python build_database.py path/to/manage.json
HTTP error 401: Unauthorized
Solution: Check your environment variables to ensure all ConnectWise credentials are correct:
CONNECTWISE_COMPANY_ID
, CONNECTWISE_PUBLIC_KEY
, and CONNECTWISE_PRIVATE_KEY
CONNECTWISE_AUTH_PREFIX
is set correctly for your environmentRequest timed out. ConnectWise API may be slow to respond.
Solution:
api_gateway/api_gateway.log
api_gateway/connectwise_api.db
api_gateway/fast_memory_api.db
Verify that the database is correctly built and accessible:
python test_database.py
For better performance with the ConnectWise API:
Use Specific Conditions: Narrow your queries with precise conditions
python
execute_api_call("/service/tickets", "GET", {
"conditions": "status/name='Open' AND dateEntered > [2023-01-01T00:00:00Z]"
})
Limit Field Selection: Request only the fields you need
python
execute_api_call("/service/tickets", "GET", {
"conditions": "status/name='Open'",
"fields": "id,summary,status,priority"
})
Paginate Large Results: Use page and pageSize parameters
python
execute_api_call("/service/tickets", "GET", {
"conditions": "status/name='Open'",
"page": 1,
"pageSize": 50
})
This software is proprietary and confidential. Unauthorized copying, distribution, or use is prohibited.
ConnectWise Manage API Gateway MCP Server for Claude
No releases published
No packages published