# How to integrate HaloPSA MCP with Atomic Agent

```json
{
  "title": "How to integrate HaloPSA MCP with Atomic Agent",
  "toolkit": "HaloPSA",
  "toolkit_slug": "halopsa",
  "framework": "Atomic Agent",
  "framework_slug": "atomic-agent",
  "url": "https://composio.dev/toolkits/halopsa/framework/atomic-agent",
  "markdown_url": "https://composio.dev/toolkits/halopsa/framework/atomic-agent.md",
  "updated_at": "2026-10-19T05:32:16.140Z"
}
```

## Introduction

Atomic Agent is an open-source AI agent that runs on your machine and supports local models through llama.cpp. Connect it to 1,500+ apps through Composio, including HaloPSA.
This guide uses Atomic Agent's built-in Composio integration. You need Atomic Agent v0.5.6 or later, your own Composio API key, and a HaloPSA account. See the [Atomic Agent documentation](https://atomicagent.io/docs/?cta_placement=atomic-agent-docs) for installation instructions.

## Also integrate HaloPSA with

- [ChatGPT](https://composio.dev/toolkits/halopsa/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/halopsa/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/halopsa/framework/hermes-agent)

## TL;DR

### How Atomic Agent connects to HaloPSA
Atomic Agent connects to Composio's Tool Router over Streamable HTTP MCP. It discovers the tools needed for your request, and Composio handles account authentication.
Execution and account-connection tools follow Atomic Agent's configured approval policy. Review any approval prompt before allowing an action on your connected account.

## Connect HaloPSA to Atomic Agent

### Connect HaloPSA to Atomic Agent
- Sign up or sign in to the [Composio dashboard](https://dashboard.composio.dev/?cta_placement=atomic-agent-api-key). Copy your API key.
- In Atomic Agent, open the Integrations tab and select Composio. Select API key, press e, paste the key, and press Enter. The tools become available immediately, without a restart.
- Ask Atomic Agent to do something in HaloPSA. It searches Composio for the right tool.
- On first use, open the sign-in link returned in the chat. Connect your HaloPSA account, then return to Atomic Agent to continue.
### Headless setup
Add the following line to ~/.atomic-agent/.env, replacing YOUR_COMPOSIO_API_KEY with your key. Start Atomic Agent after saving the file.

```bash
COMPOSIO_API_KEY=YOUR_COMPOSIO_API_KEY
```

## What is the HaloPSA MCP server, and what's possible with it?

The HaloPSA MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your HaloPSA account. It provides structured and secure access to tickets, customers, sites, agents, assets, and service records, so your agent can create, inspect, retrieve, and delete HaloPSA records on your behalf.
- Ticket creation and management: Have your agent create HaloPSA tickets from a summary and optional details, retrieve ticket information, or delete tickets while recording a reason.
- Customer and site lookups: Let the agent retrieve customer and site records, including related activity, permissions, setup details, and ticket-type context when available.
- Service team and user records: Direct your agent to inspect current agents, individual agents, teams, end users, and ticket-routing records to understand who handles support work.
- Asset and service record inspection: Instruct your agent to retrieve assets, inventory or service items, contracts, appointments, invoices, quotations, projects, and related operational details.
- Record cleanup: Have your agent delete supported HaloPSA records such as assets, customers, sites, users, teams, agents, projects, invoices, and other service records when they are no longer needed.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `HALOPSA_CREATE_TICKET` | Create Ticket | Create one HaloPSA ticket from a summary and optional details and routing IDs; sends the provider-required one-item array body. |
| `HALOPSA_DELETE_AGENT` | Delete Agent | Request deletion of one HaloPSA agent by numeric ID. Use only for an agent that is confirmed safe to remove; this action does not create or verify a disposable replacement. |
| `HALOPSA_DELETE_APPOINTMENT` | Delete Appointment | Delete one HaloPSA appointment by numeric ID. HaloPSA also deletes its linked Exchange event unless ignore_exchange_delete is true. |
| `HALOPSA_DELETE_ASSET` | Delete Asset | Delete one HaloPSA asset by numeric ID. |
| `HALOPSA_DELETE_ATTACHMENT` | Delete Attachment | Delete one HaloPSA attachment by numeric ID. |
| `HALOPSA_DELETE_CLIENT_CONTRACT` | Delete Client Contract | Delete one HaloPSA client contract by numeric ID. |
| `HALOPSA_DELETE_CUSTOMER` | Delete Customer | Delete one HaloPSA customer by numeric ID. Success is reported only after HaloPSA returns the endpoint's documented HTTP 200 status. |
| `HALOPSA_DELETE_INVOICE` | Delete Invoice | Delete one HaloPSA invoice by numeric ID. Set bypass_accounts_sync to true to delete it in HaloPSA without synchronizing the deletion to the connected accounts system. |
| `HALOPSA_DELETE_ITEM` | Delete Item | Delete one HaloPSA inventory or service item by numeric ID. Use only for an item that is confirmed safe to remove. |
| `HALOPSA_DELETE_KNOWLEDGE_BASE_ARTICLE` | Delete Knowledge Base Article | Delete one HaloPSA knowledge-base article by numeric ID. Use only for an article that is confirmed safe to remove. |
| `HALOPSA_DELETE_OPPORTUNITY` | Delete Opportunity | Delete one HaloPSA sales opportunity by numeric ID. |
| `HALOPSA_DELETE_PROJECT` | Delete Project | Delete one HaloPSA project by numeric ID. |
| `HALOPSA_DELETE_QUOTATION` | Delete Quotation | Delete one HaloPSA quotation by numeric ID. |
| `HALOPSA_DELETE_REPORT` | Delete Report | Delete one HaloPSA report definition by numeric ID. |
| `HALOPSA_DELETE_SITE` | Delete Site | Delete one HaloPSA customer site by numeric ID. |
| `HALOPSA_DELETE_STATUS` | Delete Status | Delete one HaloPSA ticket-status configuration record by numeric ID. Use only for a status that is confirmed safe to remove. |
| `HALOPSA_DELETE_SUPPLIER` | Delete Supplier | Delete one HaloPSA supplier by numeric ID. Use only for a supplier that is confirmed safe to remove. |
| `HALOPSA_DELETE_TEAM` | Delete Team | Delete one HaloPSA team by numeric ID. This changes tenant-level team configuration. |
| `HALOPSA_DELETE_TICKET` | Delete Ticket | Delete one HaloPSA ticket by numeric ID, optionally recording a reason. The ticket is removed from active ticket results. |
| `HALOPSA_DELETE_TICKET_ACTION` | Delete Ticket Action | Delete one HaloPSA ticket action by numeric action ID and its parent ticket ID. HaloPSA may reject deletion for protected action types; the provider's reason is returned. |
| `HALOPSA_DELETE_TICKET_TYPE` | Delete Ticket Type | Delete one HaloPSA ticket-type configuration record by numeric ID. This does not create or verify a disposable replacement. |
| `HALOPSA_DELETE_USER` | Delete User | Delete one HaloPSA end user by numeric ID. |
| `HALOPSA_GET_AGENT` | Get Agent | Return one HaloPSA agent by numeric ID. Optional flags can request expanded configuration, signature, holiday-allowance, cache, or client-context data; the response preserves additional provider fields. |
| `HALOPSA_GET_APPOINTMENT` | Get Appointment | Return one HaloPSA appointment by numeric ID, optionally with extra detail objects. |
| `HALOPSA_GET_ASSET` | Get Asset | Return one HaloPSA asset by numeric ID, optionally including activity, allowed statuses, details, diagram data, and hierarchy data. |
| `HALOPSA_GET_ATTACHMENT` | Get Attachment | Download one HaloPSA attachment by numeric ID. |
| `HALOPSA_GET_CLIENT_CONTRACT` | Get Client Contract | Return one HaloPSA client contract by numeric ID, with optional expanded billing, asset, user, schedule, and period details. |
| `HALOPSA_GET_CURRENT_AGENT` | Get Current Agent | Return a compact identity for the HaloPSA agent authorized by the current connection, without claims or access-control records. |
| `HALOPSA_GET_CUSTOMER` | Get Customer | Return one HaloPSA customer by numeric ID, with optional expanded, activity, ticket-type, period, and pre-pay data. |
| `HALOPSA_GET_INVOICE` | Get Invoice | Return one HaloPSA invoice by numeric ID, optionally with extra detail objects. |
| `HALOPSA_GET_ITEM` | Get Item | Return one HaloPSA inventory or service item by numeric ID, optionally with expanded details and tenant-specific accounting data; additional provider fields are preserved. |
| `HALOPSA_GET_KNOWLEDGE_BASE_ARTICLE` | Get Knowledge Base Article | Return one HaloPSA knowledge-base article by numeric ID, optionally with expanded details and language or organisation context. |
| `HALOPSA_GET_OPPORTUNITY` | Get Opportunity | Return one HaloPSA sales opportunity by numeric ID, optionally with extra provider detail objects. |
| `HALOPSA_GET_PROJECT` | Get Project | Return one HaloPSA project by numeric ID, optionally with expanded details. |
| `HALOPSA_GET_QUOTATION` | Get Quotation | Return one HaloPSA quotation by numeric ID, optionally with expanded details or portal-view context. |
| `HALOPSA_GET_REPORT` | Get Report | Return one HaloPSA report definition by numeric ID. Optionally include definition details or load report data with the documented report context. |
| `HALOPSA_GET_SITE` | Get Site | Return one HaloPSA customer site by numeric ID, with optional customer, permission, activity, detail, setup, and ticket-type context. |
| `HALOPSA_GET_STATUS` | Get Status | Return one HaloPSA ticket-status configuration record by numeric ID, optionally including its detailed configuration. |
| `HALOPSA_GET_SUPPLIER` | Get Supplier | Return one HaloPSA supplier by numeric ID, optionally including expanded details; additional provider fields are preserved. |
| `HALOPSA_GET_TEAM` | Get Team | Return one HaloPSA team by numeric ID, optionally including agent details and expanded team objects. |
| `HALOPSA_GET_TICKET` | Get Ticket | Return one HaloPSA ticket by numeric ID, with core assignment and classification fields and optional expanded details and most recent action. |
| `HALOPSA_GET_TICKET_ACTION` | Get Ticket Action | Get one HaloPSA ticket action by numeric action ID, optionally providing its ticket ID and requesting expanded details. |
| `HALOPSA_GET_TICKET_TYPE` | Get Ticket Type | Return one HaloPSA ticket type by numeric ID. Optional flags select the documented configuration, detail, knowledge-base, team-restriction, survey, new-ticket, and ticket-context representations. |
| `HALOPSA_GET_USER` | Get User | Return one HaloPSA end user by numeric ID, with optional customer, site, ticket-type, opportunity, supplier, activity, billing, asset, and detail context. |
| `HALOPSA_LIST_AGENTS` | List Agents | Return compact HaloPSA agent records for assignment lookup, optionally filtered by name, email address, telephone number, or team ID. |
| `HALOPSA_LIST_APPOINTMENTS` | List Appointments | Return one page of HaloPSA appointments, optionally filtered by customer, ticket, date range, or search text. |
| `HALOPSA_LIST_ASSETS` | List Assets | Return one page of HaloPSA assets, optionally filtered by customer, site, user, asset type, search text, and active state. |
| `HALOPSA_LIST_ATTACHMENTS` | List Attachments | List HaloPSA attachment metadata, optionally for one ticket. |
| `HALOPSA_LIST_CLIENT_CONTRACTS` | List Client Contracts | Return one page of HaloPSA client contracts, optionally filtered by customer, site, search text, and active state. |
| `HALOPSA_LIST_CUSTOMERS` | List Customers | Return one page of HaloPSA customers, optionally filtered by name and active state. |
| `HALOPSA_LIST_INVOICES` | List Invoices | Return one page of HaloPSA invoices, optionally filtered by date, customer, site, ticket, user, or search text. |
| `HALOPSA_LIST_ITEMS` | List Items | Return one page of HaloPSA inventory and service items with the provider's documented status, asset, supplier, accounting, stock, search, and ordering filters. |
| `HALOPSA_LIST_KNOWLEDGE_BASE_ARTICLES` | List Knowledge Base Articles | Return one page of HaloPSA knowledge-base articles using the provider's documented status, access, relationship, language, search, and ordering filters. |
| `HALOPSA_LIST_OPPORTUNITIES` | List Opportunities | Return one page of HaloPSA sales opportunities, optionally filtered by customer, assignment, status, date range, or search text. |
| `HALOPSA_LIST_PRIORITIES` | List Priorities | Return HaloPSA policy-priority mappings used to classify tickets, optionally filtered by SLA policy ID. |
| `HALOPSA_LIST_PROJECTS` | List Projects | Return one page of HaloPSA projects. HaloPSA represents projects as ticket-like records in a tickets array. |
| `HALOPSA_LIST_QUOTATIONS` | List Quotations | Return HaloPSA quotations with customer, state, approval, processing, text, attachment, ordering, and page filters. |
| `HALOPSA_LIST_REPORTS` | List Reports | Return one page of HaloPSA report definitions with the provider's documented access, chart, customer, publication, ordering, group, search, and type filters. |
| `HALOPSA_LIST_SITES` | List Sites | Return one page of HaloPSA customer sites, optionally filtered by customer, name, and active state. |
| `HALOPSA_LIST_STATUSES` | List Statuses | Return HaloPSA ticket statuses, optionally constrained to a ticket type or a specific ticket's valid context. |
| `HALOPSA_LIST_SUPPLIERS` | List Suppliers | Return one page of HaloPSA suppliers with the provider's documented status, integration, ordering, search, and top-level filters. |
| `HALOPSA_LIST_TEAMS` | List Teams | Return HaloPSA teams available for ticket assignment, optionally limited to the current agent's teams or a department. |
| `HALOPSA_LIST_TICKET_ACTIONS` | List Ticket Actions | List HaloPSA ticket actions, optionally filtering by occurrence date range and whether attachment details are included. Set ticket_id to retrieve actions for a ticket; HaloPSA can return an empty list when it is omitted. |
| `HALOPSA_LIST_TICKETS` | List Tickets | Return one page of HaloPSA tickets, optionally filtered by customer, site, user, status, assigned agent, or text search. |
| `HALOPSA_LIST_TICKET_TYPES` | List Ticket Types | Return ticket types available for ticket classification, optionally limited to types that agents can create for a customer. |
| `HALOPSA_LIST_USERS` | List Users | Return one page of HaloPSA end users, optionally filtered by customer, site, name, and active state. |
| `HALOPSA_UPSERT_AGENT` | Upsert Agent | Create or update HaloPSA agent profiles, team memberships, account enablement, administrator access, working hours, licensing, costs, notifications, and approval settings in one array request. |
| `HALOPSA_UPSERT_APPOINTMENT` | Upsert Appointment | Create or update HaloPSA appointments in one array request. Each item with id updates that appointment and each item without id creates one. HaloPSA does not document a universally sufficient minimal create payload. |
| `HALOPSA_UPSERT_ASSET` | Upsert Asset | Create or update one or more HaloPSA assets. Each item with an id updates that asset; each item without an id creates a new asset. |
| `HALOPSA_UPSERT_CLIENT_CONTRACT` | Upsert Client Contract | Create or update one or more HaloPSA client contracts. Each item with an id updates that contract; each item without an id creates a contract. Creates require client_id, ref, start_date, end_date, and billingperiod. |
| `HALOPSA_UPSERT_CUSTOMER` | Upsert Customer | Create or update one or more HaloPSA customers in the endpoint's array body. Each item with id updates that customer; each item without id creates one. |
| `HALOPSA_UPSERT_INVOICE` | Upsert Invoice | Create or update HaloPSA invoice records and their typed line items. This action does not capture payment, post or email invoices, create credit notes, or trigger accounting-system synchronization. |
| `HALOPSA_UPSERT_ITEM` | Upsert Item | Create or update HaloPSA inventory and service items in one array request. Each item with id updates that record and each item without id creates one; mixed batches are supported and can alter inventory and accounting state. |
| `HALOPSA_UPSERT_KNOWLEDGE_BASE_ARTICLE` | Upsert Knowledge Base Article | Create or update one or more HaloPSA knowledge-base articles through POST /KBArticle. Each item with id updates that article; each item without id creates one. HaloPSA documents no universally sufficient create payload. |
| `HALOPSA_UPSERT_OPPORTUNITY` | Upsert Opportunity | Upsert HaloPSA sales opportunities: each resource item with id updates that record, while each item with id omitted creates a record. HaloPSA does not document a universally sufficient minimal create payload. |
| `HALOPSA_UPSERT_PROJECT` | Upsert Project | Create or update HaloPSA project records, typed milestones, and tags. This action does not close projects, publish articles, send notifications, override record locks, or invoke provider-import and validation workflows. |
| `HALOPSA_UPSERT_QUOTATION` | Upsert Quotation | Create or update HaloPSA quotation records and typed quotation lines. This action does not send quotations, start signing or approval, create sales orders, or invoke external commerce integrations. |
| `HALOPSA_UPSERT_REPORT` | Upsert Report | Create or update HaloPSA report definitions in one array request. Each item with id updates that report and each item without id creates one; this mutates report definitions and may expose saved SQL or report output. |
| `HALOPSA_UPSERT_SITE` | Upsert Site | Create or update one or more HaloPSA customer sites. Each item with an id updates that site; each item without an id creates a site. HaloPSA does not document a universally sufficient minimal create payload. |
| `HALOPSA_UPSERT_STATUS` | Upsert Status | Create or update HaloPSA ticket statuses in one array request. Set an item's id to update that exact status, or omit id to create one. |
| `HALOPSA_UPSERT_SUPPLIER` | Upsert Supplier | Create or update one or more HaloPSA suppliers through POST /Supplier. Each item with id updates that supplier; each item without id creates one. HaloPSA does not document a universally sufficient minimal create payload. |
| `HALOPSA_UPSERT_TEAM` | Upsert Team | Create or update HaloPSA teams in one array request. Set an item's id to update that exact team, or omit id to create one. |
| `HALOPSA_UPSERT_TICKET_ACTION` | Upsert Ticket Action | Create or update ticket notes and work-log actions, optionally recording time or applying a ticket status, without sending email. Each resource with action_id updates that action; each resource without action_id creates one. |
| `HALOPSA_UPSERT_TICKET_TYPE` | Upsert Ticket Type | Create or update HaloPSA ticket types in one array request. Set an item's id to update that exact ticket type, or omit id to create one. |
| `HALOPSA_UPSERT_USER` | Upsert User | Create or update one or more HaloPSA end-user records without sending welcome email. Each item with an id updates that user; each item without an id creates one. |

## Supported Triggers

None listed.

## Troubleshooting

### Why is my API key rejected?

Copy the key directly from the Composio dashboard. Atomic Agent requires ASCII characters because it sends the key in an HTTP header. Remove any extra characters introduced when copying.

### Why are Composio tools unavailable after saving a key?

Check that you use Atomic Agent v0.5.6 or later and that Composio is enabled in your configuration. A "composio": { "enabled": false } setting disables the integration while keeping the saved key on disk.

### Does Composio have a free plan?

The Hobby plan includes 100,000 tool calls per month. Composio-managed OAuth apps have a lower included allowance. See [Composio pricing](/pricing) for the current limits that apply to your connection.

## Complete Code

None listed.

## Conclusion

### Use HaloPSA from Atomic Agent
With your account connected, ask Atomic Agent to work with HaloPSA in natural language. You can connect more apps through the same Composio integration as you need them.
Visit the [Atomic Agent website](https://atomicagent.io/?cta_placement=atomic-agent-site) or inspect the [Atomic Agent source code](https://github.com/AtomicBot-ai/atomic-agent?cta_placement=atomic-agent-repo).

## How to build HaloPSA MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/halopsa/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/halopsa/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/halopsa/framework/hermes-agent)

## Related Toolkits

- [Aeroleads](https://composio.dev/toolkits/aeroleads) - Aeroleads is a B2B lead generation platform for finding business emails and phone numbers. Grow your sales pipeline faster with powerful prospecting tools.
- [Autobound](https://composio.dev/toolkits/autobound) - Autobound is an AI-powered sales engagement platform that crafts hyper-personalized outreach and insights. It helps sales teams boost response rates and close more deals through tailored content and recommendations.
- [Better proposals](https://composio.dev/toolkits/better_proposals) - Better Proposals is a web-based tool for crafting and sending professional proposals. It helps teams impress clients and close deals faster with slick, easy-to-use templates.
- [Bidsketch](https://composio.dev/toolkits/bidsketch) - Bidsketch is a proposal software that helps businesses create professional proposals quickly and efficiently. It streamlines the proposal process, saving time while boosting client win rates.
- [Bolna](https://composio.dev/toolkits/bolna) - Bolna is an AI platform for building conversational voice agents. It helps businesses automate support and streamline interactions through natural, voice-powered conversations.
- [Botdog](https://composio.dev/toolkits/botdog) - Botdog is a LinkedIn outreach platform for managing campaigns, leads, messages, analytics, and sending accounts. It helps sales teams run outbound workflows and track performance from one place.
- [BotPenguin](https://composio.dev/toolkits/botpenguin) - BotPenguin is an AI chatbot platform for customer messaging, contacts, and conversations. It helps teams manage bot-led support and lead engagement across channels.
- [Botsonic](https://composio.dev/toolkits/botsonic) - Botsonic is a no-code AI chatbot builder for easily creating and deploying chatbots to your website. It empowers businesses to offer conversational experiences without writing code.
- [Botstar](https://composio.dev/toolkits/botstar) - BotStar is a comprehensive chatbot platform for designing, developing, and training chatbots visually on Messenger and websites. It helps businesses automate conversations and customer interactions without coding.
- [Callerapi](https://composio.dev/toolkits/callerapi) - CallerAPI is a white-label caller identification platform for branded caller ID and fraud prevention. It helps businesses boost customer trust while stopping spam, fraud, and robocalls.
- [Callingly](https://composio.dev/toolkits/callingly) - Callingly is a lead response management platform that automates immediate call and text follow-ups with new leads. It helps sales teams boost response speed and close more deals by connecting seamlessly with CRMs and lead sources.
- [Callpage](https://composio.dev/toolkits/callpage) - Callpage is a lead capture platform that lets businesses instantly connect with website visitors via callback. It boosts lead generation and increases your sales conversion rates.
- [Charla](https://composio.dev/toolkits/charla) - Charla is a live chat and AI customer-support platform for property teams. It helps manage guest conversations, property contacts, and support knowledge.
- [Chatforma](https://composio.dev/toolkits/chatforma) - Chatforma is a chatbot automation platform for building and managing bots. It helps teams run dialogs, segments, broadcasts, forms, and user updates from one place.
- [Clearout](https://composio.dev/toolkits/clearout) - Clearout is an AI-powered service for verifying, finding, and enriching email addresses. It boosts deliverability and helps you discover high-quality leads effortlessly.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Convolo ai](https://composio.dev/toolkits/convolo_ai) - Convolo ai is an AI-powered communications platform for sales teams. It accelerates lead response and improves conversion rates by automating calls and integrating workflows.
- [Crisp](https://composio.dev/toolkits/crisp) - Crisp is a customer messaging platform for live chat, contacts, helpdesk, and campaigns. It helps support teams manage customer conversations from one shared workspace.
- [Delighted](https://composio.dev/toolkits/delighted) - Delighted is a customer feedback platform based on the Net Promoter System®. It helps you quickly gather, track, and act on customer sentiment.
- [Docsbot ai](https://composio.dev/toolkits/docsbot_ai) - Docsbot ai is a platform that lets you build custom AI chatbots trained on your documentation. It automates customer support and content generation, saving time and improving response quality.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and HaloPSA MCP?

With a standalone HaloPSA MCP server, the agents and LLMs can only access a fixed set of HaloPSA tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from HaloPSA and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Atomic Agent?

Yes, you can. Atomic Agent fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right HaloPSA tools.

### Can I manage the permissions and scopes for HaloPSA while using Tool Router?

Yes, absolutely. You can configure which HaloPSA scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your HaloPSA data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
