[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# ConnectWise MCP server: Let your AI agent work your ConnectWise tickets.

> ConnectWise PSA has an official REST API but no ConnectWise-hosted MCP server (checked 6 Nov 2026). The API needs a Developer Network account, a clientId and an API member with a public and a private key. Cotlet adds 10 ConnectWise tools hosted, over MCP for agents and REST for scripts, with none of that setup.

Your agent reads service tickets, writes notes and logs time in ConnectWise PSA. You sign in once, with no API member, no clientId and no server to host. It works inside the ChatGPT and Claude apps.

- Free 7-day trial, no card
- Unofficial, not affiliated with ConnectWise
- Page: https://cotlet.dev/integrations/connectwise-api-mcp-server

## What can your AI agent do in ConnectWise?

- Triage new tickets by your rules
- Update customers with a note
- Log time on finished tickets
- Report on stale tickets
- Create tickets from a list
- Find a company and its tickets

## Does ConnectWise have an MCP server or an API?

- The REST API signs requests with the company ID, the member keys and a clientId header. ConnectWise approves a clientId on a form, "up to 3 business days".
- Zapier has an official ConnectWise Manage app with create actions for tickets, notes, companies and contacts. n8n has no official ConnectWise node.
- Community MCP servers built on the REST API exist on GitHub. You host them and give them your API keys.

| What you need | Official REST API | Community MCP server | Cotlet |
|---|---|---|---|
| Find tickets by board, status or priority | Yes, you code it | Yes | Yes |
| Read the notes of a ticket | Yes, you code it | Yes | Yes |
| Add a note, update or create a ticket | Yes, you code it | Yes | Yes, after your OK |
| Log and read time entries | Yes, you code it | Yes | Yes, after your OK |
| No API member, keys or clientId | No | No | Yes, your own sign-in |
| Runs in the ChatGPT and Claude apps, 24/7 | No | You host it | Yes, hosted |

Checked 6 Nov 2026. Sources: [ConnectWise Developer Network: sign-in and ClientId](https://developer.connectwise.com/), [Zapier Help: Get started with ConnectWise Manage on Zapier](https://help.zapier.com/hc/en-us/articles/40859374218253-How-to-get-started-with-ConnectWise-Manage-on-Zapier), [GitHub: mspstack/mcp-connectwise-psa](https://github.com/mspstack/mcp-connectwise-psa), [ConnectWise Docs: PSA integration, API members and keys](https://docs.connectwise.com/ITBoost/100/ConnectWise_Manage_Integration)

## How does the ConnectWise MCP server work?

1. **Sign in to ConnectWise.** Use your own PSA login.
2. **Connect your AI agent.** Paste one Cotlet address.
3. **Ask in plain words.** Your agent works the tickets.

We never keep your ConnectWise password, and no customer note or ticket change happens until you approve it.

## How to connect ConnectWise to your AI agent

Use MCP with your AI agent, or the same tools over REST in n8n, Make and scripts.

1. **Enable ConnectWise for agents.** Sign up, log in to ConnectWise PSA in its Cloud Browser, then press Enable for agents.
2. **Add the Cotlet address.** Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
3. **Approve the connection.** Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, `https://cotlet.dev/mcp/v1`, also carries ConnectWise next to your other apps. If you enable ConnectWise after connecting, refresh the connector so the new tools show up.

Claude:

```
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-connectwise \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

ChatGPT:

```
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
```

Cursor:

```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-connectwise": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
```

Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet-connectwise]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

n8n:

```
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: connectwise_read
```

Make, Zapier:

```
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: connectwise_write
```

## All 10 ConnectWise MCP tools

### Boards and tickets

Read boards first, so statuses and types are real names. A ticket can only use values that exist on its board.

- **List service boards** (`list_service_boards`, read): List the service boards with their statuses, types, subtypes and items.
- **List tickets** (`list_tickets`, read): List service tickets, filtered by board, status, priority, owner, company or text.
- **Get ticket** (`get_ticket`, read): Read one service ticket with its fields, resources and latest notes.
- **Create ticket** (`create_ticket`, write, asks first): Create a service ticket on a board.
- **Update ticket** (`update_ticket`, write, asks first): Change status, priority, type, subtype, item, owner or board of a ticket.

### Notes

Discussion, Internal and Resolution notes sit on separate tabs. Notes cannot be removed by these tools.

- **List ticket notes** (`list_ticket_notes`, read): Read the notes of a ticket, oldest first.
- **Add ticket note** (`add_ticket_note`, write, asks first): Add a Discussion, Internal or Resolution note to a ticket.

### Time entries

Time feeds invoices. Work type and work role change the billed rate, so the agent leaves them out unless you name them.

- **List time entries** (`list_time_entries`, read): List time entries by ticket, member or date range.
- **Add time entry** (`add_time_entry`, write, asks first): Log time on a ticket.

### Companies

Look up the company identifier before you create or filter tickets.

- **Search companies** (`search_companies`, read): Find companies by name or identifier.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/connectwise-api-mcp-server#tools

## Who can see my ConnectWise session, and how do I revoke it?

- **What we store.** Your logged-in ConnectWise profile, encrypted with AES-256-GCM, in Finland. Not the password.
- **What your agent gets.** The 10 ConnectWise tools. Never the cookie or your login.
- **What the session sees.** What your security role sees: tickets, notes, time, companies.
- **What no tool touches.** Invoices, agreements, members, security roles and deleting.
- **If ConnectWise asks to sign in.** You sign in again in your own browser, with your MFA. We never type it.
- **How to cut access.** Disable for agents, reset the browser, or end the session in ConnectWise.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory ([live results](https://cotlet.dev/security.md)).

## What can the agent do in my PSA?

You sign in with your own PSA login, so the agent sees and changes only what that login can. A technician role stays a technician role. Boards, tickets and companies you cannot open do not show up in a result.

Discussion notes are the ones customers can receive, so they wait for your OK. Internal and Resolution notes stay with your team.

How your PSA stays in your hands:

- Your own login and MFA, signed in by you
- The agent works inside your security role
- Notes, ticket changes and time wait for your OK by default
- No tool deletes a ticket, note or time entry
- You can switch the wait off per tool for a scheduled run

## What happens when ConnectWise changes?

- **12 h** between tests of the ConnectWise tools
- **$0** for a call to a ConnectWise tool paused for repair

When a ConnectWise screen moves or a field is renamed, the fix happens on our side and your prompts keep working. [status.cotlet.dev](https://status.cotlet.dev) watches the site, console and API every 3 minutes.

## Approvals, undo and mistakes

1. **Reads the ticket.** Status, owner and the latest notes, before it writes.
2. **Drafts the note.** Written from the thread, on the tab you name.
3. **Waits for your OK.** The note shows up in your Cotlet console first.
4. **Reports the result.** Ticket number, note id, time of posting.

| Action | Undo |
|---|---|
| Create a ticket | Close or edit it in PSA |
| Update status, priority or owner | Set the old value again in PSA |
| Add a Discussion note | No, customers may already have it |
| Add an Internal or Resolution note | Edit or delete it in PSA, if your role allows |
| Add a time entry | Edit or delete it in PSA before it is invoiced |

All 4 write tools ask first: create_ticket, update_ticket, add_ticket_note, add_time_entry. Reads reach nobody and run at once. Switch the wait off per tool for a scheduled run.

> A status change can run the rules of that board, such as closing, so check the board before you switch the wait off.

MCP call:

```
{
  "name": "add_ticket_note",
  "arguments": {
    "ticket_id": 30412,
    "note_type": "discussion",
    "text": "Hi Dana, the print service stopped on the server. We restart it at 1 pm and will confirm here when printing works."
  }
}
```

REST:

```
curl -X POST https://cotlet.dev/api/v1/connectwise/tickets/30412/note \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"note_type":"discussion","text":"Hi Dana, the print service stopped on the server. We restart it at 1 pm and will confirm here when printing works."}'
```

Tool output:

```
{
  "ticket_id": 30412,
  "note_id": 884140,
  "note_type": "discussion",
  "created_at": "2026-11-05T09:20:00Z"
}
```

Scripts and cron jobs reach the same tools over REST at `/api/v1/connectwise`, with the same key and price. A write over REST waits for your OK too and answers 202 until you approve it. A failed call costs nothing. The tools table lists the REST path of each tool.

## How much does the ConnectWise MCP server cost?

**About $65 a month** for one dispatcher at a small MSP, 11,180 credits. Your ConnectWise plan is billed by ConnectWise as before.

| Job | Calls | Credits |
|---|---|---|
| Triage new tickets, daily | 21 × 22 | 4,620 |
| Customer updates on open tickets, daily | 11 × 22 | 2,420 |
| Time entries for closed tickets, daily | 8 × 22 | 1,760 |
| Stale ticket report, weekly | 17 × 4 | 680 |
| Quarterly review tickets from a list | 10 × 2 | 200 |
| Cloud Browser, 30 days |  | 1,500 |
| Total |  | 11,180 |

- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- No ConnectWise API member or clientId to pay for or wait on

The month is our example: a small MSP with 10 to 25 technicians, about 10 new tickets a day, 22 working days. Dollars at the $29 pack rate. ConnectWise publishes no PSA prices; third-party buyer data (Vendr, February 2026) puts 10 to 25 users at $95 to $145 per user per month.

## ConnectWise MCP server on GitHub, Zapier or hosted: which to use

| Option | What it does | Where it stops |
|---|---|---|
| [mspstack/mcp-connectwise-psa](https://github.com/mspstack/mcp-connectwise-psa) | MIT, TypeScript. Tickets, notes, status, scheduling, time entries and timesheets. 6 stars, last push 7 Oct 2026. | You host it and give it a member's API keys and a clientId. |
| [taddiemason/Connectwise-MCP-Server](https://github.com/taddiemason/Connectwise-MCP-Server) | MIT, Docker bridge for OpenWebUI, read only. 5 stars, last push 30 Oct 2026. | Reads only, and needs API keys. |
| [Xssentials/connectwise-mcp](https://github.com/Xssentials/connectwise-mcp) | 21 tools for ConnectWise Manage. 1 star, last push 2 Sep 2026. | Local, API keys in a config file. |
| [Allied Business Solutions](https://www.pulsemcp.com/servers/allied-connectwise-manage) | 120 tools across service desk, projects, time, companies and finance, listed 25 Apr 2026. | Built on the REST API, so it needs API keys too. |
| [Pipedream](https://mcp.pipedream.com/app/connectwise_psa) | Hosted MCP for ConnectWise PSA on Pipedream's connected accounts. | Needs a Pipedream account and the API credentials. |
| [Zapier](https://zapier.com/apps/connectwise-manage/integrations) | Official ConnectWise Manage app: create tickets, notes, companies, contacts. | No time entry action, and notes arrive by polling. |

ConnectWise has no MCP server of its own (checked 6 Nov 2026). The community servers are good if you are happy to run one and keep the API keys safe. Cotlet is for the dispatcher who wants the same jobs inside ChatGPT or Claude without an API member, a clientId or a server.

## Who runs Cotlet

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the ConnectWise tools.

## ConnectWise MCP server: questions

### How do I connect ConnectWise to ChatGPT or Claude?

Sign up at cotlet.dev, log in to ConnectWise once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your ConnectWise account through Cotlet, in their phone apps too.

### What can ChatGPT do in ConnectWise?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in ConnectWise: triage new service tickets; update customers on open tickets; log time on finished tickets. You ask in plain words, and anything that reaches other people waits for your OK first.

### Does ConnectWise have an official MCP server?

Not that we could find (checked 6 Nov 2026). ConnectWise PSA has an official REST API and an official Zapier app. MCP servers for PSA come from the community and other vendors.

### How do I get access?

Create a free account at https://cotlet.dev, open ConnectWise under Integrations in the console and log in to ConnectWise PSA in its Cloud Browser. The trial starts with your first app, no card asked.

### Do I need a Developer Network account, a ClientId or API keys for Cotlet?

No. Cotlet works through your own ConnectWise sign-in, so you create no API member and no keys. The official REST API needs a Developer Network login, a ClientId and an API member with a public and a private key (ConnectWise Developer Network; ConnectWise Docs, PSA integration).

### Which notes can my customer see?

Discussion notes are sent to external and internal contacts. Internal and Resolution notes go only to internal contacts (ConnectWise Docs, Ticket Tab - Service Ticket). A Discussion note from your agent waits for your OK by default.

### Does it work with Claude and ChatGPT in the browser or on my phone?

Yes. Cotlet is hosted, so the chat apps reach it by the shared address. Nothing runs on your computer.

### Can I use it without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n or Make with your Cotlet key. The same tools, inputs and price as MCP.

### Is Cotlet affiliated with ConnectWise?

No. Cotlet is independent and not affiliated with ConnectWise, LLC.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
