Autotask MCP server Let your AI agent work your Autotask tickets.

Your agent searches tickets, adds notes and logs time in Autotask PSA. You sign in once, with no API user, no integration code and no server to host. It works inside the ChatGPT and Claude apps.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Autotask or Kaseya
Autotask logo Autotask Cloud Browser

11 tools Read and write

Tickets, notes, time

What can your AI agent do in Autotask? Service desk work, one ticket at a time.

  • Triage new tickets by your rules

  • Add a status note to a ticket

  • Log time from a daily summary

  • Chase tickets with no recent update

  • Create tickets from email requests

  • Find a company and its open tickets

REST API, MCP in alpha

Does Autotask have an MCP server or an API? An API yes, an alpha MCP server for Claude.

Autotask has an official REST API and, since this year, an official MCP server from Kaseya in alpha (checked 6 Nov 2026). Both run as an API user with an integration code that an admin sets up. Cotlet adds 11 Autotask tools hosted, over MCP for agents and REST for scripts, with none of that setup.

  • The REST API is free with your Autotask license. Autotask's help says the developer tools are for people with software development experience, and support is not part of a standard contract.
  • Kaseya's MCP server is published in github.com/kaseya/mcp-servers as an early-access release for Claude Desktop and Claude Code. Kaseya has no guidance for ChatGPT yet and plans OAuth 2.1 sign-in for FY27.
  • Zapier has an official Autotask app and a Zapier MCP page with actions to create tickets, notes and time entries. n8n has no Autotask node page.
The official REST API, Kaseya's alpha MCP server and Cotlet compared
What you need Official REST APIKaseya MCP (alpha)Cotlet
Search tickets by company, status or queue Yes, you code it Yes Yes
Add a note to a ticket Yes, you code it Yes Yes, after your OK
Create and update tickets, log time Yes, you code it Yes, with a preview Yes, after your OK
No API user or integration code No No Yes, your own sign-in
Changes logged under your name Under the API user Under the API user Yes, your own login
Runs in the ChatGPT and Claude apps, 24/7 No Claude Desktop and Code Yes, hosted

Checked 6 Nov 2026. Sources: Autotask developer help: General information about Autotask APIs · Autotask developer help: Defining an API User · Autotask developer help: REST API supportability, thresholds and limits · GitHub: kaseya/mcp-servers (Autotask, alpha) · Zapier: Autotask MCP

Set up once

How does the Autotask MCP server work? Sign in once, then ask in plain words.

  1. 1Sign in to Autotask

    Use your own login.

  2. 2Connect your AI agent

    Paste one Cotlet address.

  3. 3Ask in plain words

    Your agent works the tickets.

We never keep your Autotask password, and no note or ticket change happens until you approve it. Who can see your session

Any MCP client

How to connect Autotask to your AI agent

Use MCP with your AI agent, or the same tools over REST in n8n, Make and scripts.

  1. 1

    Enable Autotask for agents. Sign up, log in to Autotask in its Cloud Browser, then press Enable for agents.

  2. 2

    Add the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 3

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, https://cotlet.dev/mcp/v1, also carries Autotask next to your other apps. If you enable Autotask after connecting, refresh the connector so the new tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-autotask \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-autotask": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-autotask]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: autotask_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: autotask_write
7 read, 4 write

All 11 Autotask MCP tools

Tickets5

