Autotask MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NODE_ENV | No | Node.js environment | development |
| LOG_LEVEL | No | Logging level (error, warn, info, debug) | info |
| LOG_FORMAT | No | Log output format (simple, json) | simple |
| AUTOTASK_SECRET | Yes | Autotask API secret key | |
| MCP_SERVER_NAME | No | MCP server name | autotask-mcp |
| AUTOTASK_API_URL | No | Autotask API endpoint URL | https://webservices.autotask.net/atservices/1.6/atws.asmx |
| AUTOTASK_USERNAME | Yes | Autotask API username (email) | |
| MCP_SERVER_VERSION | No | MCP server version | 1.0.0 |
| AUTOTASK_INTEGRATION_CODE | Yes | Autotask integration code |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| autotask_test_connection | Test Autotask API connection |
| autotask_search_companies | Search companies by name or status. Max 200/page. |
| autotask_create_company | Create new company record |
| autotask_update_company | Update company record. invoiceTemplateID sets payment terms (103=Due on Receipt, 104=NET 30). Billing address fields separate from regular address. |
| autotask_get_company_site_configuration | Get company site configuration records. Call first to discover available fields. |
| autotask_update_company_site_configuration | Update company site configuration. Fields are tenant-defined; call get first. |
| autotask_search_contacts | Search contacts by name, email, or company. Max 200/page. |
| autotask_create_contact | Create new contact record |
| autotask_update_contact | Update contact record. Only provided fields are changed. |
| autotask_search_tickets | Search tickets by company, queue, status, priority. Use autotask_get_ticket_details for full data. Max 500/page. |
| autotask_get_ticket_details | Get full ticket details including notes, time entries, and custom fields. |
| autotask_create_ticket | Create new ticket record |
| autotask_update_ticket | Update ticket record. Only provided fields are changed. |
| autotask_get_ticket_charge | Get a specific ticket charge by ID |
| autotask_search_ticket_charges | Search ticket charges (materials, costs, expenses). Provide ticketId for best performance. Max 10 if unfiltered. |
| autotask_create_ticket_charge | Create charge on ticket for materials, costs, or expenses. |
| autotask_update_ticket_charge | Update an existing ticket charge. Only fields provided will be changed. |
| autotask_delete_ticket_charge | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a ticket charge record and all associated billing data. This action cannot be undone. Confirm with the user before invoking. |
| autotask_get_ticket_history | Get a single ticket history entry by ID. Each entry records one audited change to a ticket field (who, when, before/after). |
| autotask_search_ticket_history | Get 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-side if needed. |
| autotask_create_time_entry | Create a time entry in Autotask. Can be tied to a ticket, task, or project, 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_projects | Search for projects in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_create_project | Create a new project in Autotask |
| autotask_update_project | Update 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_resources | Search for resources (users) in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_get_ticket_note | Get a specific ticket note by ticket ID and note ID |
| autotask_search_ticket_notes | Search for notes on a specific ticket |
| autotask_create_ticket_note | Create a new note for a ticket |
| autotask_search_ticket_checklist_items | List 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_item | Add a new checklist item to a ticket. |
| autotask_update_ticket_checklist_item | Update a checklist item on a ticket — edit text, mark complete/incomplete, or change position. |
| autotask_delete_ticket_checklist_item | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a checklist item from a ticket. This action cannot be undone. Confirm with the user before invoking. |
| autotask_get_project_note | Get a specific project note by project ID and note ID |
| autotask_search_project_notes | Search for notes on a specific project |
| autotask_create_project_note | Create a new note for a project |
| autotask_get_company_note | Get a specific company note by company ID and note ID |
| autotask_search_company_notes | Search for notes on a specific company |
| autotask_create_company_note | Create a new note for a company |
| autotask_get_ticket_attachment | Get 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 the given ticketId. Oversized binaries are stripped from the response with a dataOmittedReason field — Autotask attachments can be up to 3 MB, which is ~4 MB as base64 and may exceed the MCP client tool-result limit (~1 MB). |
| autotask_search_ticket_attachments | Search for attachments on a specific ticket |
| autotask_create_ticket_attachment | Upload a file attachment to an existing ticket. The file content must be passed as a base64-encoded string in the |
| autotask_get_expense_report | Get a specific expense report by ID |
| autotask_search_expense_reports | Search for expense reports with optional filters |
| autotask_create_expense_report | Create a new expense report |
| autotask_create_expense_item | Create an expense item on an existing expense report |
| autotask_get_quote | Get a specific quote by ID |
| autotask_search_quotes | Search for quotes with optional filters |
| autotask_create_quote | Create a new quote |
| autotask_get_opportunity | Get a specific opportunity by ID |
| autotask_search_opportunities | Search for opportunities with optional filters |
| autotask_create_opportunity | Create a new sales opportunity in Autotask |
| autotask_get_product | Get a specific product by ID |
| autotask_search_products | Search for products with optional filters |
| autotask_get_service | Get a specific service by ID |
| autotask_search_services | Search for services with optional filters |
| autotask_get_service_bundle | Get a specific service bundle by ID |
| autotask_search_service_bundles | Search for service bundles with optional filters |
| autotask_get_quote_item | Get a specific quote item by ID |
| autotask_search_quote_items | Search for quote items, typically filtered by quote ID |
| autotask_create_quote_item | Create 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_item | Update an existing quote item (quantity, price, etc.) |
| autotask_delete_quote_item | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a quote item (line item) from a quote. This action cannot be undone. Confirm with the user before invoking. |
| autotask_search_configuration_items | Search for configuration items in Autotask with optional filters |
| autotask_search_contracts | Search for contracts in Autotask with optional filters |
| autotask_search_invoices | Search for invoices in Autotask with optional filters |
| autotask_get_invoice_details | Get 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_tasks | Search for tasks in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_create_task | Create a new task in Autotask |
| autotask_list_phases | List phases for a project in Autotask |
| autotask_create_phase | Create a new phase in an Autotask project |
| autotask_list_queues | List all available ticket queues in Autotask. Use this to find queue IDs for filtering tickets by queue. |
| autotask_list_ticket_statuses | List all available ticket statuses in Autotask. Use this to find status values for filtering or creating tickets. |
| autotask_list_ticket_priorities | List all available ticket priorities in Autotask. Use this to find priority values for filtering or creating tickets. |
| autotask_get_field_info | Get field definitions for an Autotask entity type, including picklist values. Useful for discovering valid values for any picklist field. |
| autotask_search_billing_items | Search 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_item | Get detailed information for a specific billing item by ID |
| autotask_search_billing_item_approval_levels | Search for billing item approval levels. These describe multi-level approval records for Autotask time entries, enabling visibility into tiered approval workflows. |
| autotask_search_time_entries | Search for time entries in Autotask. Returns 25 results per page by default. Time entries can be filtered by resource, ticket, project, task, date range, or approval status. Use approvalStatus="unapproved" to find entries not yet posted. |
| autotask_list_categories | List available tool categories. Use this to discover what types of Autotask operations are available before loading specific tools. |
| autotask_list_category_tools | List tools in a specific category with full schemas. Use after autotask_list_categories to see available tools and their parameters. |
| autotask_execute_tool | Execute any Autotask tool by name. Use after discovering tools via autotask_list_category_tools. |
| autotask_router | Intelligent 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_call | Get a specific service call by ID |
| autotask_search_service_calls | Search for service calls in Autotask. Filter by company, status, or date range. |
| autotask_create_service_call | Create a new service call in Autotask. Service calls are used to schedule and plan work on tickets. |
| autotask_update_service_call | Update 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_call | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a service call and all associated data. This action cannot be undone. Confirm with the user before invoking. |
| autotask_search_service_call_tickets | Search 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_ticket | Link a ticket to a service call. This associates the ticket with the service call for scheduling purposes. |
| autotask_delete_service_call_ticket | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a ticket association from a service call. This action cannot be undone. Confirm with the user before invoking. |
| autotask_search_service_call_ticket_resources | Search for resource (technician) assignments on service call tickets. |
| autotask_create_service_call_ticket_resource | Assign a resource (technician) to a service call ticket. |
| autotask_delete_service_call_ticket_resource | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a resource assignment from a service call ticket. This action cannot be undone. Confirm with the user before invoking. |
| autotask_create_contract | Create a new Contract in Autotask. Field names match the Autotask REST API exactly. status: 1=In Effect, 0=Inactive. Dates are ISO format (YYYY-MM-DD). |
| autotask_update_contract | Update an existing Contract in Autotask (PATCH). Pass only fields you want to change; everything except id is optional. status: 1=In Effect, 0=Inactive. |
| autotask_create_contract_service | Add a ContractService (service line item) to an existing Contract. |
| autotask_update_contract_service | Update an existing ContractService line on a Contract. Pass only fields you want to change. |
| autotask_raw_request | Escape hatch for Autotask REST endpoints not yet wrapped by a typed tool. Use sparingly — typed tools are preferred for safety. The existing Content-Type, Accept, ApiIntegrationcode, UserName, Secret headers are added automatically. The path is resolved against the zone-resolved base URL (https://webservices.autotask.net/ATServicesRest/v1.0). Pass queryParams as a flat object of string/number/boolean values; they will be URL-encoded and appended to the path. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| ticket-queue-review | Review open ticket queue, group by priority, and flag SLA risks |
| weekly-sla-report | Generate a weekly SLA performance summary for a client |
| escalation-summary | Summarize a ticket's full history to prepare for an escalation call |
| new-ticket-draft | Draft a well-structured Autotask ticket from a plain-language issue description |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| All Companies | List of all companies in Autotask |
| Company by ID | Get specific company details by ID |
| All Contacts | List of all contacts in Autotask |
| Contact by ID | Get specific contact details by ID |
| All Tickets | List of all tickets in Autotask |
| Ticket by ID | Get specific ticket details by ID |
| Time Entries | List of time entries in Autotask |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/asachs01/autotask-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server