HaloPSA API Gateway MCP Server
Enables interaction with the HaloPSA API for managing tickets, clients, assets, and more through natural language commands in Claude Desktop.
README
HaloPSA API Gateway MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with the HaloPSA API. Built for Claude Desktop to interact with HaloPSA ā search tickets, manage clients, execute API calls, and more.
Features
- š OAuth2 Authentication ā Client credentials flow with automatic token refresh
- š« Smart Ticket Tools ā Search, create, update tickets and add actions with dedicated tools
- š„ Client & User Management ā Search clients, users, agents, sites
- š¦ Asset Management ā Search and manage assets
- š Project & Contract Tools ā Search projects, contracts, invoices
- š§ Generic API Access ā Execute any HaloPSA API call with
execute_api_call - š¾ Fast Memory ā Save frequently used queries for instant reuse
- š Built-in Endpoint Reference ā No database or swagger file needed ā all 29 endpoints documented inline
Architecture
Unlike traditional approaches that require downloading a swagger.json and building a database, this server has the complete HaloPSA API endpoint catalog built right in. This means:
- No database build step ā works immediately after install
- No swagger file needed ā endpoint reference is always available
- Pure Python ā no Node.js wrapper layer
- Smart tools for common operations + generic tools for anything else
Installation
Prerequisites
- Python 3.10+
pippackage manager
Quick Setup
-
Clone the repo:
git clone https://github.com/jasondsmith72/HALO-PSA-API-Gateway-MCP.git cd HALO-PSA-API-Gateway-MCP -
Install dependencies:
pip install -r requirements.txt -
Configure Claude Desktop ā Add to your
claude_desktop_config.json:{ "mcpServers": { "halo-psa-api": { "command": "python", "args": ["C:/path/to/HALO-PSA-API-Gateway-MCP/halo_api_gateway_server.py"], "env": { "HALO_BASE_URL": "https://yourtenant.halopsa.com", "HALO_CLIENT_ID": "your-client-id", "HALO_CLIENT_SECRET": "your-client-secret", "HALO_TENANT": "yourtenant", "HALO_SCOPE": "all" } } } } -
Restart Claude Desktop and the MCP server will be available.
Environment Variables
| Variable | Required | Description |
|---|---|---|
HALO_BASE_URL |
Yes | Your HaloPSA instance URL (e.g. https://yourtenant.halopsa.com) |
HALO_CLIENT_ID |
Yes | OAuth2 Client ID from HaloPSA API application |
HALO_CLIENT_SECRET |
Yes | OAuth2 Client Secret |
HALO_TENANT |
No* | Tenant name (required for cloud-hosted instances) |
HALO_AUTH_URL |
No | Override auth token URL (defaults to {BASE_URL}/auth/token) |
HALO_SCOPE |
No | API scope (defaults to all) |
Getting API Credentials
- Login to HaloPSA ā Configuration ā Integrations ā HaloPSA API
- Click View Applications ā New
- Set Authentication Method to
Client ID and Secret (Services) - Set Login Type to
Agentand select an agent account - Under Permissions, set to
all(or configure specific permissions) - Save and note your Client ID and Client Secret
Available Tools (22 total)
Smart Tools (High-Level)
| Tool | Description |
|---|---|
search_tickets |
Search tickets with filters (client, agent, status, etc.) |
get_ticket |
Get a single ticket by ID |
create_ticket |
Create a new ticket |
update_ticket |
Update an existing ticket |
add_action_to_ticket |
Add a note/action to a ticket |
search_clients |
Search clients/customers |
get_client |
Get a single client by ID |
search_users |
Search end-users/contacts |
search_assets |
Search IT assets |
search_agents |
Search agents/technicians |
search_projects |
Search projects |
search_contracts |
Search contracts |
search_invoices |
Search invoices |
Generic Tools (Power User)
| Tool | Description |
|---|---|
execute_api_call |
Execute any HaloPSA API call with full control |
send_raw_api_request |
Send raw API request string (e.g. GET /Tickets?open_only=true) |
Reference Tools
| Tool | Description |
|---|---|
list_endpoints |
Browse available API endpoints by category |
get_endpoint_details |
Get detailed info about any endpoint |
Fast Memory Tools
| Tool | Description |
|---|---|
save_to_fast_memory |
Save a query for quick reuse |
list_fast_memory |
List saved queries |
delete_from_fast_memory |
Delete a saved query |
clear_fast_memory |
Clear all saved queries |
Usage Examples
In Claude Desktop, you can ask:
- "Show me all open tickets for client ID 42"
- "Create a ticket for MicroTech USA about a VPN issue"
- "Search for all assets belonging to client 15"
- "What agents do we have?"
- "Add a note to ticket 1234 saying the issue has been resolved"
- "List all HaloPSA API endpoints"
- "Show me details about the Tickets endpoint"
- "Execute GET /Tickets with open_only=true and count=5"
Project Structure
HALO-PSA-API-Gateway-MCP/
āāā halo_api_gateway_server.py # Main entry point
āāā requirements.txt # Python dependencies
āāā README.md # This file
āāā api_gateway/
āāā __init__.py
āāā server.py # MCP server implementation
āāā endpoints.py # Built-in API endpoint reference (29 endpoints)
āāā fast_memory_db.py # Fast Memory storage
License
UNLICENSED ā Private use
Author
Jason Smith ā MicroTech USA
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.