<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><p><strong>In this guide we will cover:</strong></p><p><strong><style data-pasted="true">.cf0{font-family:Consolas;font-size:11pt;}</style></strong></p><p><strong>- Overview</strong></p><p><strong>- Setup Steps for Instances Deployed before January 19 2026 (or HaloITSM, HaloCRM) </strong></p><p><strong>- Setup Steps required for (HaloPSA) Instances Deployed after January 19 2026</strong></p><p><strong>- Using the MCP Endpoint to query instance data</strong></p><p><br></p><p><br></p><p><strong>Related Guides:</strong></p><ul><li style="font-weight: bold;"><a target="_blank" rel="noopener noreferrer" data-fr-linked="true" href="https://usehalo.com/halopsa/guides/2597" data-pasted="true" style="font-weight: bold;"><strong>Halo MCP Server Connection</strong></a></li></ul><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">Overview</span></strong></p><p>The MCP endpoint can be utilised alongside the Halo Chatbot to have OpenAI evaluate data in your Halo instance and carry out actions in your Halo. Useful for easily obtaining data and statics on your businesses performance and carrying out ad-hoc tasks quickly and efficiently. You may use this to see how your teams are performing, how much profit you have made, complete quick checks, etc. the options are endless. </p><p><br></p><p>This functionality is pre-built into trials of HaloPSA as of January 19<span style="color: rgb(226, 80, 65);"> </span>2026 but some setup is required before this can be used. You do not need your own AI connection to use this functionality if you are using this functionality on a trial instance. If you are looking to plug this into a live (production) instance you will need your <a href="https://usehalo.com/halopsa/guides/2385" target="_blank" rel="noopener noreferrer">own AI credentials</a>. </p><ul><li>If your Instance was deployed after January 19 2026 skip to the section "Setup Steps required for (HaloPSA) Instances Deployed after January 19 2026"</li></ul><p><br></p><p>If your instance was deployed before January 19 2026, or you are using one of our other products (HaloITSM, HaloCRM) this functionality will need to be built into your instance. </p><ul><li>If your instance was deployed after January 19 2026, start at the section "Setup Steps for Instances Deployed before January 19 2026 (or HaloITSM, HaloCRM)".</li></ul><p><br></p><p data-pasted="true"><strong><span style="font-size: 12pt;">How does this work?</span></strong></p><p>The runbook "HaloMCP" is plugged into the chat profile "HaloMCP", so that each time a query is entered into this chat the runbook is triggered. The runbook will send the query to OpenAI which will use the MCP endpoint to get data from your instance to answer the query. The MCP endpoint also allows OpenAI to execute actions in your Halo instance, so that if an action is requested from the chat, OpenAI can carry out this action in your instance. The runbook is triggered for each query/prompt entered into the chat.</p><p><br></p><p><strong><span style="font-size: 14pt;">Setup Steps for Instances Deployed before January 19 2026 (or HaloITSM, HaloCRM) </span></strong></p><p>To begin you will need to create an API application, that gives access to your Halo instance. </p><p><br></p><p>Head to Configuration > Integrations > Halo API > View Applications > New. Here, create an application with the following configuration:</p><ul><li><strong>Application Name -</strong> HaloMCP (or any appropriate name)</li><li><strong>Authentication Method - </strong>Client ID and Secret (Services)</li><li><strong>Login Type - </strong>Agent</li><li><strong>Agent to log in as - </strong>Choose an agent who is an Administrator</li></ul><p><br></p><p>The application should look as shown in figure 1. <img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhmZjhjYmUzLWE0YzItNDM5OS05NjZlLWQ0ZWIwN2RlMmNhZiJ9.NgCMfj_4DN0hwXLZuAJQrJx3v5xH8JpkjscVAKrpJOs" class="fr-fic fr-fil fr-dib" width="885" style="width: 887px; height: 585.6px;" height="586"></p><p><strong><span style="font-size: 10pt;">Fig 1. New API Application</span></strong></p><p><br></p><p>Once the application is saved head to the "Permissions" tab and give the application the "all:standard" permissions only. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjgxZDE0MDg1LTk2NjAtNDI5OS04MjRkLTljODFjNjBjMzQ4ZiJ9._yzTQqld5aOoXs-Id7fi4WOA8Z3be9mwlcNHX46UFXg" class="fr-fic fr-fil fr-dib" width="879" style="width: 881px; height: 470.301px;" height="470"></p><p><strong><span style="font-size: 10pt;">Fig 2. Give application Permissions</span></strong></p><p><br></p><p>Before you save the application head back to the "Details" tab and use the "Generate" button to generate a secret for the application. Once generated, copy this, along with the Client ID to a clipboard. </p><p><br></p><p>We will now need to create the required runbook. </p><p><br></p><p><strong><span style="font-size: 12pt;">Create Runbook</span></strong></p><p>Now you will need to create a new runbook that sends requests to the MCP server. </p><p><br></p><p>Head to Configuration > Integrations > Custom Integrations > Integration Runbooks > New. Give the runbook a name and save it. </p><p><br></p><p>Then use the "Import from JSON" button to create the runbook with pre-provided JSON. The JSON required will be attached to this guide. If you are viewing this guide on our website, you will need to head to our portal to get this attachment,<span style="color: rgb(235, 107, 86);"> </span><span style="color: rgb(0, 0, 0);"><a href="https://support.haloservicedesk.com/article?text=mcp&entity=articles&id=2726" target="_blank" rel="noopener noreferrer" style="color: rgb(0, 0, 0);">here</a>.</span></p><p><span style="color: rgb(235, 107, 86);"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM0YmM0N2QwLTNiZmMtNGMwZS1iMjAwLTZmYjExMTBmYzE4MiJ9.o6sbvDlkh1aE--MU7L3hagckwUW2Bm8EIT4sQyU62l4" class="fr-fic fr-fil fr-dib" width="833" style="width: 835px; height: 513.412px;" height="513"></span></p><p><strong><span style="font-size: 10pt;">Fig 3. Import runbook from JSON</span></strong></p><p> </p><p>Save the runbook and head to the Flow Chart tab. </p><p><br></p><p>Edit the first step "Get Bearer Action". </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2MDlkNzdkLTc4YzYtNDQwOC1hNzk2LTUyODQ5ZTg1YTRhZCJ9.qRpifNV6cASHaQ23LGu2dvBumBwDOtuyPPwNFhPKAr0" class="fr-fic fr-fil fr-dib" width="1018" height="567"></p><p><strong><span style="font-size: 10pt;">Fig 4. Edit First Step</span></strong></p><p><br></p><p>Create a new method to obtain a bearer token for your instance. This will need to follow the setup shown in figure 5. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQzMGUyYmYwLTNiNjQtNDBmYy1hOWM4LWMzNDM5N2FmMjg1ZiJ9.a8cmooCc1qpbuygZQvTJViPkZFkcqQ3-Qxu0Z5t58aw" class="fr-fic fr-fil fr-dib" width="1641" style="width: 1643px; height: 640.3px;" height="640"></p><p><strong><span style="font-size: 10pt;">Fig 5. Method to Obtain Bearer Token</span></strong></p><p><br></p><p>The endpoint to post this request to will need to follow the format:</p><ul><li><a target="_blank" rel="noopener noreferrer noopener noreferrer" data-fr-linked="true" href="https://YOURHALOINSTANCE/auth/token">https://YOURHALOINSTANCE/auth/token</a>.</li></ul><p><br></p><p>You will need to add the body shown in figure 5. The value of the client id and client secret swill be taken from the API application you created earlier. Paste these in here. Ensure you also check the "Encrypt" option. </p><p><br></p><p>Now add an output variable for the method, to store the token retrieved. The variable will need to be configured as shown in figure 6. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMwYTM1OGQ2LTUxYTEtNGY5Yy1iN2E2LWRjMmM3NmVlMDA2ZCJ9.PFnuFbqQtjx0ogVib4iLxtpxl6odgyUxICzAqu2fmvw" class="fr-fic fr-fil fr-dib" width="1640" style="width: 1642px; height: 477.356px;" height="477"></p><p><strong><span style="font-size: 10pt;">Fig 6. Output Variable to store Bearer Token</span></strong></p><p><br></p><p><strong><em>Note: Ensure the name of the variable is also the same name as shown. This name is used later on in the runbook. </em></strong></p><p><br></p><p>Now save the method, and select the method you have just created to be used for this runbook step before saving the step. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY1YjkzMjA1LTJkNDMtNGU3Yy04NTIxLThmODJlMTYyYTQ5ZSJ9.HFUlg8hdVyzeopWcg4Zk1gMPy-Q0MkiEzM0_4xXJ5aY" class="fr-fic fr-fil fr-dib" width="738" style="width: 740px; height: 505.093px;" height="505"></p><p><strong><span style="font-size: 10pt;">Fig 7. Select the Method to use for the Step</span></strong></p><p><br></p><p>Now edit the step "Query MCP" and create a new method. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFkZTVkY2EwLWNhMWEtNGY0YS1iM2ZjLTk3ZjhmZmMxMDU4MSJ9.MWYII9-ItoGoc32bue8vaU2ykuTSb5jSFzEItTFmaNw" class="fr-fic fr-fil fr-dib" width="689" style="width: 691px; height: 565.536px;" height="566"></p><p><strong><span style="font-size: 10pt;">Fig 8. Create new method</span></strong></p><p><br></p><p><span style="color: rgb(235, 107, 86);"><strong>Important: The method created here will differ depending on if you are using OpenAI or Azure OpenAI as your AI connection. If you are using OpenAI as your connection follow the section "</strong></span><strong><span style="color: rgb(235, 107, 86);">Method when using OpenAI", if you are using Azure OpenAI as your connection follow the section "Method when using Azure OpenAI".</span></strong></p><p><br></p><p style="margin-left: 20px;"><strong>Method when using OpenAI</strong></p><p style="margin-left: 20px;"><em>Pre-requisites:</em></p><ul style="margin-left: 20px ;"><li style="font-style: italic;"><em>Ensure you have already<a href="https://usehalo.com/halopsa/guides/1667/" target="_blank" rel="noopener noreferrer" style="font-style: italic;"> configured your own OpenAI connection</a> for your Halo instance. </em></li></ul><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Configure the method as shown in Figure 9. The method needs to complete a POST to the OpenAI responses endpoint. Ensure you also select the integration to be "OpenAI".</p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJmMTc3NWJiLTNhODctNDIzOS1iNjZlLTlhOTgwZWQzNDEwZCJ9.Q53ooFgeh0mbt8Z34HDCY3Mu_946Ix9NtRqGfTMEIno" class="fr-fic fr-fil fr-dib" width="1465" style="width: 1467px; height: 382.945px;" height="383"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 9. Method to send a request to Open AI</span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">In the "Body" of the method paste the following JSON, replacing "YOURHALOINSTANCE with your own instance URL: </p><p data-pasted="true" style="margin-left: 40px;"><em>{</em></p><p style="margin-left: 40px;"><em> "model": "gpt-4.1",</em></p><p style="margin-left: 40px;"><em> "input": "<<chat^last_message_text!>>. Give any responses in formatted HTML. Do not include markup, return only the raw html. Estimate the name of the report in question based on the function name and return that in your response. If no tools match the input, respond with the knowledge at your disposal. Based on the tools you have access to, suggest follow up actions to perform in the system: log a ticket, add a note to an existing ticket, assign a ticket to me, etc.", </em></p><p style="margin-left: 40px;"><em> "tools": [</em></p><p style="margin-left: 40px;"><em> {</em></p><p style="margin-left: 40px;"><em> "type": "mcp",</em></p><p style="margin-left: 40px;"><em> "server_label": "halopsa",</em></p><p style="margin-left: 40px;"><em> "server_url": "<a target="_blank" rel="noopener noreferrer" data-fr-linked="true" href="https://chatfuckup4.halopsa.com/api/mcp">https://YOURHALOINSTANCE.com/api/mcp"</a>,</em></p><p style="margin-left: 40px;"><em> "require_approval": "never",</em></p><p style="margin-left: 40px;"><em> "headers": {</em></p><p style="margin-left: 40px;"><em> "Authorization": "Bearer <<token!>>"</em></p><p style="margin-left: 40px;"><em> }</em></p><p style="margin-left: 40px;"><em> }</em></p><p style="margin-left: 40px;"><em> ]</em></p><p style="margin-left: 40px;"><em>}</em></p><p style="margin-left: 40px;"><br></p><p style="margin-left: 20px;">This should look as shown in Figure 10. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM2YmZhZjdhLWZjZDUtNDE0MC04MGRkLTQwZDMwYzY5MmI2NyJ9.zS49VOgFFNGhmmQzjPTvFcKQC7TOkJ7BLIa6RY9s6aE" class="fr-fic fr-fil fr-dib" width="1656" style="width: 1658px; height: 691.346px;" height="691"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 10. Body of Method for request to OpenAI</span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Then, in the Output Variables tab create an output variable to store the response from OpenAI. The variable should look as shown in Figure 11. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI5ZThlYjAyLTk3MzYtNDZkYS05MWZjLWMzMDNmYzIwYzU2OCJ9.soRj8gC2ro2B1L6mApCfaYba0IP2XbjhWqB15o2ag5Q" class="fr-fic fr-fil fr-dib" width="1401" style="width: 1403px; height: 345.14px;" height="345"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 11. Variable to store OpenAI Response </span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">The variable will have the following value:</p><ul style="margin-left: 20px ;"><li>response^output[type=message]^content[0]^text!</li></ul><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Now save the method. Before saving the step ensure you select this method to be used for this runbook step. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZiN2M4MTI3LWE4NjAtNDg3Yi1hYzg3LTJlOWMyZjAxZGY0OSJ9.DE9xxF_Kj0rGNEGJiIKjEX533ROqL4e8H5WSdhfhG28" class="fr-fic fr-fil fr-dib" width="891" style="width: 893px; height: 507.426px;" height="507"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 12. Select the Method to use for Step 2</span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Method when using Azure OpenAI</span></strong></p><p data-pasted="true" style="margin-left: 20px;"><em>Pre-requisites:</em></p><ul style="margin-left: 20px ;"><li style="font-style: italic;"><em>Ensure you have already configured your own <a href="https://usehalo.com/haloitsm/guides/2316" target="_blank" rel="noopener noreferrer" style="font-style: italic;">Azure OpenAI </a>connection for your Halo instance. </em></li></ul><p data-pasted="true" style="margin-left: 20px;">Configure the method as shown in Figure 14. The method needs to complete a POST to the Azure OpenAI responses endpoint. Ensure you also select the integration to be "Azure OpenAI".</p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImVjYjEzMDM1LWUxMWQtNDA3OS1iZDliLTQ3ZDhkMTQ3YThjNSJ9.-PlDuDQ6pLMSzCeJ9_WbnvL2gOvhrAfUD-7sDx0BIr8" class="fr-fic fr-fil fr-dib" width="1668" style="width: 1670px; height: 593.084px;" height="593"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 13. Method to send a request to Azure OpenAI </span></strong></p><p style="margin-left: 40px;"><br></p><p data-pasted="true" style="margin-left: 20px;">In the "Body" of the method paste the following JSON, replacing "YOURHALOINSTANCE with your own instance URL: </p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;"><em>{ "model": "YOUR Default Azure OpenAI Deployment",</em></p><p style="margin-left: 20px;"><em> "input": "<<chat^last_message_text!>>. Give any responses in formatted HTML. Do not include markup, return only the raw html. Estimate the name of the report in question based on the function name and return that in your response. If no tools match the input, respond with the knowledge at your disposal. Based on the tools you have access to, suggest follow up actions to perform in the system: log a ticket, add a note to an existing ticket, assign a ticket to me, etc.",</em></p><p style="margin-left: 20px;"><em> "tools": [</em></p><p style="margin-left: 20px;"><em> {</em></p><p style="margin-left: 20px;"><em> "type": "mcp",</em></p><p style="margin-left: 20px;"><em> "server_label": "halopsa",</em></p><p style="margin-left: 20px;"><em> "server_url": "<a target="_blank" rel="noopener noreferrer" data-fr-linked="true" href="https://lexsoft.halopsa.com/api/mcp">https://YOURHALOINSTANCE/api/mcp"</a>,</em></p><p style="margin-left: 20px;"><em> "require_approval": "never",</em></p><p style="margin-left: 20px;"><em> "headers": {</em></p><p style="margin-left: 20px;"><em> "Authorization": "Bearer <<token!>>"</em></p><p style="margin-left: 20px;"><em> }</em></p><p style="margin-left: 20px;"><em> }</em></p><p style="margin-left: 20px;"><em> ] </em></p><p style="margin-left: 20px;"><em>}</em></p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;">This should look as shown in Figure 14. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyZjIyYzJjLTk1MTQtNDIxNC1iYjMwLWU3YjIzOGJmZDk4MiJ9.epS5YXLRu3juyT7tqwvDZWv-5VZDk31j9Aio2IyDrt4" class="fr-fic fr-fil fr-dib" width="1824" style="width: 1826px; height: 714.744px;" height="715"></p><p data-pasted="true" style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 14. Body of Method for request to Azure OpenAI</span></strong></p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;">Then, in the Output Variables tab create an output variable to store the response from Azure OpenAI. The variable should look as shown in Figure 15. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZlNTk2MGEwLTVlY2YtNDI3My1iZTMzLWE2NWMzN2EwY2U4NCJ9.lohL_V9WD2esHdHqkeurQMYVDrJp9dwhkCvxjS25FBs" class="fr-fic fr-fil fr-dib" width="2024" style="width: 2026px; height: 592.103px;" height="592"></p><p data-pasted="true" style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 15. Variable to store OpenAI Response </span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">The variable will have the following value:</p><ul><li>response^output[type=message]^content[0]^text!</li></ul><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Now save the method. Before saving the step ensure you select this method to be used for this runbook step. </p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBhN2ZlZmQxLTIxOWYtNDE0OS1iMmIwLTRjNmQwYjZjMTA4MCJ9._ko8p0wZZ4UpUhl3zEN0HY_GfyMXwBlLHiTr18Dgvww" class="fr-fic fr-fil fr-dib" width="1076" style="width: 1078px; height: 439.469px;" height="439"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 16. Select the method to use for step 2 (Azure OpenAI)</span></strong></p><p><br></p><p>Now save the runbook as a whole. </p><p><br></p><p><strong><span style="font-size: 12pt;">Chatbot</span></strong></p><p>Now you will need to create a new chat profile that will be used to query the endpoint.</p><p><br></p><p>Head to Configuration > Chat > Chat Profiles > New, give the chat profile a name and save it. </p><p><br></p><p>Then, use the "Import from JSON" button to create the chat profile based on given JSON. The JSON required is attached to this guide, simply paste the JSON here and save. If you are viewing this guide on the website, you will need to navi<span style="color: rgb(0, 0, 0);">gate to <a href="https://support.haloservicedesk.com/article?text=mcp&entity=articles&id=2726" target="_blank" rel="noopener noreferrer">this guide in our portal</a> </span>to obtain the JSON. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ2MTM3ZDAyLTc0MjgtNGI3MS05NjlmLWJlMWViMjU4YTIyOCJ9.xDbXqvr8zovptqEiVw0aEzHS9KTBrredez4o-k5wRFo" class="fr-fic fr-fil fr-dib" width="840" style="width: 842px; height: 505.547px;" height="506"></p><p><strong><span style="font-size: 10pt;">Fig 17. Import chatbot from JSON</span></strong></p><p><br></p><p>Now, edit the step "Execute MCP Action" and in the "Runbook" field, select the runbook you just created. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2MWZhODdjLWFmZTYtNDg3Ni1hNmNiLTliMDFiZTQ5NGMyMyJ9.pPFd2u7jpqg_cr4E64mY6LYMhA7mxKt5RKowDJi5pd0" class="fr-fic fr-fil fr-dib" width="1418" style="width: 1420px; height: 552.549px;" height="553"></p><p><strong><span style="font-size: 10pt;">Fig 18. Select the Runbook to Execute</span></strong></p><p><br></p><p>Save the step and the chat profile. </p><p><br></p><p><strong><span style="font-size: 12pt;">Configure Tools for the Endpoint </span></strong></p><p>Now you have built the runbook and chat profile required for making requests to the MCP endpoint, you will need to create some additional Tools for the MCP endpoint. Tools will need to be added to allow the endpoint to access data in your instance based on chosen reports, without this step the endpoint will not to be able to obtain data about your instance. </p><p><br></p><p>To do this head to Configuration > AI > Remote MCP Server Section, in the "Tools" table, add a new tool. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjAzOGQyYzhmLTQ5ZDQtNDg5Yy1iZDk5LTQ5ZTc1NTY1MzhlNCJ9.FDtejWCz53hLmBg2grLEPaBRqXx_pTfUPo5qtoanugw" class="fr-fic fr-fil fr-dib" width="1420" style="width: 1422px; height: 480.468px;" height="480"></p><p><strong><span style="font-size: 10pt;">Fig 19. Add new Tool </span></strong></p><p><br></p><p>When adding a tool you will need to give the tool a name description and use. </p><p><br></p><p><strong>Name - </strong>Your chosen name for the tool. We recommend this reflects the name of the report. </p><p><strong>Description - </strong>Should contain a description of the data the report contains. The AI model will use this determine when this report should be called. </p><p><strong>Use -</strong> Choose "Get Report Data".</p><p><strong>Report -</strong> Select the report who's data you would like to be available at the MCP endpoint. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJkMzgyYTNlLTdmNzItNGJkNC1hYzBlLWE4ODBlMTBkNzM4ZCJ9.D5_HeqHY5MZEROzOo6VYzLxU_WPyRliYN9FRGwqNEWA" class="fr-fic fr-fil fr-dib" width="639" height="580"></p><p><strong><span style="font-size: 10pt;">Fig 20. Custom Tool</span></strong></p><p><br></p><p>Using the Figure 20 example, all the data that is returned by the report "Customer Satisfaction Averages Report - By Technician" will be available at the MCP endpoint. When someone requests information about customer feedback via the chat profile (created earlier), data from this report will be returned. </p><p><br></p><p>You will need to add a tool for each report that contains data you would like to be available at the endpoint. The more reports added, the more information the MCP endpoint will have available and more more flexible the functionality. </p><p><br></p><p><strong><em>Note: Better results are obtained by adding lots of reports rather than few large reports containing a wide scope of data. </em></strong></p><p><br></p><p>In trials, over 140 tools are added to make report data available at the endpoint. We recommend creating a new trial of HaloPSA and using this as a reference for the tools required. You can then re-create these tools as you see them in the trial. If any of the reports are not available in your instance you can download these from the online <a href="https://usehalo.com/halopsa/guides/2425" target="_blank" rel="noopener noreferrer">repository</a>, or copy the sql across from a trial. </p><p><br></p><p>Once you have created all the tools setup is complete. Follow the section of this guide "Using the MCP Endpoint to Query and Update Instance Data" for information on how to use this functionality. </p><p><br></p><p><strong><span style="font-size: 14pt;">Setup Steps required for (HaloPSA) Instances Deployed after</span></strong><span style="color: rgb(0, 0, 0); font-size: 14pt;" data-pasted="true"><strong> January 19 2026</strong></span></p><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
.fr-fic.fr-dii {
float: none; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fil {
float: left; margin: 5px auto;
}
.fr-fic.fr-dii.fr-fir {
float: right; margin: 5px auto;
}
img.fr-dib.fr-fir {
margin-right: 0; text-align: right;
}
img.fr-dib.fr-fil {
margin-left: 0; text-align: left;
}
img.fr-dib {
margin: 5px auto; display: block; float: none;
}
img.fr-bordered {
box-sizing: content-box; border: solid 5px #CCC;
}
img.fr-shadow {
box-shadow: 10px 10px 5px 0px #cccccc;
}
img.fr-rounded {
border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
</style><p>For this to work you will need to provide API credentials to allow the runbook to access your Halo instance. </p><p><br></p><p><strong><em>Note: Ensure the<a href="https://usehalo.com/halopsa/guides/2597" target="_blank" rel="noopener noreferrer"> MCP endpoint</a> is also enabled for your instance. </em></strong></p><p><br></p><p><strong><span style="font-size: 12pt;">Create an API application</span></strong></p><p>Head to Configuration > Integrations > Halo API > View Applications > New. Here, create an application with the following configuration:</p><ul><li><strong>Application Name -</strong> HaloMCP (or any appropriate name)</li><li><strong>Authentication Method -</strong> Client ID and Secret (Services)</li><li><strong>Login Type -</strong> Agent</li><li><strong>Agent to log in as -</strong> Choose an agent who is an Administrator</li></ul><p>The application should look as shown in Figure 21. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYyMjJjYWNlLTEwNDItNGIzOC04ZmQ1LWU1ODFjNGQ4ZGE5NiJ9.Bm3hBwPGMPqjK6iIdw-dPf5KD6XS1gfJYC1Wfj_D32k" class="fr-fic fr-fil fr-dib" width="1170" style="width: 1172px; height: 669.714px;" height="670"></p><p><strong><span style="font-size: 10pt;">Fig 21. New API Application</span></strong></p><p><br></p><p>Once the application is saved head to the "Permissions" tab and give the application the "all:standard" permissions only. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJlYzE0ZTEyLTJkNWQtNGUxZi05MmVjLWQyOWJhYTM5MjBhYyJ9.RgMEhHhQPirVpPJoj0FSw4YNdPMtQ16OA0mWcX2erj8" class="fr-fic fr-fil fr-dib" width="890" style="width: 892px; height: 526.073px;" height="526"></p><p><strong><span style="font-size: 10pt;">Fig 22. Give Application Permissions</span></strong></p><p><br></p><p>Before you save the application head back to the "Details" tab and use the "Generate" button to generate a secret for the application. Once generated, copy this, along with the Client ID to a clipboard. </p><p><br></p><p>We will now plug these credentials into the runbook</p><p><br></p><p><strong><span style="font-size: 12pt;">Plug Credentials into Runbook</span></strong></p><p>Head to Configuration > Integrations > Custom Integrations > Integration Runbooks > select "HaloMCP" > Flow Chart tab > Edit the page > edit the first step of the runbook. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRjNjYzZjQwLTYwNjgtNDU2MC05M2M5LWYzZDAzOTkzNzMxMSJ9.rN1-8HAvvhOPtmwE7FQl35skJNPScxM8dRJGCdecwk4" class="fr-fic fr-fil fr-dib" width="1023" style="width: 1025px; height: 577.167px;" height="577"></p><p><strong><span style="font-size: 10pt;">Fig 23. Edit the first step of the runbook</span></strong></p><p><br></p><p>From here, Edit Method > Body tab, here paste the Client ID into the value for the "client_id" key and paste the secret value into the value for the "client_secret" key. Ensure you also enable encryption for these values. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI0NGJkM2MzLWExYjktNDNhZS05ZWJjLTk2OGIyOTg0MjYwMiJ9.-ZYZ16BGNPMB4aT4ABZznqxD3RDe-GIfemXZHYWF0DE" class="fr-fic fr-fil fr-dib" width="1483" style="width: 1485px; height: 649.438px;" height="649"></p><p><span style="font-size: 10pt;"><strong>Fig 24. Paste credentials into runbook body</strong></span></p><p><br></p><p>Then add the URL of your Halo instance into the field shown in Figure 25. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA5NmU3YTM3LTNhODYtNDVhMy04MzU4LTNlOWFjZGFiY2I4OCJ9.NnNqWKcslMchsfZ1sIN0xRlZRK2LXCRfyIT7aAVYigM" class="fr-fic fr-fil fr-dib" width="1470" style="width: 1472px; height: 450.123px;" height="450"></p><p><strong><span style="font-size: 10pt;">Fig 25. Add Halo own URL </span></strong></p><p><br></p><p>Once added, ensure you save the method, then save the runbook step then save the runbook as a whole. </p><p><br></p><p>Now you are ready to use the functionality. </p><p><br></p><p><strong><span style="font-size: 14pt;">Using the MCP Endpoint to Query and Update Instance Data</span></strong></p><p>The chat bot is used to query data in your instance. <span style="color: rgb(0, 0, 0);">Two </span>chat profiles are available for agents out of the box. You will need to use the chat profile called "HaloMCP (Beta)" for this.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM2YWVkNTU5LTQxMmMtNGJmMy04ZDdiLTNhMDI1Mzk2NGJmMSJ9.FciK_S5N6i_-qxHiYbFPKz2R_MtY6070Pd6BegTXYnU" class="fr-fic fr-fil fr-dib" width="1193" style="width: 1195px; height: 696.299px;" height="696"></p><p><strong><span style="font-size: 10pt;">Fig 26. MCP chatbot</span></strong></p><p><br></p><p>This chat profile is only available to administrator agents in Halo. These restrictions have been put in place as this functionality allows you to access all data in your instance regardless of your agent permissions. Therefore, only administrators should have this level of access. </p><p><br></p><p>The chat profile used is called "HaloMCP", therefore this is the profile that will need to be edited to change how the chat profile looks. For information on chat profile customisation checkout <a target="_blank" rel="noopener noreferrer" data-fr-linked="true" href="https://usehalo.com/halopsa/guides/2335" data-pasted="true">Chat Bot and Chat Profiles</a>.</p><p><br></p><p>Start a chat by selecting the chat icon in the bottom right of the page in the Halo agent app. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImExMTU1MDVmLTM2MTctNDg3Yi1hMjcwLTEzYTc2YTkwZWE3YiJ9.XP8GBcUrhhP-IzWbfCdtOqLGsnTm-5lrB54G4Z7haBo" class="fr-fic fr-fil fr-dib" width="1391" style="width: 1393px; height: 684.827px;" height="685"></p><p><strong><span style="font-size: 10pt;">Fig 27. Start new chat</span></strong></p><p><br></p><p>Now, simply tell the chat what data you would like to see. </p><p><br></p><p>In the Figure 28 example we have requested to see all customer feedback that has been logged this week.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRiMmQxMjdiLTIzNzUtNDI0YS1hNDcwLTNkZjk2OWI1ZGFjNCJ9.1CsMokmLi-F2_esbI5KUhhaE3YCvLnWF6uMRVjWfBJI" class="fr-fic fr-fil fr-dib" width="906" style="width: 908px; height: 556.723px;" height="557"></p><p><strong><span style="font-size: 10pt;">Fig 28. Using MCP endpoint to see Customer Feedback</span></strong></p><p><br></p><p>Then we have asked AI to log a ticket for each piece of feedback scored "Poor". </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJmOTU3MDM2LTM5M2UtNGUzNi1hNzhkLWFkNGRlMGI5NjFlYSJ9.UQ0fKrgUMyCCRUzom4RIDtAB8ARuPcNLTs3r6XJjEHU" class="fr-fic fr-fil fr-dib" width="793" style="width: 795px; height: 645.529px;" height="646"></p><p><strong><span style="font-size: 10pt;">Fig 29. Ticket logged for Poor Feedback </span></strong></p><p><br></p><p>The ticket logged looks as shown in figure 10. However, you can change elements of this ticket by giving additional information to the AI agent. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJjMWMwYmI2LTZhMGQtNDgyNS04YTYwLWNlNWQyMmEzOGE4OCJ9.HpP-22IWQjEU_Eqqx_8s1wJrb1pLE37pVHY7n0-cgzE" class="fr-fic fr-fil fr-dib" width="1265" style="width: 1267px; height: 661.582px;" height="662"></p><p><strong><span style="font-size: 10pt;">Fig 30. Ticket logged by MCP AI agent</span></strong></p><p><br></p><p><strong><span style="font-size: 12pt;">What Data can the chat return?</span></strong></p><p>The data that is available to the chat (OpenAI) is determined by the report data made available to the MCP endpoint. The MCP endpoint can obtain data from Halo reports using Tools. </p><p><br></p><p>Under Configuration > AI > Remote MCP Server section, you can see all the Tools configured for the MCP endpoint. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEwOGFkMmZiLWM0M2ItNDU1MS1iN2EwLWMwYmJlY2NmOWFlOCJ9.4ERRkmrfTUcHWAdL5UtCUgQlDU8PBfBznXJs5D4zJiA" class="fr-fic fr-fil fr-dib" width="1505" style="width: 1507px; height: 725.902px;" height="726"></p><p><strong><span style="font-size: 10pt;">Fig 31. Custom Functions (Tools) configured for the MCP endpoint </span></strong></p><p><br></p><p>Out of the box, various Tools have been added that allow report data from your Halo instance to be passed to the MCP endpoint. This data can be used by the MCP AI agent to answer queries. </p><p><br></p><p>To increase the amount of data that is available to the MCP AI agent, add a new Tool with the use "Get Report Data" and select the report you would like to provide. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhmODUyMWM0LTQyNzMtNGFhMC1iYWQwLTI5MDczNGViZDAwMCJ9.Tt4Zk6foqlNS0M0AGnGhg_QHAWh26c9ucwFNJ_feZrI" class="fr-fic fr-fil fr-dib" width="650" style="width: 652px; height: 598.663px;" height="599"></p><p><strong><span style="font-size: 10pt;">Fig 32. Add a new tool that provides additional report data</span></strong></p><p><br></p><p>It is useful to do this if you have some custom reports that contain data you would like to be able to leverage in the MCP chatbot. However, the reports made available out of the box provide comprehensive data coverage of your instance. </p><p><br></p><p><strong><span style="font-size: 12pt;">What Actions can the AI A</span></strong><strong><span style="font-size: 12pt;">gent Complete?</span></strong></p><p>The MCP AI agent can complete the following actions:</p><ul><li data-pasted="true">Add Action to Ticket</li><li>Add Note to Ticket</li><li>Apply an AI Suggestion</li><li>Assign a ticket to me</li><li>Create a new Ticket</li><li>Get Assigned Tickets</li><li>Search Knowledge Base</li><li>Get matching Articles and Tickets for a Ticket</li><li>Get One Article</li><li>Get One Ticket</li><li>Get User Info</li><li>Search the Service Catalogue</li><li>Log Time</li><li>Search Tickets</li></ul><p>If you would like to restrict which of these actions are available you can un-check "Include all system tools" and then configure the action you would like to be available as custom tools. For more information on this see <a target="_blank" rel="noopener noreferrer" data-fr-linked="true" href="https://usehalo.com/halopsa/guides/2597" data-pasted="true">Halo MCP Server Connection</a>.</p><p><br></p><p><br></p>