Read the options first, so status, priority and queue are your own labels. A label Autotask does not have fails at once and the error lists the valid ones.

  • search_tickets Find tickets by company, status, queue, priority, assignee or age. read

    Returns tickets with number, title, company, status, priority, queue, assignee, created and last activity date. Results come in pages: follow next_cursor until it is empty. You see the tickets your Autotask security level lets you see.

    MCP callautotask_read → search_tickets

    REST endpointGET https://cotlet.dev/api/v1/autotask/tickets/search

    Parameters

    Parameters: search_tickets
    NameTypeDescription
    query string string Text to look for in the ticket title.
    company_id integer integer Company ID from search_companies.
    status string string Status label as Autotask shows it; labels from list_ticket_options.
    queue string string Queue label; labels from list_ticket_options.
    priority string string Priority label; labels from list_ticket_options.
    assigned_to string string A resource name, "me" for your own tickets, or "unassigned".
    updated_before string string ISO date. Only tickets with no update since then.
    cursor string string Next page cursor from the previous call.

    Example response

    {
      "tickets": [
        {
          "ticket_id": 48213,
          "number": "T20261104.0007",
          "title": "Printer offline on reception",
          "company": "Acme Dental",
          "status": "New",
          "priority": "Medium",
          "queue": "Service Desk",
          "assignee": null,
          "created": "2026-11-04",
          "last_activity": "2026-11-04"
        },
        {
          "ticket_id": 48190,
          "number": "T20261103.0011",
          "title": "Cannot open shared drive",
          "company": "Brightwell Legal",
          "status": "In Progress",
          "priority": "High",
          "queue": "Service Desk",
          "assignee": "Sam Okafor",
          "created": "2026-11-03",
          "last_activity": "2026-11-05"
        }
      ],
      "next_cursor": null
    }
  • get_ticket Read one ticket with its description, contact and fields. read

    Returns the title, description, company, contact, status, priority, queue, assignee, due date and the ticket fields as Autotask shows them. Notes and time entries come from list_ticket_notes and list_time_entries.

    MCP callautotask_read → get_ticket

    REST endpointGET https://cotlet.dev/api/v1/autotask/tickets/{ticket_id}

    Parameters

    Parameters: get_ticket
    NameTypeDescription
    ticket_id integer required integer Ticket ID from search_tickets.

    Example input

    {
      "ticket_id": 1
    }

    Example response

    {
      "ticket_id": 48213,
      "number": "T20261104.0007",
      "title": "Printer offline on reception",
      "description": "The reception printer shows offline since this morning. Restarting did not help.",
      "company": "Acme Dental",
      "contact": "Lena Ortiz",
      "status": "New",
      "priority": "Medium",
      "queue": "Service Desk",
      "assignee": null,
      "due": "2026-11-06"
    }
  • list_ticket_options List the statuses, priorities and queues your Autotask account uses. read

    Returns the labels as your Autotask account shows them, so your agent uses your own names and not a guess. Call it before update_ticket or create_ticket.

    MCP callautotask_read → list_ticket_options

    REST endpointGET https://cotlet.dev/api/v1/autotask/ticket-options

    Parameters

    No parameters.

    Example response

    {
      "statuses": [
        "New",
        "In Progress",
        "Waiting Customer",
        "Complete"
      ],
      "priorities": [
        "Low",
        "Medium",
        "High",
        "Critical"
      ],
      "queues": [
        "Service Desk",
        "Projects",
        "Triage"
      ]
    }
  • create_ticket Open a new ticket for a company. writeasks first

    Creates the ticket as you and returns its ID and number. Autotask then runs its own rules for new tickets, such as workflow rules and notifications to the contact. By default you confirm each call; you can switch that off for this tool.

    MCP callautotask_write → create_ticket

    REST endpointPOST https://cotlet.dev/api/v1/autotask/companies/{company_id}/tickets

    Parameters

    Parameters: create_ticket
    NameTypeDescription
    company_id integer required integer Company ID from search_companies.
    title string required string Ticket title.
    description string string What the customer reported.
    contact_id integer integer Contact ID from search_contacts.
    priority string string Priority label from list_ticket_options.
    queue string string Queue label from list_ticket_options.

    Example input

    {
      "company_id": 1,
      "title": "title"
    }

    Example response

    {
      "ticket_id": 48230,
      "number": "T20261106.0003",
      "status": "New",
      "url": "https://ww5.autotask.net/Mvc/ServiceDesk/TicketDetail.mvc?ticketId=48230"
    }
  • update_ticket Change status, priority, queue or assignee of a ticket. writeasks first

    Changes only the fields you pass and returns the ticket as it is now. A label that Autotask does not have fails at once and the error lists the valid ones. Autotask rules and notifications can react to the change, for example to the assignee. By default you confirm each call; you can switch that off for this tool.

    MCP callautotask_write → update_ticket

    REST endpointPATCH https://cotlet.dev/api/v1/autotask/tickets/{ticket_id}

    Parameters

    Parameters: update_ticket
    NameTypeDescription
    ticket_id integer required integer Ticket ID from search_tickets.
    status string string Status label from list_ticket_options.
    priority string string Priority label from list_ticket_options.
    queue string string Queue label from list_ticket_options.
    assignee string string A resource name.

    Example input

    {
      "ticket_id": 1
    }

    Example response

    {
      "ticket_id": 48213,
      "status": "In Progress",
      "priority": "High",
      "queue": "Service Desk",
      "assignee": "Sam Okafor"
    }

