Halo ITSM MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Halo ITSM, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

These tools give agents full read and write access to Halo ITSM for complete service-desk workflows. Use them to search and triage tickets, post replies and resolutions, look up knowledge base articles, and manage the assets and users linked to service requests.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • Add a note to ticket 2994 saying the replacement part ships tomorrow
  • Reply to the user on ticket 2996 asking which error message they see
  • Log an internal note on ticket 3001 that we're waiting on the vendor
  • Update ticket 2995 and email the requester the workaround
  • Close ticket 2994 — we replaced the power supply and it boots fine now
  • Resolve ticket 2996 and email the user to let them know
  • Mark ticket 3001 as resolved, the account was re-enabled
  • Close the printer ticket with a note that the toner was replaced
  • Raise an incident for Jocelyn: her laptop won't boot
  • Log a service request for a new monitor at the Main site

Tools

Tool Name Functions
HaloAddTicketAction Post a public reply or an internal note on a ticket.
HaloCloseTicket Resolve a ticket with a resolution note, stopping the SLA clock.
HaloCreateTicket Raise a new incident, request, problem or change.
HaloDeleteTicket Delete a single ticket raised in error, with an audited reason.
HaloGetAsset Retrieve one configuration item, including its owner, client and site.
HaloGetAssetTickets List every ticket raised against one configuration item.
HaloGetTicket Retrieve one ticket in full, including SLA, site, type and categories.
HaloListAssets Find configuration items by tag, hostname, customer, site or type.
HaloListTicketActions Read a ticket's full conversation and audit history.
HaloListTickets Search and filter tickets by text, customer, status, assignee or team.
HaloLookupConfig Resolve names to the numeric ids this tenant uses for statuses, priorities, types, teams and agents.
HaloRunReport Run a saved Halo report and return its rows.
HaloSearchKnowledgeBase Search knowledge base articles for an existing documented fix.
HaloSearchUsers Resolve a person's name or email to their numeric Halo user id.
HaloUpdateTicket Reassign, re-prioritise or edit an existing ticket.

Set up the MCP Server tools

  1. Download halo_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded halo_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: API Suite Account Configuration.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

HaloAddTicketAction

Posts a public reply or an internal note on a ticket, with the option to email the message to the end user. Use it to communicate with the requester or to log progress that only agents can see.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket to post the action against.

note string

Body text of the note or reply.

outcome string

Halo action outcome. Default: 'Private Note'.

hiddenfromuser string

'true' for an internal note the end user cannot see.

sendemail string

'true' to email this note to the end user.

Try asking:

  • Add a note to ticket 2994 saying the replacement part ships tomorrow
  • Reply to the user on ticket 2996 asking which error message they see
  • Log an internal note on ticket 3001 that we're waiting on the vendor
  • Update ticket 2995 and email the requester the workaround

HaloCloseTicket

Resolves a ticket and records the resolution text for the end user. Use it to properly close out a service-desk issue with an auditable resolution note.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket to resolve.

outcome string

Halo action outcome that closes the ticket. Default: 'Resolved'.

note string

Resolution text recorded against the ticket and shown to the end user.

sendemail string

'true' to email the end user that the ticket is resolved.

Try asking:

  • Close ticket 2994 — we replaced the power supply and it boots fine now
  • Resolve ticket 2996 and email the user to let them know
  • Mark ticket 3001 as resolved, the account was re-enabled
  • Close the printer ticket with a note that the toner was replaced

HaloCreateTicket

Creates a new ticket in Halo ITSM, supporting incident, service request, problem, and change types. Supply the ticket type, summary, user, and any required details to open the record.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

summary string

Short one-line title for the ticket.

details string

Full description of the issue or request.

tickettype_id string

Numeric ticket type id — selects incident, request, problem or change, and determines which fields below are mandatory.

client_id string

Numeric client id the ticket belongs to. Implied by site_id if omitted.

user_id string

Numeric id of the end user raising the ticket. Resolve with HaloSearchUsers.

site_id string

Numeric site id for the affected location.

agent_id string

Numeric agent id to assign the ticket to on creation.

priority_id string

Numeric priority id. Often derived from impact and urgency instead.

status_id string

Numeric status id to open the ticket in. Omit for the Halo default.

impact string

Numeric impact, typically 1-5. Mandatory for incident types in most configurations.

urgency string

Numeric urgency, typically 1-5. Mandatory for incident types in most configurations.

category_1 string

Full category path with every level, e.g. 'Business Applications>ERP SAP>Login Failure'. A partial path is rejected as if absent.

Try asking:

  • Raise an incident for Jocelyn: her laptop won't boot
  • Log a service request for a new monitor at the Main site
  • Create a high-impact incident about the SAP login failures
  • Open a ticket for the printer on the second floor and assign it to 1st Line Support

HaloDeleteTicket

Permanently deletes a single ticket and records an optional reason in the audit trail. Use it only for tickets raised in error or confirmed duplicates; close completed work with HaloCloseTicket instead.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket to delete.

reason string

Why the ticket is being deleted, recorded in the audit trail.

Try asking:

  • Delete ticket 3005, it was raised by mistake
  • Remove the duplicate ticket 3007 — it's the same as 3002
  • Delete that test ticket I created earlier

HaloGetAsset

Retrieves full details for a single configuration item, including its type, status, owner, customer, and site. Use it to look up an asset before raising a ticket against it.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

asset_id string

Numeric id of the configuration item to retrieve.

Try asking:

  • Show me the details of asset 1
  • Who owns the workstation ABC00001 and where is it?
  • What type and status is asset 907?
  • Get the site and client for that laptop so I can raise a ticket against it

HaloGetAssetTickets

Lists every ticket raised against a specific configuration item. Use it to check the history of faults on an asset before deciding how to respond.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

