Skip to main content
Glama

HaloPSA MCP Server

HaloPSA MCP Server

An MCP (Model Context Protocol) server that provides access to HaloPSA's reporting and REST APIs, allowing AI assistants to query and analyze HaloPSA data intelligently.

Features

  • 🔐 Secure OAuth2 authentication with HaloPSA API

  • 📊 Execute SQL queries against HaloPSA database

  • 🔍 Intelligent schema search and query suggestions

  • 📋 Complete database schema with 800+ tables

  • 🤖 AI-friendly query building assistance

  • 🌐 Full API exploration with swagger schema access

  • 📖 Browse and search API endpoints with pagination

  • 🔧 Direct API calls to any HaloPSA endpoint

Installation

NPM

Install the package from npm:

npm install -g @adamhancock/halopsa-mcp

Docker

Pull and run the Docker image:

docker run -e HALOPSA_URL=https://your-instance.halopsa.com \ -e HALOPSA_CLIENT_ID=your-client-id \ -e HALOPSA_CLIENT_SECRET=your-client-secret \ -e HALOPSA_TENANT=your-tenant \ ghcr.io/adamhancock/halopsa-mcp:latest

Usage with Claude Desktop

Using NPM Package

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "halopsa": { "command": "npx", "args": ["@adamhancock/halopsa-mcp"], "env": { "HALOPSA_URL": "https://your-instance.halopsa.com", "HALOPSA_CLIENT_ID": "your-client-id", "HALOPSA_CLIENT_SECRET": "your-client-secret", "HALOPSA_TENANT": "your-tenant" } } } }

Using Docker

Add to your Claude Desktop configuration:

{ "mcpServers": { "halopsa": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "HALOPSA_URL=https://your-instance.halopsa.com", "-e", "HALOPSA_CLIENT_ID=your-client-id", "-e", "HALOPSA_CLIENT_SECRET=your-client-secret", "-e", "HALOPSA_TENANT=your-tenant", "ghcr.io/adamhancock/halopsa-mcp:latest" ] } } }

Available Tools

Database Query Tools

halopsa_list_tables

List all available tables in the HaloPSA database:

{ filter: "fault" // Optional: filter tables by name }

halopsa_list_columns

List columns for a specific table:

{ tableName: "FAULTS", // Required: table name columnFilter: "email" // Optional: filter columns by name }

halopsa_query

Execute SQL queries against the HaloPSA database:

{ sql: "SELECT * FROM FAULTS WHERE Status = 1 LIMIT 10" }

halopsa_table_info

Get detailed information about a specific table including all columns, data types, and relationships:

{ tableName: "FAULTS" }

halopsa_build_query

Build SQL queries programmatically with a helper:

{ tableName: "FAULTS", columns: ["Faultid", "username", "Symptom"], // Optional: defaults to all columns conditions: { "Status": 1 }, // Optional: WHERE conditions orderBy: "datereported DESC", // Optional: ORDER BY clause limit: 10 // Optional: LIMIT clause }

API Exploration Tools

halopsa_list_api_endpoints

List all API endpoints with basic information. Supports pagination:

{ category: "Tickets", // Optional: filter by category limit: 100, // Optional: max results (default: 100) skip: 0 // Optional: skip for pagination }

halopsa_get_api_endpoint_details

Get complete details for specific API endpoints including parameters and schemas:

{ pathPattern: "ticket", // Required: pattern to match endpoints summaryOnly: false, // Optional: return only basic info includeSchemas: true, // Optional: include request/response schemas maxEndpoints: 10, // Optional: max endpoints to return includeExamples: false // Optional: include examples }

halopsa_search_api_endpoints

Search for API endpoints by keywords. Supports pagination:

{ query: "create ticket", // Required: search query limit: 50, // Optional: max results (default: 50) skip: 0 // Optional: skip for pagination }

halopsa_get_api_schemas

Get API schemas/models from the swagger definition. Supports pagination:

{ schemaPattern: "Ticket", // Optional: filter schemas by name limit: 50, // Optional: max schemas to return skip: 0, // Optional: skip for pagination listNames: false // Optional: include all matching schema names }

halopsa_api_call

Make authenticated API calls to any HaloPSA endpoint:

{ path: "/api/Ticket", // Required: API endpoint path method: "GET", // Optional: HTTP method (default: GET) body: {}, // Optional: request body for POST/PUT/PATCH queryParams: {} // Optional: URL query parameters }

Common Queries

Open Tickets

SELECT Faultid, username, Symptom, Status, datereported FROM FAULTS WHERE Status IN (1, 2, 3) ORDER BY datereported DESC

User List

SELECT uusername, uemail, usite, uextn FROM USERS WHERE uinactive = 0

Request Types

SELECT RTid as RequestTypeId, rtdesc as RequestTypeName FROM REQUESTTYPE WHERE RTVisible = 1

Development

Run in Development Mode

pnpm run dev

Test Connection

node dist/index.js

Schema Information

The MCP includes a complete HaloPSA database schema with:

  • 818 tables

  • Key tables include:

    • FAULTS (622 columns) - Tickets/Requests

    • USERS (213 columns) - User information

    • SITE (115 columns) - Client/Site data

    • ACTIONS (196 columns) - Ticket actions

    • REQUESTTYPE (332 columns) - Ticket types

Security Notes

  • Never commit .env files

  • Store credentials securely

  • Use read-only API credentials when possible

  • Rotate API keys regularly

License

ISC

Deploy Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Enables AI assistants to interact with HaloPSA data through secure OAuth2 authentication. Supports SQL queries against the HaloPSA database, API endpoint exploration, and direct API calls for comprehensive PSA data analysis and management.

  1. Features
    1. Installation
      1. NPM
      2. Docker
    2. Usage with Claude Desktop
      1. Using NPM Package
      2. Using Docker
    3. Available Tools
      1. Database Query Tools
      2. API Exploration Tools
    4. Common Queries
      1. Open Tickets
      2. User List
      3. Request Types
    5. Development
      1. Run in Development Mode
      2. Test Connection
    6. Schema Information
      1. Security Notes
        1. License

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/Switchboard666/halopsa-mcp'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server