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>