autotask-mcp (WYRE-AI/autotask-mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 109 tools. No publisher has claimed this listing.
MCP server for Kaseya Autotask PSA — 39 tools for companies, tickets, projects, time entries, and more
Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
WYRE-AI
Source: github_topic · also listed on Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
autotask_test_connectionTest Autotask API connection
autotask_search_companiesSearch companies by name or status. Max 200/page.
autotask_create_companyCreate new company record
autotask_update_companyUpdate company record. invoiceTemplateID sets payment terms (103=Due on Receipt, 104=NET 30). Billing address fields separate from regular address.
autotask_get_company_site_configurationGet company site configuration records. Call first to discover available fields.
autotask_update_company_site_configurationUpdate company site configuration. Fields are tenant-defined; call get first.
autotask_search_contactsSearch contacts by name, email, or company. Max 200/page.
autotask_create_contactCreate new contact record
autotask_update_contactUpdate contact record. Only provided fields are changed.
autotask_search_ticketsSearch tickets by company, queue, status, priority. Use autotask_get_ticket_details for full data. Max 500/page.
autotask_get_ticket_detailsGet full ticket details including notes, time entries, and custom fields.
autotask_create_ticketCreate new ticket record
autotask_update_ticketUpdate ticket record. Only provided fields are changed.
autotask_get_ticket_chargeGet a specific ticket charge by ID
autotask_search_ticket_chargesSearch ticket charges (materials, costs, expenses). Provide ticketId for best performance. Max 10 if unfiltered.
autotask_create_ticket_chargeCreate charge on ticket for materials, costs, or expenses.
autotask_update_ticket_chargeUpdate an existing ticket charge. Only fields provided will be changed.
autotask_delete_ticket_chargeautotask_get_ticket_historyGet a single ticket history entry by ID. Each entry records one audited change to a ticket field (who, when, before/after).
autotask_search_ticket_historyGet the audit trail of field changes for a ticket (status transitions, assignment changes, priority edits, etc.). Use this to answer questions like "when did this ticket move from In Progress to Waiting Customer" or "who changed the priority". Returns entries ordered by Autotask; sort/filter client-…
autotask_search_resource_rolesList the billing roles a resource (user) holds in Autotask, with names and role IDs. A ticket assigned to a resource and every ticket/task time entry need one of these role IDs; this is where to find them instead of guessing. Give resourceId or resourceName. Active roles only unless includeInactive …
autotask_create_time_entryCreate a time entry in Autotask. Can be tied to a ticket or task, OR created as "Regular Time" (no parent) for meetings, admin work, etc. For Regular Time, specify a category like "Internal Meeting", "Office Management", "Training", etc.
autotask_search_projectsSearch for projects in Autotask. Returns 25 results per page by default. Use page parameter for more results.
autotask_create_projectCreate a new project in Autotask
autotask_update_projectUpdate an existing project in Autotask. Only the fields you provide will be updated. Common use case: set status=5 to mark a project Complete.
autotask_search_resourcesSearch for resources (users) in Autotask. Returns 25 results per page by default. Use page parameter for more results.
autotask_get_ticket_noteGet a specific ticket note by ticket ID and note ID
autotask_search_ticket_notesSearch for notes on a specific ticket. Iterating across many tickets trips Autotask's per-integration API threshold — scope the parent list first.
autotask_create_ticket_noteCreate a new note for a ticket
autotask_search_ticket_checklist_itemsList all checklist items on a ticket, including their completion status. Checklist items are a sub-resource of a ticket and cannot be queried without a ticket ID.
autotask_create_ticket_checklist_itemAdd a new checklist item to a ticket.
autotask_update_ticket_checklist_itemUpdate a checklist item on a ticket — edit text, mark complete/incomplete, or change position.
autotask_delete_ticket_checklist_itemautotask_get_project_noteGet a specific project note by project ID and note ID
autotask_search_project_notesSearch for notes on a specific project. Fan-out across many projects trips Autotask's API threshold (see issue #69) — scope the parent list (status, company, date range) first.
autotask_create_project_noteCreate a new note for a project
autotask_get_company_noteGet a specific company note by company ID and note ID
autotask_search_company_notesSearch for notes on a specific company. Iterating across many companies trips Autotask's API threshold — scope the parent list first.
autotask_create_company_noteCreate a new note for a company
autotask_get_ticket_attachmentGet a ticket attachment. With includeData=false (default) returns metadata only — fast, suitable for browsing. With includeData=true returns the base64 binary content via the top-level /TicketAttachments/{id} endpoint (the child endpoint never populates data). The attachment is verified to belong to…
autotask_search_ticket_attachmentsSearch for attachments on a specific ticket. Each parent triggers a separate query — scope the parent ticket list before iterating.
autotask_get_ticket_note_attachmentGet an attachment on a ticket NOTE (e.g. a pasted screenshot or file inside an internal note — distinct from attachments on the ticket itself). With includeData=false (default) returns metadata only — fast, suitable for browsing. With includeData=true returns the base64 binary content via the top-le…
autotask_search_ticket_note_attachmentsSearch for attachments on a specific ticket note — use this when autotask_search_ticket_notes returns a note with an empty or unhelpful `description`, since the real content is often a pasted image or file living on the note rather than in its text. Each note triggers a separate query — scope the pa…
autotask_create_ticket_attachmentUpload a file attachment to an existing ticket. The file content must be passed as a base64-encoded string in the `data` field (MCP is JSON-RPC, so binary bytes must be base64-encoded). Autotask enforces a 3 MB hard limit on ticket attachments; this tool validates the decoded size before calling the…
autotask_get_expense_reportGet a specific expense report by ID
autotask_search_expense_reportsSearch for expense reports with optional filters
autotask_create_expense_reportCreate a new expense report
autotask_create_expense_itemCreate an expense item on an existing expense report
autotask_get_quoteGet a specific quote by ID
autotask_search_quotesSearch for quotes with optional filters
autotask_create_quoteCreate a new quote
autotask_get_opportunityGet a specific opportunity by ID
autotask_search_opportunitiesSearch for opportunities with optional filters
autotask_create_opportunityCreate a new sales opportunity in Autotask
autotask_get_productGet a specific product by ID
autotask_search_productsSearch for products with optional filters
autotask_get_serviceGet a specific service by ID
autotask_search_servicesSearch for services with optional filters
autotask_get_service_bundleGet a specific service bundle by ID
autotask_search_service_bundlesSearch for service bundles with optional filters
autotask_get_quote_itemGet a specific quote item by ID
autotask_search_quote_itemsSearch for quote items, typically filtered by quote ID
autotask_create_quote_itemCreate a line item on a quote. Set exactly ONE item reference (serviceID, productID, or serviceBundleID). Required: quoteId, quantity. Defaults: unitDiscount=0, lineDiscount=0, percentageDiscount=0, isOptional=false.
autotask_update_quote_itemUpdate an existing quote item (quantity, price, etc.)
autotask_delete_quote_itemautotask_search_configuration_itemsSearch for configuration items in Autotask with optional filters
autotask_search_contractsSearch for contracts in Autotask with optional filters
autotask_get_contractGet a single contract by ID (header fields only, no service lines)
autotask_search_contract_servicesList the service line items on a contract (ContractServices): which catalog services are on the contract and at what contract-specific unit price. Read-only. Pair with autotask_search_contract_service_units for billed quantities, or use autotask_get_contract_recurring_lines for both in one call.
autotask_search_contract_service_unitsBilled unit rows for a contract (ContractServiceUnits): the quantity and contract price of each service line over a date range. By default returns only rows active today, i.e. what is currently being invoiced. Read-only.
autotask_search_contract_service_bundlesList the service-bundle line items on a contract (ContractServiceBundles). Read-only.
autotask_search_contract_service_bundle_unitsBilled unit rows for bundle lines on a contract (ContractServiceBundleUnits), active on a given day (default today). Read-only.
autotask_get_contract_recurring_linesRecurring-revenue roll-up for one contract: every service and bundle line with units active on a day, joined to the catalog (service name, vendor, billing period) and normalized to a monthly total. Returns { contractID, contractName, companyID, companyName, activeOn, lines[], monthlyTotal, monthlyCo…
autotask_list_expiring_contractsList contracts whose end date falls within the next N days (expiring-contracts report). Optionally include already-expired contracts, and scope to one company or the whole org.
autotask_search_invoicesSearch for invoices in Autotask with optional filters
autotask_get_invoice_detailsGet a single Autotask invoice with its nested line items (billing items posted to the invoice). Use for finance workflows that need to see exactly what an invoice contains.
autotask_search_tasksSearch for tasks in Autotask. Returns 25 results per page by default. Use page parameter for more results.
autotask_create_taskCreate a new task in Autotask
autotask_list_phasesList phases for a project in Autotask
autotask_create_phaseCreate a new phase in an Autotask project
autotask_list_queuesList all available ticket queues in Autotask. Use this to find queue IDs for filtering tickets by queue.
autotask_list_ticket_statusesList all available ticket statuses in Autotask. Use this to find status values for filtering or creating tickets.
autotask_list_ticket_prioritiesList all available ticket priorities in Autotask. Use this to find priority values for filtering or creating tickets.
autotask_get_field_infoGet field definitions for an Autotask entity type, including picklist values. Useful for discovering valid values for any picklist field.
autotask_search_billing_itemsSearch for billing items in Autotask. Billing items represent approved and posted billable items from the "Approve and Post" workflow. Returns 25 results per page by default.
autotask_get_billing_itemGet detailed information for a specific billing item by ID
autotask_search_billing_item_approval_levelsSearch for billing item approval levels. These describe multi-level approval records for Autotask time entries, enabling visibility into tiered approval workflows.
autotask_search_time_entriesSearch for time entries in Autotask. Returns 25 results per page by default. Time entries can be filtered by resource, ticket, task, date range, or approval status. Use approvalStatus="unapproved" to find entries not yet posted. There is no project filter — Autotask time entries have no project fiel…
autotask_list_categoriesList available tool categories. Use this to discover what types of Autotask operations are available before loading specific tools.
autotask_list_category_toolsList tools in a specific category with full schemas. Use after autotask_list_categories to see available tools and their parameters.
autotask_execute_toolExecute any Autotask tool by name. Use after discovering tools via autotask_list_category_tools.
autotask_routerIntelligent tool router - describe what you want to do and get the right tool suggestion with pre-filled parameters. Use this when unsure which tool to call.
autotask_get_service_callGet a specific service call by ID
autotask_search_service_callsSearch for service calls in Autotask. Filter by company, status, or date range.
autotask_create_service_callCreate a new service call in Autotask. Service calls are used to schedule and plan work on tickets.
autotask_update_service_callUpdate an existing service call. Use this to change status, times, or description. To complete/close a service call, set complete: true or update the status.
autotask_delete_service_callautotask_search_service_call_ticketsSearch for ticket associations on service calls. Use this to find which tickets are linked to a service call, or which service calls contain a specific ticket.
autotask_create_service_call_ticketLink a ticket to a service call. This associates the ticket with the service call for scheduling purposes.
autotask_delete_service_call_ticket9 further tools are not listed here. The complete surface is in the source.
AUTH_MODEAUTOTASK_API_URLAutotask API endpoint URLAUTOTASK_ENHANCE_CONCURRENCYMax concurrent Autotask API calls used to resolve company/resource names on search results. Kept low to stay under Autotask's concurrent-thread limit.AUTOTASK_IMPERSONATION_RESOURCE_IDAUTOTASK_INTEGRATION_CODEAutotask integration codeAUTOTASK_SECRETAutotask API secret keyAUTOTASK_USERNAMEAutotask API username (email)CONDUIT_S2S_SECRETLAZY_LOADINGLOG_FORMATLog output formatLOG_LEVELLogging levelMCP_HTTP_HOSTHTTP transport bind addressMCP_HTTP_PORTHTTP transport portMCP_SERVER_NAMEMCP server nameMCP_SERVER_VERSIONMCP_TRANSPORTThe server supports the MCP Streamable HTTP transport for remote deployments (e.g., Docker, cloud hosting). Set =http to enable it.X_API_KEYX_API_SECRETX_API_URLX_IMPERSONATION_RESOURCE_IDX_INTEGRATION_CODETool annotations
7/109 tools have annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
103/109 tools missing one or more hints — autotask_test_connection (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); autotask_search_companies (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); autotask_create_company (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +100 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool test coverage
38/109 tools referenced in tests (35%)
Write tests that reference each tool by name so every tool has at least one test.
Readable source code
1 file are minified or bundled, which is usually build output rather than concealment
Ship unminified, readable source.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/wyre-ai/autotask-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check