Skip to content

Connectors · MSP & PSA

HaloPSA MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to HaloPSA and the rest of your systems. It gives your agent 465 HaloPSA actions (205 reads, 180 writes and 80 that wait for a confirmation) and holds the HaloPSA credential itself, so the agent never does. It paces HaloPSA's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "halopsa.tickets.list",  intent: "check which HaloPSA account is connected"}# List HaloPSA tickets · read · 1 upstream call
  • 465actionsin one signed file
  • 205readlook, never change
  • 180writecreate and update
  • 80wait for a yesdestructive, confirmed first

Set up

Connect HaloPSA in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect HaloPSA.

    OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.

    • client_idHaloPSA client id
    • client_secretHaloPSA client secret
    • tenant_hostWhere your HaloPSA lives: your tenant host
    account { op: "connections.requirements", service: "halopsa" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "halopsa.tickets.list" }# list halopsa tickets · read · 1 upstream callcheck { action: "halopsa.tickets.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

HaloPSA at a glance

Sign-in
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
You provide
client_idclient_secret
Setup fields
tenant_host
Limits we pace to
700 calls per 5 minutes, per connection
API covered
HaloPSA API 1, at your HaloPSA instance's API base URL, which you enter when connecting (path /api)
Built from
HaloPSA's documentation, read 8 September 2026haloacademy.halopsa.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
205 of 205 reads, for up to an hour; a write clears what it affects
Ready-made plans
11 in the store
Shared entities
22, so ask can line HaloPSA up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in HaloPSA.

465 actions in 20 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 205readlook, never change
  • 180writecreate and update
  • 80destructivewait for a confirmation
  1. CRM

    57

    26 read · 22 write · 9 destructive

    List HaloPSA agents · List HaloPSA end users · List HaloPSA clients · List HaloPSA sites

  2. Lookups

    51

    20 read · 21 write · 10 destructive

    List HaloPSA SLAs · Create a HaloPSA SLA · Get one HaloPSA SLA · Update a HaloPSA SLA

  3. Config

    41

    16 read · 16 write · 9 destructive

    List HaloPSA roles · Create a HaloPSA role · Get one HaloPSA role · Update a HaloPSA role

  4. Billing

    40

    17 read · 16 write · 7 destructive

    List HaloPSA invoices · List HaloPSA invoice payments · Create a HaloPSA invoice · Create a HaloPSA invoice payment

  5. Servicedesk

    35

    14 read · 16 write · 5 destructive

    List HaloPSA tickets · List HaloPSA ticket actions · Create a HaloPSA ticket · Create a HaloPSA ticket action

  6. Automation

    27

    10 read · 11 write · 6 destructive

    List HaloPSA workflows · Create a HaloPSA workflow · Create a HaloPSA webhook · List HaloPSA webhooks

  7. Contracts

    25

    12 read · 9 write · 4 destructive

    List HaloPSA client contracts · Create a HaloPSA client contract · Get one HaloPSA client contract · Update a HaloPSA client contract

  8. Sales

    23

    12 read · 8 write · 3 destructive

    List HaloPSA quotations · List HaloPSA opportunities · Create a HaloPSA quotation · Get one HaloPSA quotation

12 more areas · 166 actions
  • Catalogue 22
  • Documents 19
  • Procurement 19
  • Servicecatalogue 19
  • Assets 18
  • Knowledge 17
  • Scheduling 13
  • Time 12
  • Reporting 9
  • Projects 7
  • Email 6
  • Compliance 5

Top actions

