TypeScript MCP server exposing 18 tools for querying a Halo PSA instance via OAuth 2.0 Client Credentials: - Tickets / actions (list, get, time entries) - Clients / sites (list, get) - Contracts (list, get — recurring service agreements) - Invoices — both one-off (list, get) and recurring (list, get) - Projects (list, get) - Assets / configuration items (list, get) - Agents, reports (list) - revenue_breakdown — composite tool that cross-references contracts, recurring invoices, and one-off invoices to separate recurring (MRR) from non-recurring revenue per client Build artefacts verified: npm install clean (0 vulnerabilities, 107 pkgs), npm run build produces dist/*.js with no TS errors, server boots and announces 'Halo PSA MCP server running on stdio'. Shipping with Dockerfile (multi-stage, alpine), .env.example, README.md (user-facing), and CLAUDE.md (deployment briefing for downstream Claude Code setup on customer machines). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 lines
445 B
Plaintext
12 lines
445 B
Plaintext
# Halo PSA instance URL (e.g. https://yourcompany.halopsa.com)
|
|
HALO_INSTANCE_URL=https://yourcompany.halopsa.com
|
|
|
|
# OAuth 2.0 Client Credentials — create these in Halo:
|
|
# Configuration > Integrations > Halo PSA API > Applications > New
|
|
# Auth method: "Client ID and Secret (Services)"
|
|
HALO_CLIENT_ID=your-client-id-guid
|
|
HALO_CLIENT_SECRET=your-client-secret
|
|
|
|
# Optional: tenant name (required for multi-tenant Halo instances)
|
|
HALO_TENANT=
|