asset_id string

Numeric id of the configuration item whose tickets to list.

open_only string

'true' to return only open tickets for this asset.

page_size string 50

Maximum tickets to return. Default: 50.

Try asking:

  • What tickets have been raised against asset 1?
  • Has this laptop had problems before?
  • Show me the open issues for the workstation ABC00001
  • Is there a pattern of faults on this machine?

HaloGetTicket

Retrieves the full record for a single ticket, including SLA state, site, ticket type, and categories. Use it when you need complete details on a specific ticket rather than a summary.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket to retrieve.

Try asking:

  • Give me the full details of ticket 2994
  • What's the SLA status on ticket 3001?
  • Which site and category is ticket 2996 logged against?
  • Summarise ticket 2995 for a handover

HaloListAssets

Searches the configuration item register by asset tag, hostname, name, customer, site, or asset type. Use it to find the assets you need before looking up details or related tickets.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

search string

Asset tag, hostname or name fragment to search for.

client_id string

Numeric client id, to restrict results to one customer.

site_id string

Numeric site id, to restrict results to one location.

assettype_id string

Numeric asset type id, e.g. laptop, server, printer.

page_size string 50

Maximum assets to return. Default: 50.

Try asking:

  • Find all laptops at the Main site
  • Which assets are registered to the SnapLogic account?
  • Look up the workstation with tag ABC00001
  • Show me every monitor we have in stock

HaloListTicketActions

Returns the full action history of a ticket, including public replies, internal notes, and the audit trail. Use it to see what has already been done before responding or escalating.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket whose history to read.

max_results string

Maximum actions to return. Default: 50.

Try asking:

  • What's the history on ticket 2994?
  • Has anyone replied to the user on ticket 2996 yet?
  • Show me the internal notes on ticket 3001
  • Catch me up on what's been done for the SAP login ticket

HaloListTickets

Searches and filters tickets by text, customer, status, assignee, or team, returning matching ticket summaries. Use it to find the tickets you want to work on; follow up with HaloGetTicket for the full record.

Parameter Type Default Description
tenant string

Halo tenant subdomain, e.g. 'acme' for https://acme.haloitsm.com.

search string

Free-text search across ticket summary and details.

client_id string

Numeric client id, to restrict results to one customer.

status_id string

Numeric status id. Resolve names to ids with HaloLookupConfig.

agent_id string

Numeric agent id of the assignee.

team string

Team name or id, to filter by owning team.

open_only string

'true' to return only open tickets.

page_no string 1

1-based page number. Default: 1.

page_size string 50

Records per page. Default: 50.

Try asking:

  • Show me all open tickets for the SnapLogic account
  • Which tickets are assigned to the 1st Line Support team right now?
  • Find any tickets mentioning printer problems
  • List the open P1s and tell me who owns each one
  • How many tickets are currently open for client 12?

HaloLookupConfig

Resolves names to the numeric IDs that Halo uses for statuses, priorities, ticket types, teams, agents, clients, and sites. Use it before creating or updating tickets to ensure you have the correct IDs for this tenant.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

resource string

Which lookup to read: status, priority, tickettype, team, agent, client or site.

Try asking:

  • What ticket statuses exist in Halo?
  • List the priorities so I know which id means critical
  • Which ticket types can I choose from?
  • Show me the teams and their ids
  • What agents are set up in this instance?

HaloRunReport

Runs a saved Halo report by ID and returns its results. Use it to answer volume and trend questions such as ticket counts, SLA performance, and team workload.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

report_id string

Numeric id of the saved Halo report to run.

Try asking:

  • Run report 42 and show me the results
  • Give me the SLA performance report
  • What does the monthly ticket volume report say?
  • Pull the open tickets by team report

HaloSearchKnowledgeBase

Searches knowledge base articles by free text and returns matching results. Use it before raising or escalating a ticket to check whether the issue already has a documented fix.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

search string

Free-text search term, e.g. 'vpn password reset'.

page_size string 20

Maximum articles to return. Default: 20.

Try asking:

  • Is there a KB article on resetting the VPN password?
  • What does our knowledge base say about Outlook attachment problems?
  • Find guidance on setting up a new starter's laptop
  • Search the KB for wifi disconnection issues before I raise a ticket

HaloSearchUsers

Finds users in the Halo directory by name or email and returns their IDs, client, and site. Use it to resolve a person's name to the numeric ID that ticket creation and updates require.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

search string

Name or email fragment to search the user directory for.

client_id string

Numeric client id, to restrict the search to one customer.

site_id string

Numeric site id, to restrict the search to one location.

page_size string 20

Maximum users to return. Default: 20.

Try asking:

  • Find the Halo user for [email protected]
  • Who is Jocelyn Arcega in Halo and what site is she at?
  • Look up all users called Smith at the SnapLogic account
  • I need the user id for the person who reported the laptop fault

HaloUpdateTicket

Updates an existing ticket to reassign, reprioritize, or correct its summary, details, or status. To close a ticket with a formal resolution, use HaloCloseTicket instead.

Parameter Type Default Description
tenant string

Halo tenant subdomain.

ticket_id string

Numeric id of the ticket to update.

summary string

New one-line title.

details string

New full description.

status_id string

Numeric status id to move the ticket to.

priority_id string

Numeric priority id to re-prioritise to.

agent_id string

Numeric agent id to reassign the ticket to.

team string

Team name or id to move ownership to.

client_id string

Numeric client id, if the ticket was raised against the wrong customer.

Try asking:

  • Reassign ticket 2994 to James Brown
  • Bump ticket 2996 to high priority
  • Move ticket 3001 to the Infrastructure team
  • Correct the summary on ticket 2995 to mention Outlook rather than Office