ConnectWise PSA
ConnectWise PSA (Manage) MCP server — tickets, time entries, companies, configurations, BYOK
Connector by selic · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying ConnectWise PSA?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/selic-mcp-connectwise-psa
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 34 read · 10 write · 1 delete
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 45
Read from the source code; the running server may list different tools.
Read 34 · Look things up without changing anything.
cw_db_find_querycw_db_find_tablecw_db_querycw_find_endpointcw_getcw_get_agreementcw_get_boardcw_get_companycw_get_configurationcw_get_contactcw_get_invoicecw_get_member
Show 22 more tools
cw_get_ticketcw_list_agreementscw_list_boardscw_list_company_sitescw_list_configurationscw_list_invoicescw_list_memberscw_list_my_timecw_list_my_timesheetscw_list_prioritiescw_list_schedule_entriescw_list_ticket_taskscw_list_ticket_timecw_list_unbilled_timecw_list_work_rolescw_list_work_typescw_member_availabilitycw_my_schedulecw_my_ticketscw_search_companiescw_search_contactscw_search_tickets
Write 10 · Create, change, send or run things.
cw_add_ticket_notecw_bundle_ticketscw_create_ticketcw_create_time_entrycw_db_save_querycw_schedule_ticketcw_submit_timesheetcw_update_schedule_entrycw_update_ticketcw_update_time_entry
Delete 1 · Delete, drop, revoke or wipe things.
cw_delete_schedule_entry
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
CW_PRIVATE_KEYCW_PUBLIC_KEY
Other settings (environment variables or headers).
CW_CLIENT_IDCW_COMPANY_IDCW_MEMBER_IDENTIFIERCW_SITE
Network hosts it talks to 1
github.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (45)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
cw_add_ticket_noteAdd ConnectWise Ticket NoteAdd a note to a ticket. Discussion notes are visible to the customer on portals/emails; internal notes are not. Notes are attributed to the member whose API keys this session uses.
cw_bundle_ticketsBundle ConnectWise Tickets Under a ParentAttach child tickets to a parent ticket (CW's bundling). SERVICE tickets only. Children that already have a parent are refused rather than re-parented, and every child is read back afterwards so the result says which ones actually attached. NOT UNDOABLE FROM HERE — detaching a bundled ticket is only possible in the ConnectWise UI, so check the ids before calling.
cw_create_ticketCreate ConnectWise TicketCreate a new SERVICE ticket on a board for a company. Project tickets cannot be created here — they need a project and a phase.
cw_create_time_entryLog ConnectWise Time EntryLog time against a ticket, service or project — the resource is detected from the id. Time is attributed to the member whose API keys this session uses. Provide time_start plus either time_end or hours. For a span containing a break, pass the REAL time_end and put the break in hours_deduct; passing a shortened `hours` instead makes ConnectWise display an end time that never happened. Work role and work type default to the ticket's unless given. The note can also be copied onto the ticket: add_to_detail is the CUSTOMER-VISIBLE Discussion, add_to_internal is staff-only Internal Analysis — leavin…
cw_db_find_queryFind a Saved ConnectWise Queryread-onlySearch the saved-query library — reporting SQL that already works against this database, shipped with the server or saved by earlier sessions. LOOK HERE BEFORE WRITING SQL: a saved query is already correct about the schema. Substitute any {{placeholders}} and run the statement with cw_db_query, editing it as needed.
cw_db_find_tableFind a ConnectWise Database Tableread-onlyFind which ConnectWise database table or view holds something — keyword search over a catalog of the cwwebapp_* schema with key columns and join hints. Database names do NOT match the REST API: tickets are SR_Service, and the reporting view is v_rpt_service. NEVER guess a table name — search here first. Use the result to write cw_db_query SQL, or prefer the named curated tool when one exists. The catalog carries key columns only; for a full column list run SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='…' through cw_db_query.
cw_db_queryQuery the ConnectWise Database (Read-Only SQL)read-onlyRun one read-only T-SQL SELECT against the on-prem ConnectWise Manage database — for cross-table reporting, aggregates and joins the REST API cannot express. ALWAYS bound the query: SELECT TOP n with a WHERE on a date column. This is the LIVE PRODUCTION database technicians are working in. Name the columns you need — tables carry 100+ columns and ntext bodies, and SELECT * blows the response budget after a handful of rows. Start from the v_rpt_* reporting views (v_rpt_service, v_rpt_time, v_rpt_company): they already join board, status, company and contact. Discover tables with cw_db_find_tabl…
cw_db_save_querySave a ConnectWise Query for LaterAdd a query to the saved-query library so later sessions can find it with cw_db_find_query. Save a query AFTER it has run successfully — never save SQL you have not executed. Describe what question it answers, not how it works: the description is what search matches. Parameterise anything date- or company-specific as {{placeholders}} and list them. This writes to the library file only — it never modifies ConnectWise.
cw_delete_schedule_entryDelete a ConnectWise Schedule Entrycan change or delete dataRemove a schedule entry from the dispatch board (e.g. to cancel a scheduled visit).
cw_find_endpointFind a ConnectWise API Endpointread-onlyDiscover which ConnectWise REST endpoint (and its filter fields) fits a task — search a curated catalog by keywords. Use the result with cw_get, or prefer the named curated tool when one exists.
cw_getCall any ConnectWise GET Endpointread-onlyRead-only GET for any ConnectWise REST path (the part after /apis/3.0, e.g. /procurement/purchaseorders). ALWAYS pass fields (CW records are huge). Filter with conditions (CW grammar: exact = for ids/names, 'contains' for text, dates as [2026-07-01T00:00:00Z]); filter on child collections (e.g. a company's types) with child_conditions; sort with order_by. Endpoints with their OWN query parameters (e.g. /system/audittrail needs type+id, /system/documents needs recordType+recordId) take them via params: {"type":"Ticket","id":123}. Discover paths with cw_find_endpoint.
cw_get_agreementGet ConnectWise Agreementread-onlyGet one agreement (contract) with its coverage limits and billing cycle. Read-only.
cw_get_boardGet ConnectWise Board Statuses, Types, Sub-types, Items and Teamsread-onlyList what a service board allows — statuses, types, sub-types, items and teams. These are the exact names cw_create_ticket and cw_update_ticket take, and they are BOARD-SCOPED: the same name means a different id on another board. Get the board id from cw_list_boards.
cw_get_companyGet ConnectWise Companyread-onlyGet one company by ID.
cw_get_configurationGet ConnectWise Configurationread-onlyGet one configuration with full details (serial, model, network, OS, warranty, notes).
Show 30 more tools
cw_get_contactGet ConnectWise Contactread-onlyGet one contact with their phone numbers and email addresses (communication items).
cw_get_invoiceGet ConnectWise Invoiceread-onlyGet one invoice by ID. Read-only.
cw_get_memberGet ConnectWise Memberread-onlyGet one member's dispatch profile: timezone, work role, location, capacity, and their working hours (resolved from the member's calendar, including the holiday list).
cw_get_ticketGet ConnectWise Ticketread-onlyGet one ticket with its most recent notes (newest first). Works for service and project tickets — the resource is detected from the id.
cw_list_agreementsList ConnectWise Agreementsread-onlyList service agreements (contracts), optionally filtered by company or status. Read-only.
cw_list_boardsList ConnectWise Service Boardsread-onlyList service boards. Use to discover exact board names for cw_search_tickets / cw_create_ticket, and board ids for cw_get_board (statuses and types).
cw_list_company_sitesList ConnectWise Company Sitesread-onlyList a company's sites (locations/addresses), with phone and timezone.
cw_list_configurationsList ConnectWise Configurationsread-onlyList configurations (devices/assets) — servers, firewalls, workstations — optionally filtered by company, name, or type. Useful during troubleshooting to find serials, IPs, and warranty info.
cw_list_invoicesList ConnectWise Invoicesread-onlyList invoices, optionally filtered by company, status, or invoice date range (YYYY-MM-DD). Read-only.
cw_list_membersList ConnectWise Membersread-onlyList members (technicians) for dispatch — each with timezone, working-hours calendar name, work role, and daily/schedule capacity. Filter by name or identifier; excludes inactive by default.
cw_list_my_timeMy ConnectWise Time Entriesread-onlyList time entries for the member this session acts as, newest first, optionally within a date range.
cw_list_my_timesheetsList My ConnectWise Timesheetsread-onlyList timesheets for the member this session acts as, newest first, with their status (Open, Submitted, Approved…). Use the id with cw_submit_timesheet.
cw_list_prioritiesList ConnectWise Prioritiesread-onlyList ticket priorities (exact names for cw_create_ticket / cw_update_ticket).
cw_list_schedule_entriesList ConnectWise Schedule Entriesread-onlyList dispatch/schedule entries, optionally filtered by member, ticket, or date range (dates as YYYY-MM-DD). Use to see who is scheduled for what and when.
cw_list_ticket_tasksList ConnectWise Ticket Tasksread-onlyList the task/checklist items on a ticket, with their done state.
cw_list_ticket_timeList Time Entries on a Ticketread-onlyList all time entries logged against a ticket (by any member), newest first. Works for service and project tickets.
cw_list_unbilled_timeList Unbilled Timeread-onlyList billable time entries not yet on an invoice — what's ready to bill. Filter by company or date range (YYYY-MM-DD). Read-only.
cw_list_work_rolesList ConnectWise Work Rolesread-onlyList work roles (used when logging time). Excludes inactive by default.
cw_list_work_typesList ConnectWise Work Typesread-onlyList work types (how time is classified — Remote, Onsite, …), for the work_type argument of cw_create_time_entry. Excludes inactive by default.
cw_member_availabilityConnectWise Member Availabilityread-onlyShow a member's booked vs free hours on a given day (YYYY-MM-DD): their schedule capacity minus the hours already scheduled that day.
cw_my_scheduleMy ConnectWise Scheduleread-onlyList schedule entries assigned to the member this session acts as, optionally within a date range.
cw_my_ticketsMy ConnectWise Ticketsread-onlyList open tickets assigned to the member this session acts as (owner or listed in resources). Includes project tickets as well as service tickets by default.
cw_schedule_ticketSchedule a ConnectWise TicketSchedule a service ticket to a member for a time window. Times are ISO-8601 (e.g. 2026-07-06T13:00:00Z). Creates a schedule entry on the dispatch board.
cw_search_companiesSearch ConnectWise Companiesread-onlySearch companies by name (substring). Use this to find the company ID needed by ticket and configuration tools.
cw_search_contactsSearch ConnectWise Contactsread-onlySearch contacts by name, optionally within one company.
cw_search_ticketsSearch ConnectWise Ticketsread-onlySearch tickets by company, board, status, summary text, or assigned member. Covers SERVICE and PROJECT tickets — ConnectWise keeps them apart, and ticket_type picks which. Defaults to open tickets only. Returns ticket ids for use with cw_get_ticket / cw_add_ticket_note / cw_create_time_entry.
cw_submit_timesheetSubmit ConnectWise TimesheetSubmit a timesheet for approval. Get the timesheet id from cw_list_my_timesheets; only Open timesheets can be submitted.
cw_update_schedule_entryUpdate a ConnectWise Schedule EntryReschedule or reassign a schedule entry, or mark it done. Times are ISO-8601. Only provided fields change.
cw_update_ticketUpdate ConnectWise TicketUpdate a ticket's status, priority, summary, or owner. Only provided fields change.
cw_update_time_entryUpdate ConnectWise Time EntryEdit an existing time entry — notes, start/end, break, billable flag, work role or work type. Only provided fields change. Duration is set by time_start/time_end (hours are derived, not edited directly); use hours_deduct for a break inside that span. Governed by your ConnectWise security role (typically your own entries).
Signals
- Stars
- 6
- Forks
- 1
- Open issues
- 1
- Last commit
- Oct 7, 2026 (24 days ago)
- Last release
- Oct 7, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.selic/mcp-connectwise-psa- Version
- 0.4.0
- Auth
- API key
- Packages
- npm mcp-connectwise-psa
- License
- MIT
- Repository
- github.com/selic/mcp-connectwise-psa
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from selic
- 0.594score
IT Glue
selic
IT Glue MCP server for MSPs — documents, flexible assets, semantic vector search, RBAC, and BYOK
ConnectorBFreshness: BLocal★ 5Claude Code +5 - 0.591score
Microsoft Planner
selic
Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled
ConnectorBFreshness: BLocal★ 4Claude Code +5
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get ConnectWise PSA running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
ConnectWise PSA MCP server. Agent Mart. https://agentmart.dev/connectors/selic-mcp-connectwise-psa (last updated 2026-10-24)