Notes2

Notes can reach a customer or technician through Autotask notifications. Notes cannot be removed by these tools.

  • list_ticket_notes Read the notes on a ticket, newest first. read

    Returns each note with its title, text, author, date and publish setting. Newest first. Follow next_cursor for older notes.

    MCP callautotask_read → list_ticket_notes

    REST endpointGET https://cotlet.dev/api/v1/autotask/ticket-notes

    Parameters

    Parameters: list_ticket_notes
    NameTypeDescription
    ticket_id integer required integer Ticket ID from search_tickets.
    cursor string string Next page cursor from the previous call.

    Example input

    {
      "ticket_id": 1
    }

    Example response

    {
      "notes": [
        {
          "note_id": 90417,
          "title": "Status update",
          "body": "Driver reinstalled. Waiting for the client to test a print.",
          "author": "Sam Okafor",
          "created": "2026-11-05",
          "publish": "Internal"
        }
      ],
      "next_cursor": null
    }
  • add_ticket_note Add a note to a ticket. writeasks first

    Saves the note on the ticket and returns its ID and the publish setting Autotask applied. A note can reach the customer or the technician through Autotask notifications. By default you confirm each call; you can switch that off for this tool.

    MCP callautotask_write → add_ticket_note

    REST endpointPOST https://cotlet.dev/api/v1/autotask/tickets/{ticket_id}/note

    Parameters

    Parameters: add_ticket_note
    NameTypeDescription
    ticket_id integer required integer Ticket ID from search_tickets.
    body string required string Note text.
    title string string Note title.

    Example input

    {
      "ticket_id": 48213,
      "title": "Triage",
      "body": "Looks like a driver issue after the update. Moving to Service Desk, priority High."
    }

    Example response

    {
      "note_id": 90431,
      "ticket_id": 48213,
      "title": "Triage",
      "publish": "Internal",
      "created": "2026-11-06"
    }

Time entries2

Autotask can refuse time on a Complete ticket when its Service Desk setting prohibits it. The error says so.

  • list_time_entries Read the time entries logged on a ticket or by a person on a day. read

    Returns each entry with ticket, person, date, hours and summary. It adds up the hours per ticket in total_hours. You see the entries your Autotask security level lets you see.

    MCP callautotask_read → list_time_entries

    REST endpointGET https://cotlet.dev/api/v1/autotask/time-entries

    Parameters

    Parameters: list_time_entries
    NameTypeDescription
    ticket_id integer integer Ticket ID from search_tickets. Leave out to read by person and date.
    resource string string A resource name or "me". Used with date.
    date string string ISO date for the entries of one day.
    cursor string string Next page cursor from the previous call.

    Example response

    {
      "entries": [
        {
          "entry_id": 77120,
          "ticket_id": 48190,
          "resource": "Sam Okafor",
          "date": "2026-11-05",
          "hours": 1.5,
          "summary": "Remapped the shared drive"
        },
        {
          "entry_id": 77096,
          "ticket_id": 48190,
          "resource": "Sam Okafor",
          "date": "2026-11-04",
          "hours": 0.5,
          "summary": "First check"
        }
      ],
      "total_hours": 2,
      "next_cursor": null
    }
  • log_time_entry Log hours on a ticket. writeasks first

    Adds the entry under your own resource and returns it. Time is billable money, so it asks for your OK. Autotask can refuse time on a Complete ticket when its Service Desk setting prohibits it, and the error says so. By default you confirm each call; you can switch that off for this tool.

    MCP callautotask_write → log_time_entry

    REST endpointPOST https://cotlet.dev/api/v1/autotask/tickets/{ticket_id}/time-entries

    Parameters

    Parameters: log_time_entry
    NameTypeDescription
    ticket_id integer required integer Ticket ID from search_tickets.
    hours number required number Hours worked, for example 0.5.
    summary string required string What was done.
    date string string ISO date. Defaults to today.

    Example input

    {
      "ticket_id": 1,
      "hours": 1,
      "summary": "summary"
    }

    Example response

    {
      "entry_id": 77131,
      "ticket_id": 48190,
      "resource": "Sam Okafor",
      "date": "2026-11-06",
      "hours": 0.5,
      "summary": "Checked the shared drive mapping"
    }

