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_connectionC | Test Autotask API connection |
| autotask_search_companiesC | Search companies by name or status. Max 200/page. |
| autotask_create_companyD | Create new company record |
| autotask_update_companyC | 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_configurationA | Get company site configuration records. Call first to discover available fields. |
| autotask_update_company_site_configurationB | Update company site configuration. Fields are tenant-defined; call get first. |
| autotask_search_contactsB | Search contacts by name, email, or company. Max 200/page. |
| autotask_create_contactC | Create new contact record |
| autotask_update_contactA | Update contact record. Only provided fields are changed. |
| autotask_search_ticketsA | Search tickets by company, queue, status, priority. Use autotask_get_ticket_details for full data. Max 500/page. |
| autotask_get_ticket_detailsB | Get full ticket details including notes, time entries, and custom fields. |
| autotask_create_ticketC | Create new ticket record |
| autotask_update_ticketB | Update ticket record. Only provided fields are changed. |
| autotask_get_ticket_chargeA | Get a specific ticket charge by ID |
| autotask_search_ticket_chargesA | Search ticket charges (materials, costs, expenses). Provide ticketId for best performance. Max 10 if unfiltered. |
| autotask_create_ticket_chargeB | Create charge on ticket for materials, costs, or expenses. |
| autotask_update_ticket_chargeB | Update an existing ticket charge. Only fields provided will be changed. |
| autotask_delete_ticket_chargeA | ⚠ 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_create_time_entryA | 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_projectsB | Search for projects in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_create_projectC | Create a new project in Autotask |
| autotask_update_projectA | 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_resourcesC | Search for resources (users) in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_get_ticket_noteB | Get a specific ticket note by ticket ID and note ID |
| autotask_search_ticket_notesB | Search for notes on a specific ticket |
| autotask_create_ticket_noteB | Create a new note for a ticket |
| autotask_search_ticket_checklist_itemsA | 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_itemB | Add a new checklist item to a ticket. |
| autotask_update_ticket_checklist_itemA | Update a checklist item on a ticket — edit text, mark complete/incomplete, or change position. |
| autotask_delete_ticket_checklist_itemA | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a checklist item from a ticket. This action cannot be undone. Confirm with the user before invoking. |
| autotask_get_project_noteB | Get a specific project note by project ID and note ID |
| autotask_search_project_notesB | Search for notes on a specific project |
| autotask_create_project_noteB | Create a new note for a project |
| autotask_get_company_noteA | Get a specific company note by company ID and note ID |
| autotask_search_company_notesB | Search for notes on a specific company |
| autotask_create_company_noteB | Create a new note for a company |
| autotask_get_ticket_attachmentA | Get a specific ticket attachment by ticket ID and attachment ID |
| autotask_search_ticket_attachmentsB | Search for attachments on a specific ticket |
| autotask_create_ticket_attachmentA | Upload a file attachment to an existing ticket. The file content must be passed as a base64-encoded string in the |
| autotask_get_expense_reportB | Get a specific expense report by ID |
| autotask_search_expense_reportsC | Search for expense reports with optional filters |
| autotask_create_expense_reportC | Create a new expense report |
| autotask_create_expense_itemB | Create an expense item on an existing expense report |
| autotask_get_quoteA | Get a specific quote by ID |
| autotask_search_quotesB | Search for quotes with optional filters |
| autotask_create_quoteC | Create a new quote |
| autotask_get_opportunityB | Get a specific opportunity by ID |
| autotask_search_opportunitiesC | Search for opportunities with optional filters |
| autotask_create_opportunityB | Create a new sales opportunity in Autotask |
| autotask_get_productB | Get a specific product by ID |
| autotask_search_productsC | Search for products with optional filters |
| autotask_get_serviceA | Get a specific service by ID |
| autotask_search_servicesC | Search for services with optional filters |
| autotask_get_service_bundleA | Get a specific service bundle by ID |
| autotask_search_service_bundlesB | Search for service bundles with optional filters |
| autotask_get_quote_itemA | Get a specific quote item by ID |
| autotask_search_quote_itemsA | Search for quote items, typically filtered by quote ID |
| autotask_create_quote_itemA | 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_itemC | Update an existing quote item (quantity, price, etc.) |
| autotask_delete_quote_itemA | ⚠ 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_itemsC | Search for configuration items in Autotask with optional filters |
| autotask_search_contractsC | Search for contracts in Autotask with optional filters |
| autotask_search_invoicesC | Search for invoices in Autotask with optional filters |
| autotask_get_invoice_detailsA | 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_tasksA | Search for tasks in Autotask. Returns 25 results per page by default. Use page parameter for more results. |
| autotask_create_taskB | Create a new task in Autotask |
| autotask_list_phasesB | List phases for a project in Autotask |
| autotask_create_phaseB | Create a new phase in an Autotask project |
| autotask_list_queuesA | List all available ticket queues in Autotask. Use this to find queue IDs for filtering tickets by queue. |
| autotask_list_ticket_statusesA | List all available ticket statuses in Autotask. Use this to find status values for filtering or creating tickets. |
| autotask_list_ticket_prioritiesA | List all available ticket priorities in Autotask. Use this to find priority values for filtering or creating tickets. |
| autotask_get_field_infoA | Get field definitions for an Autotask entity type, including picklist values. Useful for discovering valid values for any picklist field. |
| autotask_search_billing_itemsB | 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_itemA | Get detailed information for a specific billing item by ID |
| autotask_search_billing_item_approval_levelsA | 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_entriesB | 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_categoriesA | List available tool categories. Use this to discover what types of Autotask operations are available before loading specific tools. |
| autotask_list_category_toolsA | List tools in a specific category with full schemas. Use after autotask_list_categories to see available tools and their parameters. |
| autotask_execute_toolA | Execute any Autotask tool by name. Use after discovering tools via autotask_list_category_tools. |
| autotask_routerA | 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_callA | Get a specific service call by ID |
| autotask_search_service_callsC | Search for service calls in Autotask. Filter by company, status, or date range. |
| autotask_create_service_callB | Create a new service call in Autotask. Service calls are used to schedule and plan work on tickets. |
| autotask_update_service_callA | 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_callA | ⚠ 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_ticketsA | 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_ticketB | Link a ticket to a service call. This associates the ticket with the service call for scheduling purposes. |
| autotask_delete_service_call_ticketA | ⚠ 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_resourcesB | Search for resource (technician) assignments on service call tickets. |
| autotask_create_service_call_ticket_resourceC | Assign a resource (technician) to a service call ticket. |
| autotask_delete_service_call_ticket_resourceA | ⚠ 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_contractB | 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_contractA | 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_serviceC | Add a ContractService (service line item) to an existing Contract. |
| autotask_update_contract_serviceA | Update an existing ContractService line on a Contract. Pass only fields you want to change. |
| autotask_raw_requestA | 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