The HaloPSA API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 398 of HaloPSA's 410 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
halopsa.tickets.listList HaloPSA ticketsList tickets from HaloPSA, filtered by advanced_search, agent_id, asset_id, client_id.readservice.ticket.list56 connectors
halopsa.agents.listList HaloPSA agentsList agents from HaloPSA, filtered by activeinactive, client_id, domain, includedisabled.readidentity.user.list474 connectors
halopsa.invoices.listList HaloPSA invoicesList invoices from HaloPSA, filtered by advanced_search, asset_id, client_id, contract_id.readfinance.invoice.list101 connectors
halopsa.client_contracts.listList HaloPSA client contractsList client contracts from HaloPSA, filtered by client_id, count, includeinactive, order.readservice.contract.list23 connectors
halopsa.actions.listList HaloPSA ticket actionsList ticket actions from HaloPSA, filtered by agentonly, conversationonly, count, end_date.readservice.ticket_note.list20 connectors
halopsa.invoice_payments.listList HaloPSA invoice paymentsList invoice payments from HaloPSA, filtered by client_id, count, invoice_id, order.readfinance.payment.list75 connectors
halopsa.quotations.listList HaloPSA quotationsList quotations from HaloPSA, filtered by client_id, count, order, orderdesc.readfinance.quote.list52 connectors
halopsa.slas.listList HaloPSA SLAsList SLAs from HaloPSA, filtered by showall.readservice.sla.list12 connectors
halopsa.tickets.createCreate a HaloPSA ticketCreate a new ticket in HaloPSA.writeservice.ticket.create54 connectors
halopsa.actions.createCreate a HaloPSA ticket actionCreate a new ticket action in HaloPSA.writeservice.ticket_note.create24 connectors
halopsa.tickets.updateUpdate a HaloPSA ticketChange fields on an existing ticket in HaloPSA.writeservice.ticket.update50 connectors
halopsa.tickets.deleteDelete a HaloPSA ticketPermanently delete a ticket from HaloPSA.destructiveservice.ticket.delete42 connectors

Try it

Prompts to paste into Claude.

Each one names the HaloPSA actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which HaloPSA invoices are more than 30 days overdue? Group them by customer with the total owed.

    callshalopsa.invoices.list

  2. Planwrite

    Check a client contract and open the renewal conversation in HaloPSA.

    callshalopsa.client_contracts.gethalopsa.clients.gethalopsa.recurring_invoices.listhalopsa.client_contracts.nextrefhalopsa.opportunities.create+1 more

  3. Plandestructive

    Onboard a user onto a site and open their setup ticket in HaloPSA. Ask me before anything is sent or changed.

    callshalopsa.users.searchhalopsa.sites.gethalopsa.users.updatehalopsa.user_roles.createhalopsa.tickets.create+1 more

  4. Writewrite

    Create a HaloPSA ticket in HaloPSA. Show me exactly what you will send before you save it.

    callshalopsa.tickets.create

  5. Across systemsread

    For each customer, how many invoices are in HaloPSA and how many tickets in HubSpot CRM?

    callshalopsa.invoices.listhubspot_crm.tickets.list

Across your systems

HaloPSA, joined to the rest of your business.

One ask fetches from HaloPSA and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • For each customer, how many invoices are in HaloPSA and how many tickets in HubSpot CRM?

    halopsa.invoices.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

  • For each customer, how many invoices are in HaloPSA and how many tickets in ServiceNow?

    halopsa.invoices.list + servicenow_table.incidents.list, on crm.company · ServiceNow