Companies and contacts2

Look up the company and contact IDs before you create or filter tickets.

  • search_companies Find companies (accounts) by name. read

    Returns the company ID, name, phone and whether it is active. Use the ID in search_tickets, search_contacts and create_ticket.

    MCP callautotask_read → search_companies

    REST endpointGET https://cotlet.dev/api/v1/autotask/companies/search

    Parameters

    Parameters: search_companies
    NameTypeDescription
    query string required string Part of the company name.
    cursor string string Next page cursor from the previous call.

    Example input

    {
      "query": "query"
    }

    Example response

    {
      "companies": [
        {
          "company_id": 1182,
          "name": "Acme Dental",
          "phone": "+1 555 0142",
          "active": true
        }
      ],
      "next_cursor": null
    }
  • search_contacts Find the people at a company by name or email. read

    Returns the contact ID, name, email and phone. Use the contact ID in create_ticket.

    MCP callautotask_read → search_contacts

    REST endpointGET https://cotlet.dev/api/v1/autotask/companies/{company_id}/contacts/search

    Parameters

    Parameters: search_contacts
    NameTypeDescription
    company_id integer required integer Company ID from search_companies.
    query string string Part of the name or email.
    cursor string string Next page cursor from the previous call.

    Example input

    {
      "company_id": 1
    }

    Example response

    {
      "contacts": [
        {
          "contact_id": 5531,
          "name": "Lena Ortiz",
          "email": "lena@example.com",
          "phone": "+1 555 0143"
        }
      ],
      "next_cursor": null
    }
Encrypted, revocable

Who can see my Autotask session, and how do I revoke it?

  • What we store

    Your logged-in Autotask profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 11 Autotask tools. Never the cookie or your login.

  • What the session sees

    What your security level sees: tickets, notes, time, companies.

  • What no tool touches

    Contracts, billing, resources, security levels and deleting.

  • If Autotask asks to sign in

    You sign in again in your own browser, with your MFA. We never type it.

  • How to cut access

    Disable for agents, reset the browser, or end the session in Autotask.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Your level, your limits

What can the agent do in my Autotask? Exactly what your own security level allows.

You sign in with your own Autotask login, so the agent sees and changes only what that login can. A technician level stays a technician level. Tickets and companies you cannot open do not show up in a result.

Autotask notes set to All Autotask Users show in the outsourced copy of the ticket (Autotask developer help, 6 Nov 2026). Notes are the writes most likely to reach a customer, so they wait for your OK.

How your Autotask stays in your hands

  • Your own login and MFA, signed in by you
  • The agent works inside your security level
  • Notes, ticket changes and time wait for your OK by default
  • No tool deletes a ticket, note or time entry
  • You can switch the wait off per tool for a scheduled run
Tested every 12 h

What happens when Autotask changes? We repair the tool; your prompts stay the same.

between tests of the Autotask tools
12 h
for a call to an Autotask tool paused for repair
$0

When an Autotask screen moves or a field is renamed, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

4 tools ask first

Approvals, undo and mistakes Nothing is saved until you say so.

  1. 01 Reads the ticket Status, owner and the latest notes, before it writes.
  2. 02 Drafts the change A note or field update from the thread, with your own labels.
  3. 03 Waits for your OK The change shows up in your Cotlet console first.
  4. 04 Reports the result Ticket number, note ID, time of saving.
Which Autotask actions can be undone
ActionUndo
Create a ticketEdit it in Autotask; its rules and notifications may already have run
Update status, priority, queue or assigneeSet the old value again in Autotask
Add a noteNo automatic undo; a note for All Autotask Users shows in the outsourced copy
Log a time entryEdit or delete it in Autotask while it is not posted and the timesheet is unsubmitted

All 4 write tools ask first: create_ticket, update_ticket, add_ticket_note, log_time_entry. Reads reach nobody and run at once. Switch the wait off per tool for a scheduled run.

A new assignee or status can fire Autotask rules and notifications, so check your workflow rules before you switch the wait off.

