{"name":"io.github.selic/mcp-connectwise-psa","slug":"selic-mcp-connectwise-psa","title":"ConnectWise PSA","description":"ConnectWise PSA (Manage) MCP server — tickets, time entries, companies, configurations, BYOK","url":"https://mcp.market/server/selic-mcp-connectwise-psa","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":35,"stars":5,"forks":1,"downloads_week":68,"last_push_at":"2026-08-27T18:38:34.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/selic/mcp-connectwise-psa","website":"https://github.com/selic/mcp-connectwise-psa#readme","version":"0.4.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"mcp-connectwise-psa","version":"0.4.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"ConnectWise host (e.g. na.myconnectwise.net or an on-prem host; full URLs accepted)","isRequired":true,"name":"CW_SITE"},{"description":"ConnectWise login company id","isRequired":true,"name":"CW_COMPANY_ID"},{"description":"Integration clientId from developer.connectwise.com","isRequired":true,"name":"CW_CLIENT_ID"},{"description":"API member public key","isRequired":true,"isSecret":true,"name":"CW_PUBLIC_KEY"},{"description":"API member private key","isRequired":true,"isSecret":true,"name":"CW_PRIVATE_KEY"},{"description":"Member identifier the API keys belong to — enables \"my tickets\"/\"my time\" tools","name":"CW_MEMBER_IDENTIFIER"}]}],"tools":[{"name":"cw_add_ticket_note","description":"Add a note to a ticket. Discussion notes are visible to the customer on portals/emails;","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_create_ticket","description":"Create a new service ticket on a board for a company.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_create_time_entry","description":"Log time against a service ticket. Time is attributed to the member whose API keys this session uses.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_delete_schedule_entry","description":"Remove a schedule entry from the dispatch board (e.g. to cancel a scheduled visit).","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_find_endpoint","description":"Discover which ConnectWise REST endpoint (and its filter fields) fits a task — search a curated","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get","description":"Read-only GET for any ConnectWise REST path (the part after /apis/3.0, e.g. /procurement/purchaseorders).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_agreement","description":"Get one agreement (contract) with its coverage limits and billing cycle. Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_board","description":"List the statuses and types available on a service board — the exact names cw_update_ticket","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_company","description":"Get one company by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_configuration","description":"Get one configuration with full details (serial, model, network, OS, warranty, notes).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_contact","description":"Get one contact with their phone numbers and email addresses (communication items).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_invoice","description":"Get one invoice by ID. Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_member","description":"Get one member's dispatch profile: timezone, work role, location, capacity, and their working","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_get_ticket","description":"Get one ticket with its most recent notes (newest first).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_agreements","description":"List service agreements (contracts), optionally filtered by company or status. Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_boards","description":"List service boards. Use to discover exact board names for cw_search_tickets / cw_create_ticket,","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_company_sites","description":"List a company's sites (locations/addresses), with phone and timezone.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_configurations","description":"List configurations (devices/assets) — servers, firewalls, workstations — optionally filtered by","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_invoices","description":"List invoices, optionally filtered by company, status, or invoice date range (YYYY-MM-DD). Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_members","description":"List members (technicians) for dispatch — each with timezone, working-hours calendar name,","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_my_time","description":"List time entries for the member this session acts as, newest first, optionally within a date range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_my_timesheets","description":"List timesheets for the member this session acts as, newest first, with their status","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_priorities","description":"List ticket priorities (exact names for cw_create_ticket / cw_update_ticket).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_schedule_entries","description":"List dispatch/schedule entries, optionally filtered by member, ticket, or date range","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_ticket_tasks","description":"List the task/checklist items on a ticket, with their done state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_ticket_time","description":"List all time entries logged against a ticket (by any member), newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_unbilled_time","description":"List billable time entries not yet on an invoice — what's ready to bill. Filter by company","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_list_work_roles","description":"List work roles (used when logging time). Excludes inactive by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_member_availability","description":"Show a member's booked vs free hours on a given day (YYYY-MM-DD): their schedule capacity","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_my_schedule","description":"List schedule entries assigned to the member this session acts as, optionally within a date range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_my_tickets","description":"List open tickets assigned to the member this session acts as (owner or listed in resources).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_schedule_ticket","description":"Schedule a service ticket to a member for a time window. Times are ISO-8601","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_search_companies","description":"Search companies by name (substring). Use this to find the company ID needed by ticket and configuration tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_search_contacts","description":"Search contacts by name, optionally within one company.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_search_tickets","description":"Search service tickets by company, board, status, summary text, or assigned member.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cw_submit_timesheet","description":"Submit a timesheet for approval. Get the timesheet id from cw_list_my_timesheets;","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_update_schedule_entry","description":"Reschedule or reassign a schedule entry, or mark it done. Times are ISO-8601. Only provided fields change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_update_ticket","description":"Update a ticket's status, priority, summary, or owner. Only provided fields change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cw_update_time_entry","description":"Edit an existing time entry — its notes, start/end, billable flag, or work role. Only provided","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-26T11:34:43.977Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:34:44.083Z","components":{"code":{"score":25,"max":25,"notes":["18 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 30 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-connectwise-psa","version":"0.4.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-07T15:54:02.381Z","repositoryUrl":"git+https://github.com/selic/mcp-connectwise-psa.git","weeklyDownloads":68}],"repo":{"found":true,"owner":"selic","repo":"mcp-connectwise-psa","archived":false,"pushedAt":"2026-08-27T18:38:34Z","stars":5,"forks":1,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/305782245?v=4","ownerCreatedAt":"2010-09-19T12:24:05Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":5,"forks":1,"downloadsWeek":68,"license":"MIT","lastPushAt":"2026-08-27T18:38:34.000Z","score":35}}}},"grade_history":[],"reviews":[]}