Also mapped by other connectorsidentity.user 517identity.group 239crm.company 227crm.contact 192work.project 116commerce.product 109identity.role 107finance.invoice 91
ask
ask {  intent: "for each customer, how many invoices are in HaloPSA and how many tickets in HubSpot CRM",  steps: [    { action: "halopsa.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },    { action: "hubspot_crm.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "inv",        right: "tix",        on: "crm.company",        group_by: "inv.company_name",        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

The plan store

Ready-made plans for HaloPSA.

11 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Close a stale ticket view after a human signs off

    Use it when A stale-ticket view has built up and someone wants it cleared out with one sign-off rather than ticket by ticket.

    A person decidesClose every ticket in view view id and post the closing note on each.

    Effect
    write
    Steps
    3 · loops
    Needs
    note, status id and view id
    Install
    halopsa-close-stale-tickets
  2. Triage open tickets and note the ones that need an agent

    Use it when An agent starts a shift and wants the client's open tickets read and annotated in one pass.

    Effect
    write
    Steps
    3 · loops
    Needs
    client id and note
    Install
    halopsa-triage-open-tickets
  3. Audit a client's assets and raise a renewal ticket

    Use it when Someone wants a client's asset register checked over and a renewal ticket raised from it.

    Effect
    write
    Steps
    4 · loops
    Needs
    audit note, client id and warranty end
    Install
    halopsa-asset-warranty-audit
  4. Approve a quote and turn it into a sales order

    Use it when A customer has accepted a quote and it needs approving and converting into a sales order.

    A person decidesApprove quote id for client client id and convert it to sales order sales order id.

    Effect
    write
    Steps
    5
    Needs
    client id, sales order id and search
    Install
    halopsa-quote-to-sales-order
  5. Review an agent's week and correct a mislogged entry

    Use it when An agent's week looks wrong and a single timesheet event needs correcting with the change recorded.

    Effect
    write
    Steps
    5
    Needs
    agent id, end date, hours, note, start date and timesheet event id
    Install
    halopsa-timesheet-week-review
  6. Check a client contract and open the renewal conversation

    Use it when A client contract is approaching its end date and the renewal needs opening with the numbers to hand.

    Effect
    write
    Steps
    6
    Needs
    agent id, client contract id, client id and target date
    Install
    halopsa-contract-renewal-check
  7. Turn a solved ticket into a knowledge base article

    Use it when A ticket has been solved in a way worth writing up for the knowledge base.

    A person decidesPublish a customer-facing KB article titled 'title' from ticket ticket id.

    Effect
    write
    Steps
    6
    Needs
    action id, body, ticket id and title
    Install
    halopsa-publish-kb-from-ticket
  8. Raise a purchase order when stock runs low

    Use it when Stock for an item has run low and a purchase order needs raising with the supplier.

    A person decidesRaise a purchase order with name for item item id.

    Effect
    write
    Steps
    6
    Needs
    client id, item id, lines and supplier search
    Install
    halopsa-purchase-order-from-stock
  9. Declare a service outage and tell the affected users

    Use it when A shared service has gone down and the outage needs declaring, broadcasting and tracked to recovery.

    Effect
    write
    Steps
    6
    Needs
    client id, service search, start date, status and user id
    Install
    halopsa-service-outage-broadcast
  10. Void a duplicate invoice after sign-off

    Use it when A customer or the finance team has spotted a duplicate invoice that must be voided.

    A person decidesVoid invoice id for client client id. Reason: reason.

    Effect
    destructive
    Steps
    5
    Needs
    client id, reason and search
    Install
    halopsa-void-duplicate-invoice
  11. Onboard a user onto a site and open their setup ticket

    Use it when A new starter needs their Halo user record pointed at the right site and a setup ticket raised.

    A person decidesMove name to site name and grant role role id.

    Effect
    destructive
    Steps
    7
    Needs
    client id, role id, search and site id
    Install
    halopsa-onboard-new-user
install a plan
account { op: "plans.install", slug: "halopsa-close-stale-tickets" }
# then ask for it by name; a schedule can run it on a timetable

Governance for HaloPSA

Destructive actions wait for a yes.

80 HaloPSA actions are destructive. The first 10:

  • Delete a HaloPSA tickethalopsa.tickets.delete
  • Delete a HaloPSA agenthalopsa.agents.delete
  • Delete a HaloPSA invoicehalopsa.invoices.delete
  • Delete a HaloPSA client contracthalopsa.client_contracts.delete
  • Delete a HaloPSA ticket actionhalopsa.actions.delete
  • Delete a HaloPSA invoice paymenthalopsa.invoice_payments.delete
  • Delete a HaloPSA end userhalopsa.users.delete
  • Delete a HaloPSA quotationhalopsa.quotations.delete
  • Delete a HaloPSA clienthalopsa.clients.delete
  • Delete a HaloPSA SLAhalopsa.slas.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dohalopsa.tickets.deleteconfirm_policy: human

Delete a HaloPSA ticket?

intent: the user asked me to delete a HaloPSA ticket

run suspended · waiting for a named person · key halopsa-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "halopsa-agent",  allowed_actions: ["halopsa.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "halopsa.tickets.delete", approver: "[email protected]" },    { match: "halopsa.agents.delete", approver: "[email protected]" },    { match: "halopsa.invoices.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to HaloPSA only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What HaloPSA costs on actionlake.

Every HaloPSA action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call HaloPSA refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 465 HaloPSA actions
  • 100actions pageeach page of a long list is one call
  • 205reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every HaloPSA action.

465 actions by area: the id your agent calls, what it does, and its effect.

CRM57
  • halopsa.agents.listList HaloPSA agentsread
  • halopsa.clients.listList HaloPSA clientsread
  • halopsa.sites.listList HaloPSA sitesread
  • halopsa.users.listList HaloPSA end usersread
  • halopsa.addressbook.createCreate a HaloPSA address book entrywrite
  • halopsa.addressbook.deleteDelete a HaloPSA address book entrydestructive
  • and 51 more in this area
Lookups51
  • halopsa.slas.createCreate a HaloPSA SLAwrite
  • halopsa.slas.getGet one HaloPSA SLAread
  • halopsa.slas.listList HaloPSA SLAsread
  • halopsa.slas.updateUpdate a HaloPSA SLAwrite
  • halopsa.categories.createCreate a HaloPSA categorywrite
  • halopsa.categories.deleteDelete a HaloPSA categorydestructive
  • and 45 more in this area
Config41
  • halopsa.roles.createCreate a HaloPSA rolewrite
  • halopsa.roles.getGet one HaloPSA roleread
  • halopsa.roles.listList HaloPSA rolesread
  • halopsa.roles.updateUpdate a HaloPSA rolewrite
  • halopsa.custom_buttons.createCreate a HaloPSA custom buttonwrite
  • halopsa.custom_buttons.deleteDelete a HaloPSA custom buttondestructive
  • and 35 more in this area
Billing40
  • halopsa.invoice_payments.createCreate a HaloPSA invoice paymentwrite
  • halopsa.invoice_payments.listList HaloPSA invoice paymentsread
  • halopsa.invoices.createCreate a HaloPSA invoicewrite
  • halopsa.invoices.listList HaloPSA invoicesread
  • halopsa.currencies.createCreate a HaloPSA currencywrite
  • halopsa.currencies.deleteDelete a HaloPSA currencydestructive
  • and 34 more in this area
Servicedesk35
  • halopsa.actions.createCreate a HaloPSA ticket actionwrite
  • halopsa.actions.listList HaloPSA ticket actionsread
  • halopsa.tickets.createCreate a HaloPSA ticketwrite
  • halopsa.tickets.listList HaloPSA ticketsread
  • halopsa.actions.deleteDelete a HaloPSA ticket actiondestructive
  • halopsa.actions.getGet one HaloPSA ticket actionread
  • and 29 more in this area
Automation27
  • halopsa.webhooks.createCreate a HaloPSA webhookwrite
  • halopsa.webhooks.listList HaloPSA webhooksread
  • halopsa.workflows.createCreate a HaloPSA workflowwrite
  • halopsa.workflows.listList HaloPSA workflowsread
  • halopsa.automations.createCreate a HaloPSA automationwrite
  • halopsa.automations.deleteDelete a HaloPSA automationdestructive
  • and 21 more in this area
Contracts25
  • halopsa.client_contracts.createCreate a HaloPSA client contractwrite
  • halopsa.client_contracts.getGet one HaloPSA client contractread
  • halopsa.client_contracts.listList HaloPSA client contractsread
  • halopsa.client_contracts.updateUpdate a HaloPSA client contractwrite
  • halopsa.client_contracts.approvalHaloPSA: Approve a client contractwrite
  • halopsa.client_contracts.deleteDelete a HaloPSA client contractdestructive
  • and 19 more in this area
Sales23
  • halopsa.opportunities.listList HaloPSA opportunitiesread
  • halopsa.quotations.createCreate a HaloPSA quotationwrite
  • halopsa.quotations.getGet one HaloPSA quotationread
  • halopsa.quotations.listList HaloPSA quotationsread
  • halopsa.opportunities.createCreate a HaloPSA opportunitywrite
  • halopsa.opportunities.deleteDelete a HaloPSA opportunitydestructive
  • and 17 more in this area
Catalogue22
  • halopsa.items.createCreate a HaloPSA catalogue itemwrite
  • halopsa.items.getGet one HaloPSA catalogue itemread
  • halopsa.items.listList HaloPSA catalogue itemsread
  • halopsa.items.updateUpdate a HaloPSA catalogue itemwrite
  • halopsa.item_groups.createCreate a HaloPSA item groupwrite
  • halopsa.item_groups.deleteDelete a HaloPSA item groupdestructive
  • and 16 more in this area
Documents19
  • halopsa.attachments.deleteDelete a HaloPSA attachmentdestructive
  • halopsa.attachments.getGet one HaloPSA attachmentread
  • halopsa.attachments.listList HaloPSA attachmentsread
  • halopsa.attachments.updateUpdate a HaloPSA attachmentwrite
  • halopsa.attachments.createCreate a HaloPSA attachmentwrite
  • halopsa.attachments.document_getHaloPSA: Get an attachment documentread
  • and 13 more in this area
Procurement19
  • halopsa.purchase_orders.createCreate a HaloPSA purchase orderwrite
  • halopsa.purchase_orders.getGet one HaloPSA purchase orderread
  • halopsa.purchase_orders.listList HaloPSA purchase ordersread
  • halopsa.purchase_orders.updateUpdate a HaloPSA purchase orderwrite
  • halopsa.consignments.createCreate a HaloPSA consignmentwrite
  • halopsa.consignments.deleteDelete a HaloPSA consignmentdestructive
  • and 13 more in this area
Servicecatalogue19
  • halopsa.service_statuses.createCreate a HaloPSA service statuswrite
  • halopsa.service_statuses.listList HaloPSA service statusesread
  • halopsa.services.listList HaloPSA servicesread
  • halopsa.services.searchSearch HaloPSA servicesread
  • halopsa.service_categories.createCreate a HaloPSA service categorywrite
  • halopsa.service_categories.deleteDelete a HaloPSA service categorydestructive
  • and 13 more in this area
Assets18
  • halopsa.assets.createCreate a HaloPSA assetwrite
  • halopsa.assets.getGet one HaloPSA assetread
  • halopsa.assets.listList HaloPSA assetsread
  • halopsa.assets.updateUpdate a HaloPSA assetwrite
  • halopsa.asset_groups.createCreate a HaloPSA asset groupwrite
  • halopsa.asset_groups.deleteDelete a HaloPSA asset groupdestructive
  • and 12 more in this area
Knowledge17
  • halopsa.kb_articles.createCreate a HaloPSA knowledge base articlewrite
  • halopsa.kb_articles.getGet one HaloPSA knowledge base articleread
  • halopsa.kb_articles.listList HaloPSA knowledge base articlesread
  • halopsa.kb_articles.searchSearch HaloPSA knowledge base articlesread
  • halopsa.canned_text.createCreate a HaloPSA canned text snippetwrite
  • halopsa.canned_text.deleteDelete a HaloPSA canned text snippetdestructive
  • and 11 more in this area
Scheduling13
  • halopsa.appointments.createCreate a HaloPSA appointmentwrite
  • halopsa.appointments.getGet one HaloPSA appointmentread
  • halopsa.appointments.listList HaloPSA appointmentsread
  • halopsa.appointments.updateUpdate a HaloPSA appointmentwrite
  • halopsa.appointments.bookingHaloPSA: List bookable appointment slotsread
  • halopsa.appointments.deleteDelete a HaloPSA appointmentdestructive
  • and 7 more in this area
Time12
  • halopsa.timesheet_events.createCreate a HaloPSA timesheet eventwrite
  • halopsa.timesheet_events.listList HaloPSA timesheet eventsread
  • halopsa.timesheet_events.mineHaloPSA: List my timesheet eventsread
  • halopsa.timesheet_events.updateUpdate a HaloPSA timesheet eventwrite
  • halopsa.timesheet_events.deleteDelete a HaloPSA timesheet eventdestructive
  • halopsa.timesheet_events.getGet one HaloPSA timesheet eventread
  • and 6 more in this area
Reporting9
  • halopsa.reports.createCreate a HaloPSA reportwrite
  • halopsa.reports.getGet one HaloPSA reportread
  • halopsa.reports.listList HaloPSA reportsread
  • halopsa.reports.updateUpdate a HaloPSA reportwrite
  • halopsa.reports.bookmarkHaloPSA: Bookmark a reportwrite
  • halopsa.reports.createpdfHaloPSA: Render a report as PDFread
  • and 3 more in this area
Projects7
  • halopsa.projects.createCreate a HaloPSA projectwrite
  • halopsa.projects.getGet one HaloPSA projectread
  • halopsa.projects.listList HaloPSA projectsread
  • halopsa.projects.updateUpdate a HaloPSA projectwrite
  • halopsa.projects.deleteDelete a HaloPSA projectdestructive
  • halopsa.projects.searchSearch HaloPSA projectsread
  • and 1 more in this area
Email6
  • halopsa.mailboxes.createCreate a HaloPSA mailboxwrite
  • halopsa.mailboxes.getGet one HaloPSA mailboxread
  • halopsa.mailboxes.listList HaloPSA mailboxesread
  • halopsa.mailboxes.outlook_contactsHaloPSA: List a mailbox's Outlook contactsread
  • halopsa.mailboxes.deleteDelete a HaloPSA mailboxdestructive
  • halopsa.mailboxes.updateUpdate a HaloPSA mailboxwrite
Compliance5
  • halopsa.audit.createCreate a HaloPSA audit entrywrite
  • halopsa.audit.getGet one HaloPSA audit entryread
  • halopsa.audit.listList HaloPSA audit entriesread
  • halopsa.audit.updateUpdate a HaloPSA audit entrywrite
  • halopsa.audit.deleteDelete a HaloPSA audit entrydestructive

This index shows a sample of each area. All 465 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The HaloPSA MCP server, answered.

Is there a HaloPSA MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 465 HaloPSA actions across CRM, lookups, config and billing, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by HaloPSA.

What do I need to connect HaloPSA?

HaloPSA client id and HaloPSA client secret. Plus your tenant host. The free call account { op: "connections.requirements", service: "halopsa" } lists exactly what to paste.

Can an AI agent delete or change things in HaloPSA?

Only if its key allows it, and only with an explicit confirmation. 80 HaloPSA actions are destructive, including delete a HaloPSA ticket, delete a HaloPSA agent and delete a HaloPSA invoice. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my HaloPSA API limit?

actionlake paces every call to the limits in the HaloPSA service file: 700 calls per 5 minutes per connection. Repeated reads are answered from cache (205 HaloPSA actions can be), which never reaches HaloPSA.

What does a HaloPSA action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (100 HaloPSA actions page). Cache hits, searches, dry runs and calls HaloPSA refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which HaloPSA API does it cover?

The HaloPSA API 1 at your HaloPSA instance's API base URL, which you enter when connecting (path /api). It is built from HaloPSA's documentation as read on 8 September 2026. 465 actions in 20 areas, each one in the signed service file (version 1.0.0).

Can I combine HaloPSA with my other systems?

Yes. ask joins HaloPSA to HubSpot CRM or ServiceNow on the same customer and returns the answer rather than every row. HaloPSA maps crm.company, which 227 other connectors also map.

Does actionlake keep my HaloPSA data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your HaloPSA credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent HaloPSA today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.