Skip to content

Tools Reference

The server exposes 302 tools. Kind says whether a tool only reads, writes, or can delete; write tools that change many records or money default to a dry run and need an explicit confirmation. The full input schema of each tool is in src/handlers/tool.definitions.ts.

Vendor purchasing & billing reconciliation (Pax8 first): import every invoice line, map vendor customers and SKUs to Autotask companies and manufacturer offerings

ToolKindWhat it does
autotask_vendor_list_sourcesread-onlyVendor billing sources: the supported vendor adapters and file formats, every imported invoice (vendor, invoice number/date, lines, total, warnings, who imported it) and mapping coverage — vendor customers mapped to A…
autotask_vendor_import_invoicewritesImport a vendor billing file into the reconciliation store (Postgres only — nothing in Autotask changes).
autotask_vendor_get_linesread-onlyImported vendor invoice lines with filters, plus totals by charge class, cadence and customer.
autotask_reconcile_resolve_mappingwritesReview and decide the durable identity mappings reconciliation runs on (stored in the MCP’s Postgres; nothing in Autotask changes).
autotask_vendor_priceswritesThe vendor price reference reconciliation and catalog plans price from: partner cost and the vendor’s suggested price per SKU and term (MM / AM / monthly per month; AA / annual per year), each with its source and date.
autotask_catalog_plan_standardizeread-onlyBuild (read-only) a plan that brings the Autotask service catalog to one standard service per product and term, for the products we sell (on the vendor invoices or already in the catalog).
autotask_change_plan_reviewwritesReview and approve change plans (catalog standardization; contract pricing later).
autotask_change_plan_executewritesFINANCIAL — apply the APPROVED rows of a change plan to Autotask (confirm:true required).
autotask_reconcile_vendor_to_autotaskread-onlyReconcile one imported vendor invoice (default: the latest) against what customers are actually billed: each vendor line → its mapped Autotask company → every Recurring Service contract IN EFFECT for the invoice month…
autotask_reconcile_get_exceptionswritesWork the reconciliation exceptions.
autotask_vendor_pricing_policywritesHow “Price Should Be” is set (requirements §5).
autotask_reconcile_export_workbookread-onlyThe reconciliation workbook (.xlsx, base64 in contentBase64) for a run (default the latest): Executive Summary, Exceptions, All Vendor Lines, Customer Contracts, Unmatched / Internal / NFR, Approved Changes, Execution Audit, Pricing Policy.
autotask_pricing_build_change_planread-onlyBuild (nothing is written) a frozen, numbered CONTRACT change plan from a reconciliation run.
autotask_reconcile_check_sync_driftread-onlyRe-check every APPLIED catalog / contract plan row (last N days, default 120) against Autotask: a field that no longer holds the approved value — or a price adjustment whose effect (price / units from its effective da…
autotask_vendor_syncwritesPax8 Partner API (needs PAX8_CLIENT_ID / PAX8_CLIENT_SECRET in the server env; otherwise says how to set it up).
autotask_contract_plan_move_linesread-onlyBuild (nothing is written) a frozen plan that MOVES contract lines onto another service — Autotask can’t change a contract line’s service, so each move is two rows: (1) an adjustment adding the target service to the s…
autotask_contract_plan_wordingread-onlyBuild (nothing is written) a frozen plan that updates the INVOICE TEXT of existing contract lines (ContractServices and ContractServiceBundles invoiceDescription) to the catalog’s current wording.
autotask_change_plan_revertread-onlyBuild (nothing is written) an UNDO plan for an executed change plan, from the before-images it kept: updated fields are put back (a field changed again since is skipped as stale); a service the plan created is deactiv…
autotask_vendor_monitorread-onlyOne monitoring pass, each finding sent once as a notification (console → Notifications): a vendor with no invoice imported for 35+ days; subscriptions on the latest invoice renewing within 30 days (annual commitments …
autotask_billing_preinvoice_checkread-onlyRun BEFORE Approve & Post.
autotask_pricing_customer_noticeswritesCustomer notice for a contract pricing plan (default: the newest open one).

Connection testing and field/picklist discovery

ToolKindWhat it does
autotask_test_connectionwritesTest Autotask API connection
autotask_setup_checkread-onlyIs this PSArelay instance connected, and is its Autotask API user allowed to do what each module needs? Signs in (one usage read), names the API user, then probes READ access live for every entity the modules use — on…
autotask_report_gapwritesTell the MCP’s builders what you could NOT do.
autotask_get_api_usageread-onlyAutotask API budget (read-only, one upstream call).
autotask_get_actor_rosterread-onlyWho is a person and who is automation: every Autotask resource classified as human, service_account, integration, system or unknown, with the reason (registry, system-resource, mcp-api-user = this MCP’s own n8n/Nexus/…
autotask_get_operationsread-onlyThe operation log (correlation, MCP-007): which tool calls through this MCP wrote to Autotask, what each wrote (method, entity, id, time), and the ids that tie them to the caller — correlationId, decisionId (e.g. a He…
autotask_get_backpressureread-onlyShould a dispatcher (n8n, Hermes) send work to Autotask right now? Returns level ok / slow / stop, the reasons, retryAfterSeconds, and the inputs: tenant API usage % of the hourly limit (latest reading and its age; Au…
autotask_shadow_statusread-onlyState of the Postgres shadow — the read-only mirror of Tickets, TimeEntries, Tasks, Projects, Companies, Contacts, Contracts, ContractServices, ContractBlocks and Resources: per entity row count, whether the backfill …
autotask_shadow_queryread-onlyQuery the Postgres shadow with the SAME filter format as the Autotask API — [{op, field, value}], ops eq/noteq/gt/gte/lt/lte/beginsWith/endsWith/contains/exist/notExist/in/notIn, and {op:“and”|“or”, items:[…]} groups.
autotask_shadow_aggregateread-onlyGROUP BY over the Postgres shadow — counts and numeric sums, e.g. hours by contract by month: { entity:“TimeEntries”, filters:[{“op”:“eq”,“field”:“contractID”,“value”:29685345}], groupBy:[“resourceID”,“month:dateWorke…
autotask_shadow_syncwritesRun the Postgres shadow sync now (spends Autotask API calls within its per-run budget; skipped automatically above 50% hourly usage).
autotask_list_queueswritesList all available ticket queues in Autotask.
autotask_list_ticket_statuseswritesList all available ticket statuses in Autotask.
autotask_list_ticket_prioritieswritesList all available ticket priorities in Autotask.
autotask_get_field_infowritesGet field definitions for an Autotask entity type, including picklist values.
autotask_get_picklistsread-onlyActive values (value + label, and parentValue for dependent lists like subIssueType) of several picklist fields of an entity in ONE call, e.g. { entity: “Tickets”, fields: [“queueID”, “status”, “priority”, “source”] }…
autotask_resolve_picklist_valueread-onlyResolve a picklist label to its tenant-specific value id for any entity/field (e.g. Tasks/status/“Complete”, Projects/status/“In Progress”, Tickets/queueID).
autotask_resolve_record_referenceread-onlyResolve a canonical Autotask display reference like “T20260825.0006” to a single Ticket or Task.
autotask_whoamiread-onlyResolve the calling user to their Autotask resource — used for permissions and as the acting/proxy resource for data input (time entries, To-Dos, assignments).

Search, create, and update companies

ToolKindWhat it does
autotask_search_companieswritesSearch companies. Plain mode: searchTerm (name contains) + isActive (+ classification label or id, + companyType with classification), paged, max 200/page; each row carries classification as {id, label} or null. IDENT…
autotask_get_companyread-onlyThe complete company record by ID with creation metadata: every picklist labelled (company type, classification, territory, market segment, …), owner / created-by / impersonator resources and parent company named, UDFs with list labels.
autotask_find_company_contact_candidatesread-onlyGiven any of companyName, contactName, email, phone, domain, it searches contacts (exact email across all email fields, name, phone) and companies (normalized name, web domain, contacts’ email domain, phone), links th…
autotask_find_duplicate_companiesread-onlyLikely duplicates of ONE company (searched around it, not a tenant scan): same normalized name, web domain, phone, or company number — inactive companies and creation dates included, each with evidence and conflicts.
autotask_merge_discoverread-onlyFind candidate duplicate companies / contacts before a merge: by email (exact, across ALL THREE contact email fields, active and inactive, every page — no 200 cap), by company name (exact), or around given companyIds …
autotask_merge_dependency_inventoryread-onlyFor each company id (and / or contact id): every record pointing at it, per entity — contacts, tickets, projects, contracts (active ones counted), opportunities, quotes, sales orders, configuration items, service call…
autotask_merge_build_planwritesBuild a MERGE PLAN — addressed ONLY by numeric Autotask ids, one kind per plan.
autotask_merge_verifyread-onlyAfter the UI merges: re-reads every survivor and source of a merge plan and everything that pointed at the sources.
autotask_bulk_inactivatewritesBulk cleanup of PLACEHOLDER companies (e.g. the tens of thousands named “Gmail”) and their contacts — prepared from the Postgres mirror, pushed to Autotask by a background worker at a set pace, so no chat ever loops thousands of writes.
autotask_create_companywritesCreate new company record.
autotask_update_companywritesUpdate company record.
autotask_get_company_site_configurationwritesGet company site configuration records.
autotask_update_company_site_configurationwritesUpdate company site configuration.

Search and create contacts

ToolKindWhat it does
autotask_search_contactswritesSearch contacts. Plain mode: searchTerm (name or email) + companyID + isActive, paged, max 200/page. IDENTITY mode (read-only, used when any of email / name / firstName / lastName / phone is given): EVERY match with e…
autotask_get_contactread-onlyThe complete contact record by ID with creation metadata: company named, picklists labelled, UDFs with list labels.
autotask_find_duplicate_contactsread-onlyLikely duplicates of ONE contact across ALL companies (searched around it): any of its email addresses, its name, its phone — inactive contacts and creation dates included, each with evidence and conflicts.
autotask_create_contactwritesCreate new contact record
autotask_update_contactwritesUpdate contact record.
autotask_find_or_create_contactwritesFind a contact in a company, or create it if none exists.

Search, create, update tickets and manage ticket notes, attachments, charges, audit history, and the notification e-mails Autotask sent

ToolKindWhat it does
autotask_search_ticketswritesSearch tickets by title keyword, ticket number, company, contact, queue, status, priority, assignee, dates.
autotask_get_ticket_detailswritesGet full ticket details including notes, time entries, and custom fields.
autotask_set_ticket_contractwritesFINANCIAL — move a ticket to another contract, and its labor with it.
autotask_get_ticket_by_numberread-onlyThe complete ticket by number (T20261005.0123 — the T is optional) or ID, fully resolved: every picklist labelled (status, priority, queue, source, ticket type, issue/sub-issue type, SLA, category, creator type) and e…
autotask_get_ticket_change_historyread-onlyWho changed what on a ticket, oldest first: each TicketHistory event parsed into field / from / to (“Account changed from A to B” → field Account), with the actor named and classified — system (resource 4: workflow/tr…
autotask_get_ticket_email_contextread-onlyWhere an email-created ticket came from, from the ORIGINAL message Autotask’s email processor attached to the ticket (“Originating Email”, message/rfc822): From (display name + address), Reply-To (and whether it diffe…
autotask_create_ticketwritesCreate new ticket record
autotask_update_ticketwritesUpdate a ticket — only the fields given change.
autotask_start_work_on_ticketwritesStart working a ticket as the acting user: set its status to In Progress (or status) and, if it is UNASSIGNED, assign it to you with your default role.
autotask_add_ticket_updatewritesPost a progress update on a ticket in ONE call: a note, plus optionally a time entry and a status change.
autotask_move_ticket_to_companywritesSafely move a ticket to another company.
autotask_find_ticket_by_external_idread-onlyFind ticket(s) by external correlation id (occurrence/idempotency key).
autotask_search_ticket_configuration_itemsread-onlyList the additional configuration items linked to a ticket (TicketAdditionalConfigurationItems — the CIs beyond the ticket’s primary configurationItemID).
autotask_add_ticket_configuration_itemwritesLink an additional configuration item to a ticket (creates a TicketAdditionalConfigurationItems association).
autotask_remove_ticket_configuration_itemdestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Removes an additional configuration item link from a ticket (deletes the TicketAdditionalConfigurationItems association by its association id — NOT the CI itself).
autotask_get_ticket_notewritesGet a specific ticket note by ticket ID and note ID
autotask_search_ticket_noteswritesSearch for notes on a specific ticket.
autotask_create_ticket_notewritesCreate a new note for a ticket
autotask_get_ticket_attachmentwritesGet a ticket attachment.
autotask_search_ticket_attachmentswritesSearch for attachments on a specific ticket.
autotask_create_ticket_attachmentwritesUpload a file attachment to an existing ticket.
autotask_get_ticket_chargewritesGet a specific ticket charge by ID
autotask_search_ticket_chargeswritesSearch ticket charges (materials, costs, expenses).
autotask_create_ticket_chargewritesCreate charge on ticket for materials, costs, or expenses.
autotask_update_ticket_chargewritesUpdate an existing ticket charge.
autotask_delete_ticket_chargedestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a ticket charge record and all associated billing data.
autotask_get_ticket_historywritesGet a single ticket history entry by ID. Each entry records one audited change to a ticket field (who, when, before/after).
autotask_search_ticket_historywritesGet the audit trail of field changes for a ticket (status transitions, assignment changes, priority edits, etc.) as RAW TicketHistory rows.
autotask_search_notification_historyread-onlyNotification history (read-only): the e-mails Autotask actually SENT — ticket/time-entry notifications, workflow-rule e-mails, quote notes, surveys — and to whom.
autotask_report_ticket_throughputread-onlyTicket throughput / work-queue KPIs (read-only, #100).
autotask_report_request_segmentationread-onlyRequest segmentation dimension (read-only, #100).
autotask_search_checklist_librariesread-onlySearch reusable checklist libraries (standardized work-instruction checklists).
autotask_get_checklist_libraryread-onlyGet a checklist library by id, including its ordered items (from ChecklistLibraryChecklistItems: itemName, isImportant, position, knowledgebaseArticleID).
autotask_apply_checklist_library_to_ticketwritesApply a checklist library to a ticket — expands the library’s items into checklist items on the ticket (itemName / isImportant / position / knowledgebaseArticleID carried over).
autotask_create_maintenance_ticketwritesHigh-level maintenance-ticket orchestrator.
autotask_search_ticket_checklist_itemswritesList all checklist items on a ticket, including their completion status.
autotask_create_ticket_checklist_itemwritesAdd a new checklist item to a ticket.
autotask_update_ticket_checklist_itemwritesUpdate a checklist item on a ticket — edit text, mark complete/incomplete, or change position.
autotask_delete_ticket_checklist_itemdestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a checklist item from a ticket.

Search and create projects, tasks, phases, and project notes

ToolKindWhat it does
autotask_search_projectswritesSearch for projects in Autotask.
autotask_get_projectread-onlyGet a single project by ID with its full field set (status, type, lead, department, dates, estimated/actual time, contract, opportunity, UDFs, etc.).
autotask_update_projectwritesUpdate an existing project in Autotask.
autotask_get_project_structureread-onlyGet the normalized project outline: the project plus its phases nested by parentPhaseID, with tasks bucketed under each phase and any unphased tasks listed separately, plus a summary (phase/task counts, max phase depth, estimated hours).
autotask_get_complete_project_contextread-onlyAssemble the complete read-only context for a project in one call (the Project Builder input): the project, its nested phase/task hierarchy, the task dependency graph, the labor rollup, project notes and attachments, …
autotask_get_project_labor_summaryread-onlyProject labor summary: estimated vs actual and billable hours, variance, first/last worked dates, and a per-phase rollup.
autotask_export_project_blueprintread-onlyExport a project as a reusable, tenant-agnostic blueprint: the phase/task hierarchy with titles, estimated hours, and task type, WITHOUT tenant-specific ids, resource assignments, or absolute dates.
autotask_calculate_project_scheduleread-onlyDeterministically schedule a project build plan (no Autotask writes, no AI, no reference-project inference).
autotask_extract_project_scoperead-onlyFront of the SOW-to-project pipeline (#46 §8): deterministically parse a Statement of Work into a normalized, reviewable scope envelope — NO Autotask writes, NO AI, and it NEVER infers scope from a reference project (…
autotask_classify_projectread-onlyProject classification (#46 §7): deterministically map a project/scope to an archetype (e.g. construction/low-voltage, tech deployment, recurring consulting, compliance program, operational onboarding) so the pipeline…
autotask_calculate_bom_laborread-onlyBOM → calculated labor (#46 §9): deterministically turn BOM/scope quantities into CALCULATED labor hours using a caller-provided rate catalog, and normalize the quantities into repeated tasks.
autotask_generate_project_labor_planread-onlyDeterministic labor plan for a project build plan (no Autotask writes, no AI).
autotask_build_project_from_planwritesBuild engine: realize a validated project build plan as a real Autotask project — project → phases (parent-first) → tasks → task dependencies.
autotask_extend_projectwritesProject extension (#46 §2.4): add phases / tasks / dependencies to an EXISTING project by id — a change order, an added phase, a recurring month, a new site, or extra tasks.
autotask_create_projectwritesCreate a new project in Autotask
autotask_link_project_commercialwritesLink a project to its commercial records — contract and/or opportunity.
autotask_search_taskswritesSearch for tasks in Autotask.
autotask_get_taskread-onlyGet a single project task by ID with its full fields (projectID, phaseID, status, taskType, dates, estimatedHours, assigned resource + role, department, billing code, etc.).
autotask_get_task_by_numberread-onlyLook up a project task by its human-facing task number (e.g. “T20260922.0189”) and return the FULL task object in one call.
autotask_create_taskwritesCreate a new task in Autotask
autotask_update_taskwritesUpdate a project task.
autotask_complete_taskwritesMark a task complete. Sets the tenant’s “Complete” status (resolved from metadata, not hard-coded) and completedDateTime. projectID is looked up from the task if not supplied.
autotask_delete_taskread-onlyInspect a project task for deletion.
autotask_delete_task_with_timedestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Obsolete-task cleanup: deletes its TIME ENTRIES (each as its owner via impersonation), optionally removes secondary resources, then you delete the task itself in the UI (the API cannot delete tasks).
autotask_verify_task_time_entriesread-onlyWith expectedResourceIDs, reports how many of the expected resources have an entry (found/expected), which are missing, and which have more than one entry (duplicate).
autotask_close_meeting_taskwritesFinalize a meeting/closeout TASK safely — verify the downstream work, then mark the task complete.
autotask_list_task_resourcesread-onlyList the secondary (additional crew) resources on a task, with their roles.
autotask_add_task_resourcewritesAdd a secondary resource (additional crew member) to a task, optionally with a role.
autotask_remove_task_resourcedestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a secondary resource from a task by the TaskSecondaryResources row id (from list_task_resources).
autotask_list_task_predecessorsread-onlyList the predecessor dependencies for a task (tasks that must precede it), with lag days.
autotask_add_task_predecessorwritesAdd a predecessor dependency: predecessorTaskID must precede successorTaskID, with optional lag days.
autotask_remove_task_predecessordestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a task predecessor dependency by the TaskPredecessors row id (from list_task_predecessors or search_task_predecessors).
autotask_get_task_predecessorread-onlyGet a single TaskPredecessors dependency row by its id.
autotask_search_task_predecessorsread-onlySearch task dependency rows by either endpoint.
autotask_update_task_predecessorwritesUpdate a task dependency.
autotask_list_phaseswritesList phases for a project in Autotask
autotask_create_phasewritesCreate a new phase in an Autotask project
autotask_get_phaseread-onlyGet a single project phase by ID with its full fields (parentPhaseID, title, description, start/due dates, estimatedHours, phaseNumber, isScheduled).
autotask_update_phasewritesUpdate a project phase.
autotask_get_project_notewritesGet a specific project note by project ID and note ID
autotask_search_project_noteswritesSearch for notes on a specific project.
autotask_create_project_notewritesCreate a new note for a project
autotask_get_task_noteread-onlyGet a specific project-task note by task ID and note ID.
autotask_search_task_notesread-onlyList the notes on a project task.
autotask_create_task_notewritesCreate a note on a project task.
autotask_search_project_attachmentsread-onlyList attachment metadata on a project (name, type, size, attach date).
autotask_search_task_attachmentsread-onlyList attachment metadata on a project task.
autotask_get_project_attachmentread-onlyGet a project attachment.
autotask_create_project_attachmentwritesUpload a file attachment to an existing project.
autotask_get_task_attachmentread-onlyGet a project-task attachment.
autotask_create_task_attachmentwritesUpload a file attachment to an existing project task.

Time entries, billing items, and expense management

ToolKindWhat it does
autotask_create_time_entrywritesCreate a time entry in Autotask.
autotask_create_task_time_entries_bulkwritesCreate one time entry PER ATTENDEE against a single project TASK for the same day — built for meeting/closeout logging (e.g. an RPO meeting task with five GDS attendees).
autotask_log_ticket_collaborationwritesCapture a collaborative work event on a TICKET (e.g. a Teams triage thread keyed by ticket #) in one call: a ticket time entry PER contributing tech + an optional ticket note (the narrative).
autotask_log_my_timewritesLog a time entry as the acting user, idempotently.
autotask_list_regular_time_categorieswritesList the Regular Time categories (read-only) — the internal, non-ticket/non-task time categories from Autotask’s Timesheet UI (e.g. Internal Meeting, Office Management, HR/Recruiting, Quote building, Research, Travel …
autotask_get_time_entry_targetswritesTime-entry target discovery (read-only) for EOD/backfill automation: given a resource, returns the valid things they can log time against — OPEN project tasks (completed tasks are excluded, since Autotask rejects time…
autotask_get_my_dayread-onlyThe acting user’s working picture for a date (default today in your local timezone): tickets assigned to them, the time they have already logged that day (split ticket/task/Regular Time), their open tasks, their servi…
autotask_search_time_entrieswritesSearch for time entries in Autotask.
autotask_get_time_entryread-onlyGet a time entry by ID. The record distinguishes actual worked time (hoursWorked) from Autotask billing-rounded time (hoursToBill).
autotask_update_time_entrywritesUpdate a time entry (collection PATCH).
autotask_delete_time_entrydestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently delete one time entry.
autotask_search_billing_itemswritesSearch for billing items in Autotask.
autotask_get_billing_itemwritesGet detailed information for a specific billing item by ID
autotask_search_billing_item_approval_levelswritesSearch for billing item approval levels.
autotask_report_time_entry_complianceread-onlyTime-entry compliance / team hours (read-only, #100).
autotask_report_activity_without_timeread-onlyActivity without time — the Autotask side of a billable-time leakage audit (read-only).
autotask_search_audit_activityread-onlyNormalized event stream of everything attributable to one or more resources in a time window — the evidence layer under the activity reports.
autotask_get_activity_feedread-onlyIncremental, cursor-paged feed of ticket activity across the whole tenant — ticket field changes (status/queue/priority/assignee/contract/… with before → after, from TicketHistory), ticket notes and time entries (crea…
autotask_backfill_historyread-onlyHistorical learning backfill (MCP-006), READ-ONLY toward Autotask: stores the history, notes and time entries of the tickets COMPLETED in a date range (max 366 days) in the MCP’s ledger, so autotask_get_activity_feed …
autotask_report_resource_activityread-onlyEverything each resource did in Autotask in a window (date + timeZone, or start/end): per resource, the event stream from autotask_search_audit_activity plus counts by entity type and action.
autotask_report_resource_daily_auditread-onlyEnd-of-day labor reconciliation for one or more resources on a date: TIME ENTERED (hours, entries); TICKETS and PROJECTS/TASKS TOUCHED (first/last activity, actions, whether time exists); SCHEDULING; CRM/ADMIN; CONFIG…
autotask_report_unbilled_timeread-onlyUnbilled-TIME leakage — the pre-invoice stage.
autotask_get_expense_reportwritesGet a specific expense report by ID
autotask_search_expense_reportswritesSearch for expense reports with optional filters
autotask_create_expense_reportwritesCreate a new expense report
autotask_search_expense_itemswritesSearch expense items (parking, mileage, meals, materials bought).
autotask_create_expense_itemwritesCreate an expense item on an existing expense report

Quotes, quote items, opportunities, invoices, and contracts

ToolKindWhat it does
autotask_get_quotewritesGet a specific quote by ID
autotask_search_quoteswritesSearch for quotes with optional filters
autotask_create_quotewritesCreate a new quote
autotask_get_quote_itemwritesGet a specific quote item by ID
autotask_search_quote_itemswritesSearch for quote items, typically filtered by quote ID
autotask_create_quote_itemwritesCreate a line item on a quote.
autotask_update_quote_itemwritesUpdate an existing quote item (quantity, price, etc.)
autotask_delete_quote_itemdestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a quote item (line item) from a quote.
autotask_get_opportunitywritesGet a specific opportunity by ID
autotask_search_opportunitieswritesSearch for opportunities with optional filters
autotask_create_opportunitywritesCreate a new sales opportunity in Autotask
autotask_update_opportunitywritesUpdate a sales opportunity.
autotask_search_invoiceswritesSearch Autotask invoices (the Invoice Batch screen).
autotask_get_invoice_detailswritesGet a single Autotask invoice with its full field set (sync/paid/void markers, billing period, totals) plus its line items (BillingItems posted to it) and the WORK it billed: linkedTicketIDs, linkedProjectIDs, linkedT…
autotask_search_contractswritesSearch for contracts in Autotask with optional filters
autotask_get_contractwritesGet a single contract by ID (header fields only, no service lines)
autotask_list_expiring_contractswritesList contracts whose end date falls within the next N days (expiring-contracts report).
autotask_create_contractwritesCreate a new Contract in Autotask.
autotask_create_contracts_bulkwritesCreate multiple contract shells (header records, no service lines) in one call — e.g. onboarding a customer with several location-based contracts.
autotask_update_contractwritesUpdate an existing Contract in Autotask (PATCH).
autotask_create_contract_servicewritesAdd a ContractService (service line item) to an existing Contract.
autotask_update_contract_servicewritesUpdate an existing ContractService line on a Contract.
autotask_get_contract_serviceread-onlyGet a single ContractService line by ID — the service entitlement on a contract (contractID, serviceID, quoteItemID, unitPrice, unitCost, internalDescription, invoiceDescription).
autotask_search_contract_servicesread-onlySearch ContractService lines (service entitlements on contracts).
autotask_get_contract_billed_unitsread-onlyBilled units per contract service line (read-only).
autotask_report_contract_recurring_revenueread-onlyRecurring-revenue roll-up for a contract (read-only): monthly (MRR) and annual (ARR) recurring revenue from its recurring service + bundle lines as of a date.
autotask_report_contract_labour_basisread-onlyContract labour-billing basis — the “is labour included in the fee” flag (dashboard gap #4).
autotask_get_contract_milestoneread-onlyGet a single ContractMilestone by id — a commercial milestone payment on a contract (title, amount, dateDue, status, description, billingCodeID, isInitialPayment).
autotask_search_contract_milestonesread-onlySearch contract milestones, primarily by contractID (all milestones on a contract).
autotask_create_contract_milestonewritesCreate a ContractMilestone on a contract.
autotask_update_contract_milestonewritesUpdate a ContractMilestone.
autotask_report_block_hour_usageread-onlyBlock-hour contract usage report.
autotask_report_ticket_chargesread-onlyTicket-charge report. Charges in a recent window with a fulfillment-status breakdown, billed vs unbilled counts, total billable amount, and a per-ticket rollup. Set unbilledOnly to surface the to-bill queue (charges n…
autotask_report_unbilledread-onlyUnbilled-work / revenue-leakage report.
autotask_report_project_plread-onlyProfitability (P&L) for a project, task, or ticket, bucketed by week or month — real burden cost vs realized revenue, not assumed margins.
autotask_report_sla_complianceread-onlySLA compliance report (read-only).
autotask_generate_sla_frameworkread-onlyITIL SLA setup helper (advisory, deterministic, no Autotask writes).
autotask_report_sla_coverageread-onlySLA coverage / readiness check (read-only, #102).
autotask_assign_contract_slawritesBulk-assign an SLA to contracts (#102).
autotask_analyze_ticket_billing_gapsread-onlyTicket-anchored billing-completeness check for review (read-only).
autotask_report_ticket_billing_gapsread-onlyWeekly ticket billing-gaps sweep for review (read-only).

Products, services, and service bundles catalog

ToolKindWhat it does
autotask_get_productwritesGet a specific product by ID
autotask_search_productswritesSearch for products with optional filters
autotask_find_productread-onlyClean, normalized product search across ALL identifiers — the usable layer over Autotask’s weak native search.
autotask_list_product_categoriesread-onlyList the productCategory picklist as a parent→child tree (categories are a hierarchical picklist named ‘Parent>Child>Grandchild’, not a REST entity).
autotask_find_catalog_gapsread-onlyFind products with data gaps for cleanup (read-only): missing productCategory, missing MSRP, or a weak description (empty, too short, or identical to the name).
autotask_find_duplicate_productsread-onlyFind duplicate-product candidate groups (read-only): products sharing a normalized identifier (sku, else manufacturerProductName, else name) are grouped, each with a suggested survivor (active > most complete > lowest…
autotask_bulk_update_productswritesBulk-update products for catalog cleanup (dry-run-first).
autotask_merge_productswritesMerge duplicate products (dry-run-first): keep survivorId, enrich it with any fields it’s missing from the duplicates (description/MSRP/category/part numbers/pricing), and mark the duplicate products inactive.
autotask_create_productwritesCreate a product in the catalog.
autotask_update_productwritesUpdate a catalog product by id.
autotask_search_inventory_productsread-onlyA product’s stock levels per location (InventoryProducts): onHandUnits, availableUnits, reservedUnits, pickedUnits, unitsOnOrder, quantityMinimum/Maximum, bin, referenceNumber.
autotask_get_inventory_productread-onlyGet one InventoryProducts record (a product’s stock at a location) by id.
autotask_create_inventory_productwritesStock a product at a location: create an InventoryProducts record.
autotask_update_inventory_productwritesUpdate an InventoryProducts record (stock levels/min-max/bin) by id.
autotask_search_inventory_locationsread-onlyInventory locations (warehouses / tech vans): locationName, isActive, isDefault, resourceID (a resource-linked location = a tech van).
autotask_get_inventory_locationread-onlyGet one InventoryLocations record by id.
autotask_create_inventory_locationwritesCreate an inventory location (warehouse or tech van).
autotask_update_inventory_locationwritesUpdate an inventory location by id (locationName, isActive, isDefault, resourceID).
autotask_search_inventory_stocked_itemsread-onlyIndividual stocked units (InventoryStockedItems): onHandUnits, availableUnits, serialNumber, statusID, unitCost, currentInventoryLocationID, vendorID, and consumption links (ticketChargeID / projectChargeID / pickedRemovedDateTime).
autotask_get_inventory_stocked_itemread-onlyGet one InventoryStockedItems record by id.
autotask_search_inventory_transfersread-onlyStock transfers between locations (InventoryTransfers): productID, fromLocationID, toLocationID, quantityTransferred, transferDate, notes, serialNumber.
autotask_create_inventory_transferwritesMove stock between locations (creates an InventoryTransfers record; mutates on-hand at both locations).
autotask_add_inventory_stockwritesAdd/receive stock — raise on-hand for an inventory product (InventoryStockedItemsAdd).
autotask_remove_inventory_stockdestructive⚠ DESTRUCTIVE/HIGH-IMPACT: Remove stock — lower on-hand for an inventory product (InventoryStockedItemsRemove), a write-down that is not easily reversible.
autotask_report_inventory_reorderread-onlyInventory reorder-control report.
autotask_report_inventory_closeoutsread-onlyInventory close-out report.
autotask_report_inventory_staleread-onlyInventory stale/trending report.
autotask_get_servicewritesGet a specific service by ID
autotask_search_serviceswritesSearch for services with optional filters
autotask_get_service_bundlewritesGet a specific service bundle by ID
autotask_search_service_bundleswritesSearch for service bundles with optional filters

Search Autotask resources (technicians/staff) and roles (for assignment / time entries)

ToolKindWhat it does
autotask_search_resourceswritesSearch for resources (users) in Autotask.
autotask_search_rolesread-onlySearch Autotask Roles (the roles used for ticket assignment and time entries).
autotask_get_resource_rolesread-onlyList the roles a resource (user) may act in (from ResourceRoles), enriched with roleName, departmentName, and queueName, and flagging the resource’s default service-desk role.
autotask_report_resource_burdenread-onlyPer-resource labour-burden report for cost / utilisation pages.

Search and read configuration items (assets/devices), including contract/service entitlement links and coverage gaps

ToolKindWhat it does
autotask_search_configuration_itemswritesSearch configuration items (assets) with optional filters, including native contract/service entitlement links.
autotask_get_configuration_itemwritesGet a single configuration item (asset) by ID with all current details, including entitlement fields (companyID, companyLocationID, contractID, contractServiceID, serviceID, isActive, serialNumber, installDate, warrantyExpirationDate).
autotask_create_configuration_itemwritesCreate a configuration item (managed asset) for a company.
autotask_update_configuration_itemwritesUpdate a configuration item: the same lifecycle surface as create, minus companyID, which Autotask will not let you change (a CI cannot be moved between companies; retire it with isActive:false and create a new one un…
autotask_get_configuration_item_entitlementread-onlyDetermine whether a configuration item is entitled to recurring service, and why.
autotask_search_configuration_item_coverage_gapsread-onlyList ACTIVE configuration items with no contract coverage (no contractID and no contractServiceID) — the uncovered assets for Sales / Account Management review.

Get, search, and create company notes

ToolKindWhat it does
autotask_get_company_notewritesGet a specific company note by company ID and note ID
autotask_search_company_noteswritesSearch for notes on a specific company.
autotask_create_company_notewritesCreate a new note for a company

Service call dispatching, ticket linking, and resource assignments

ToolKindWhat it does
autotask_reconcile_service_callread-onlyReconcile ONE service call against its linked ticket to catch billing leakage (read-only).
autotask_report_service_call_leakageread-onlyWeekly billing-leakage sweep (read-only): scans past-scheduled service calls in a look-back window and reconciles each, returning the ones with issues plus a digest — counts of done-not-closed / no-time-logged / parts…
autotask_report_tickets_needing_schedulingread-onlyTickets needing scheduling (read-only, #100).
autotask_search_service_callswritesSearch for service calls in Autotask.
autotask_get_service_callwritesGet a specific service call by ID
autotask_create_service_callwritesCreate a new service call in Autotask.
autotask_update_service_callwritesUpdate an existing service call.
autotask_delete_service_calldestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a service call and all associated data.
autotask_search_service_call_ticketswritesSearch for ticket associations on service calls.
autotask_create_service_call_ticketwritesLink a ticket to a service call.
autotask_delete_service_call_ticketdestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a ticket association from a service call.
autotask_search_service_call_ticket_resourceswritesSearch for resource (technician) assignments on service call tickets.
autotask_create_service_call_ticket_resourcewritesAssign a resource (technician) to a service call ticket.
autotask_delete_service_call_ticket_resourcedestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a resource assignment from a service call ticket.
autotask_search_service_call_taskswritesSearch service-call ↔ project-task associations.
autotask_create_service_call_taskwritesLink a PROJECT TASK to a service call — the task equivalent of autotask_create_service_call_ticket.
autotask_delete_service_call_taskdestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a task association from a service call.
autotask_search_service_call_task_resourceswritesSearch for resource (technician/attendee) assignments on service-call tasks.
autotask_create_service_call_task_resourcewritesAssign a resource (technician/attendee) to a service-call task — the task equivalent of autotask_create_service_call_ticket_resource.
autotask_delete_service_call_task_resourcedestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a resource assignment from a service call task.

Company To-Dos — CRM calendar follow-ups (distinct from tasks, checklist items, time entries, appointments, and service calls)

ToolKindWhat it does
autotask_get_company_todoread-onlyGet a Company To-Do (CRM calendar follow-up) by ID. A Company To-Do is NOT a ticket checklist item, project task, time entry, appointment, or service call.
autotask_search_company_todosread-onlySearch Company To-Dos (CRM calendar follow-ups).
autotask_create_company_todowritesCreate a Company To-Do (CRM calendar follow-up) via the company child route.
autotask_update_company_todowritesUpdate a Company To-Do via the company child route.
autotask_complete_company_todowritesComplete a Company To-Do by setting its completedDate to now (there is no isComplete field).
autotask_delete_company_tododestructive⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a Company To-Do.

Sell through Autotask: an offering catalog (recurring plans / add-ons, one-time services), quotes, and orders that set up the customer, users, contract, services, delivery ticket and charges in one approved plan, then track it to its invoice and payment

ToolKindWhat it does
autotask_commerce_offeringswritesThe OFFERING CATALOG for selling through Autotask: recurring plans / add-ons (an Autotask Service on a recurring service contract, optionally per unit — e.g. per user) and one-time services (a charge on a delivery tic…
autotask_commerce_quoteread-onlyPrice an order before placing it: lines [{ offering, quantity, unitPrice? }] → each line’s unit price (the offering’s, or its Autotask Service’s), totals one-time and recurring per period, and the modules it unlocks; …
autotask_commerce_orderwritesORDERS — sell, set up and track in one flow.

Autotask outbound webhook management — discover webhook-capable entities and inspect existing webhooks (read/discovery)

ToolKindWhat it does
autotask_list_webhook_entitiesread-onlyPrerequisite/discovery for webhook management (read-only, no I/O): lists the Autotask entities that support outbound webhooks (tickets, companies, contacts, configurationItems, ticketNotes) and the REST entity names b…
autotask_search_webhooksread-onlyList existing webhooks configured on a webhook-capable entity (read-only).
autotask_get_webhookread-onlyGet one webhook with its full configuration (read-only): the parent record plus its monitored standard fields, UDF fields, and EXCLUDED RESOURCES (the resources whose changes don’t fire it — the loop-prevention list).
autotask_create_webhookwritesCreate an outbound webhook on a webhook-capable entity (STANDING CONFIGURATION).
autotask_update_webhookwritesUpdate a webhook’s parent settings — activate/deactivate (isActive), change webhookUrl, toggle event subscriptions, notifications, owner, or secret (STANDING CONFIGURATION).
autotask_delete_webhookdestructive⚠ DESTRUCTIVE: Permanently delete a webhook (STANDING CONFIGURATION — cannot be undone).
autotask_set_webhook_excluded_resourceswritesManage a webhook’s excluded resources — the loop-prevention list (resources whose changes do NOT fire the webhook).

Tools for clients and operators: discovery, the mirror, backpressure, requests.

ToolKindWhat it does
autotask_list_categorieswritesList available tool categories.
autotask_list_category_toolswritesList tools in a specific category with full schemas.
autotask_execute_toolwritesExecute any Autotask tool by name.
autotask_routerwritesIntelligent tool router - describe what you want to do and get the right tool suggestion with pre-filled parameters.
autotask_raw_requestwritesEscape hatch for Autotask REST endpoints not yet wrapped by a typed tool.