- ConnectWise Manage MCP Server
ConnectWise Manage MCP Server
ConnectWise Manage MCP Server
A Model Context Protocol (MCP) server that allows Claude to interact with the ConnectWise Manage API. This enables Claude to perform various operations in ConnectWise Manage such as fetching tickets, updating records, querying configurations, and more.
Overview
This project creates an integration between Claude and ConnectWise Manage, allowing for natural language interactions with your PSA system. By leveraging the MCP architecture, Claude can seamlessly access and update information in ConnectWise Manage.
Installation
Prerequisites
- Node.js 18.x or higher
- ConnectWise Manage API credentials
- Company ID
- Public Key
- Private Key
- Client ID
Setup Instructions
-
Clone the repository:
git clone https://github.com/jasondsmith72/mcp-connectwise-manage.git cd mcp-connectwise-manage -
Install dependencies:
npm install -
Build the project:
npm run build -
Set up ConnectWise Manage API credentials:
Option 1: Create a .env file with the following values (see .env.example for a template):
CW_COMPANY_ID=your_company_id CW_PUBLIC_KEY=your_public_key CW_PRIVATE_KEY=your_private_key CW_CLIENT_ID=your_client_id CW_SERVER=https://your-instance.connectwise.comOption 2: Run the setup command and follow the prompts:
npx mcp-connectwise-manage setup -
Install the MCP server in Claude Desktop:
npx mcp-connectwise-manage install -
Restart Claude Desktop to activate the server.
Usage Examples
Once the server is installed and Claude is restarted, you can use the following prompts to interact with ConnectWise Manage:
Fetch Service Tickets
Can you get all my open service tickets from ConnectWise Manage?
Create a New Ticket
Create a new service ticket in ConnectWise Manage with the following details:
Summary: Network switch down
Company: Acme Corp (ID: 123)
Board: Network Issues (ID: 45)
Impact: High
Update a Ticket
Please update ticket 12345 in ConnectWise Manage to change the status to "Waiting Customer" and add a note saying "Waiting for customer to confirm the fix worked."
Check the examples directory for more detailed examples:
example-queries.md: Contains a comprehensive list of query examples for Claudeticket-example.js: Demonstrates direct API usage for ticket operations
Available Endpoints
The ConnectWise Manage MCP Server provides access to the following ConnectWise Manage API endpoints:
- Service Tickets: Get, create, and update tickets
- Companies: List companies and get company details
- Contacts: List company contacts
- Configurations: Query configurations
- Time Entries: Get and create time entries
- Projects: List projects
- Opportunities: List sales opportunities
Direct API Usage
If you want to use the ConnectWise Manage API functions directly in your code (outside of Claude), you can import the functions from the built package:
import { makeConnectWiseRequest } from 'mcp-connectwise-manage';
// Example: Get open tickets
const response = await makeConnectWiseRequest('getServiceTickets', {
conditions: 'status/id=1',
pageSize: 10
});
console.log(response.data);
See the examples directory for more detailed code samples.
Future Enhancements
- Add support for Attachments
- Implement caching for frequently accessed data
- Add support for batch operations
- Create a configuration utility for managing credentials
- Add support for webhooks to listen for ConnectWise events
Troubleshooting
If you encounter issues:
- Check your ConnectWise API credentials
- Verify the log file at
logs/connectwise.logfor detailed request/response data - Ensure your ConnectWise instance is accessible and your API keys have appropriate permissions
- Restart Claude Desktop after installing or updating the MCP server
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.