HaloPSA MCP server
HaloPSA in any MCP client, through Memtro: HaloPSA does not publish this server. Memtro's HaloPSA connector reads HaloPSA through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
HaloPSA service desk and PSA: tickets by status, client, agent or type with their notes and replies, clients, sites, end users, assets, invoices, and the statuses, ticket types, agents, teams and priorities their ids refer to; when you ask, can log, update or delete tickets, add private notes or delete one, and create or update clients, sites, users and assets.
Reads
halopsa_list_ticketsList Halo tickets, open ones by default: summary, status, client, site, end user, agent, team, priority and dates.halopsa_get_ticketOne Halo ticket by id with its details and its most recent notes, replies and time entries (system actions left out).halopsa_list_clientsHalo clients (customer companies): name, website, main site, parent.halopsa_list_sitesHalo sites (a client's locations): name, client, timezone, main contact.halopsa_list_usersHalo end users (a client's contacts): name, job title, client and site.halopsa_list_assetsHalo assets (devices and configuration items): asset tag, name, type, client and site.halopsa_list_invoicesHalo invoices: number, client, date, due date, total, amount due and paid, posted or voided.halopsa_lookupsThe ids Halo's ticket fields refer to: statuses, ticket types, agents (name and team only), teams or priorities.
Acts, when you ask
These change something in HaloPSA. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
halopsa_create_ticketLogs a new ticket in Halo for a client, with the summary and details given.halopsa_update_ticketChanges an existing Halo ticket: status, agent, team, priority, ticket type or summary; only the fields passed change.halopsa_add_noteAdds a private note to a Halo ticket, hidden from the end user and with no email sent; agents on the ticket can see it.halopsa_delete_ticketPermanently deletes a Halo ticket and the notes, time and other records attached to it.halopsa_delete_actionPermanently deletes one note, reply or time entry (an action) from a Halo ticket; an email it already sent stays sent.halopsa_create_clientCreates a client (customer company) in Halo; nobody is emailed.halopsa_update_clientChanges a Halo client's name or website, or deactivates it (inactive true) or reactivates it; only the fields passed change.halopsa_create_siteCreates a site (location) for a Halo client; nobody is emailed.halopsa_create_userCreates an end user (a client's contact) at a Halo site.halopsa_update_userChanges a Halo end user's name, email, job title or site, or deactivates them (inactive true); only the fields passed change.halopsa_create_assetCreates an asset in Halo for a client and site, of a given asset type; nobody is emailed.halopsa_update_assetChanges a Halo asset's tag, name or site, or deactivates it (inactive true); only the fields passed change.
Connect it
First connect HaloPSA on Dashboard → Connections, then add Memtro to your client once. The HaloPSA tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared HaloPSA connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › Which open tickets does Northwind have with the 1st Line team?
- › What was the last reply on ticket 10423?
- › Which Acme Ltd invoices still have an amount due?
- › Which assets are at the Leeds site?
- › Add a private note to ticket 10423 that the engineer is booked for Tuesday.
Questions
- Is this an official HaloPSA MCP server?
- No. It is Memtro's MCP server with Memtro's HaloPSA connector behind it: the connector reads HaloPSA through its API with the credentials you connect on Dashboard → Connections, and HaloPSA publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in HaloPSA?
- Only when you ask, and only what it has been granted: log a new ticket for a client; update a ticket's status, agent, team, priority, type or summary; add a private note to a ticket; delete a ticket; delete a note or action from a ticket; create a client; update or deactivate a client; create a site for a client; create an end user at a site; update or deactivate an end user; create an asset; update or deactivate an asset. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.