MCP call
{
  "name": "add_ticket_note",
  "arguments": {
    "ticket_id": 48213,
    "title": "Triage",
    "body": "Looks like a driver issue after the update. Moving to Service Desk, priority High."
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/autotask/tickets/48213/note \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Triage","body":"Looks like a driver issue after the update. Moving to Service Desk, priority High."}'
Tool output
{
  "note_id": 90431,
  "ticket_id": 48213,
  "title": "Triage",
  "publish": "Internal",
  "created": "2026-11-06"
}

Scripts and cron jobs reach the same tools over REST at /api/v1/autotask, with the same key and price. A write over REST waits for your OK too and answers 202 until you approve it. A failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the Autotask MCP server cost?

About $70 a monthfor one service coordinator at a small MSP, 12,100 credits. Your Autotask plan is billed by Kaseya as before.

A month of Autotask jobs for one service coordinator, in credits
JobCallsCredits
Triage new tickets, daily22 × 224,840
Chase tickets with no recent note, daily13 × 222,860
Log time from a daily summary8 × 221,760
Tickets from email requests3 × 30900
Open tickets per company, weekly6 × 4240
Cloud Browser, 30 days1,500
Total12,100
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • No Autotask API user or integration code to set up

The month is our example: about 10 new tickets a day, 22 working days. Public ticket volumes come from vendor blogs, 800 a month for 5 technicians at Rev.io, so the numbers are our assumption. Dollars at the $29 pack rate. Kaseya publishes no Autotask PSA list price. Its one printed figure is $129 per user per month for the Kaseya 365 Ops bundle with Autotask Ultimate (reported by assigner.ai, 6 Nov 2026).

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Autotask MCP server on GitHub, Zapier or hosted: which to use Several exist; all run on an API user.

Other Autotask MCP servers and tools, checked 6 Nov 2026
OptionWhat it doesWhere it stops
kaseya/mcp-serversKaseya's official early-access servers for Autotask, Datto RMM and IT Glue, with skills. 16 stars, last commit 4 Nov 2026.Alpha. Claude Desktop and Claude Code only, runs on an API user and integration code.
WYRE-AI/autotask-mcpApache-2.0, TypeScript. 101 tools for companies, contacts, tickets, projects, time entries and notes, per its README. 62 stars, last commit 29 Oct 2026.You host it and give it an API user and integration code.
tegwin/AutotaskMCPGPL-3.0, Python MCP server. 10 stars, last commit 17 Sep 2026.You host it, with API credentials.
tphakala/autotask-mcpApache-2.0, Go implementation. 5 stars, last commit 8 Sep 2026.You host it, with API credentials.
ZapierOfficial Autotask app and a hosted MCP page: create tickets, ticket notes and time entries, find companies and contacts.Needs a Zapier account and an Autotask API connection.

The official and community servers are good if you are happy to create an API user and run or install one. Cotlet is for the coordinator or technician who wants the same jobs inside ChatGPT or Claude, under their own login, with no API user, no integration code and no server.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Autotask tools.

Autotask MCP server: questions

How do I connect Autotask to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Autotask once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Autotask account through Cotlet, in their phone apps too.

What can ChatGPT do in Autotask?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Autotask: triage new unassigned tickets; chase tickets with no recent update; log time from a daily summary. You ask in plain words, and anything that reaches other people waits for your OK first.

Does Autotask have an official MCP server?

Yes, in alpha (checked 6 Nov 2026). Kaseya publishes it in github.com/kaseya/mcp-servers for Claude Desktop and Claude Code. It uses an API user and an integration code. Kaseya calls it early access until OAuth 2.1 support arrives, planned for FY27.

How do I get access?

Create a free account at https://cotlet.dev, open Autotask under Integrations in the console and log in to Autotask in its Cloud Browser. The trial starts with your first app, no card asked.

Do I need an API user or an integration code?

No. Cotlet works in your own Autotask login, so no API-only user and no integration code are needed. Your security level still decides what your agent can see and change.

Does it work with Claude and ChatGPT in the browser or on my phone?

Yes. Cotlet is hosted, so the chat apps reach it by the shared address. Nothing runs on your computer.

Can I use it without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n or Make with your Cotlet key. The same tools, inputs and price as MCP.

Is Cotlet affiliated with Autotask?

No. Cotlet is independent and not affiliated with Autotask, Datto or Kaseya.

Give your agent access to Autotask.

Free 7-day trial with 2,000 credits, no card needed.