halo-psa-mcp/start.sh
Piers Macrae Cockram f079a6aea8 fix: respect page_size, slim list_clients output, add OAuth scope=all
Three fixes discovered during initial deployment against
interakt.halopsa.com:

- halo-client: include scope=all in the client_credentials token
  request. Without it Halo issues a token with no read scopes — every
  /api/* call fails authorization despite a successful exchange.
  Manifested as the original "permissions issue".

- tools: add pageinate=true to every list_* call. Halo ignores
  page_size unless pagination is explicitly enabled, so requesting
  page_size=5 was returning the server-side default of 50.

- tools: project list_clients to a summary shape (id, name, top-level,
  status, customer_relationship names). Full Halo client records are
  ~18 KB each; a 5-row page was 89 KB, exceeding tool-result budgets.
  Pass full=true for the original payload; get_client still returns
  full detail.

Also: switch list_clients filter from inactive=false to the canonical
includeinactive=false, and ship start.sh (the wrapper documented in
CLAUDE.md Step 4) so downstream setups don't have to author it.

Verified end-to-end against the live instance: GET /Client with
pageinate=true&page_size=3 now returns exactly 3 records and
record_count=122 (total active clients).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-27 02:28:16 +00:00

6 lines
98 B
Bash
Executable File

#!/bin/bash
set -a
source "$(dirname "$0")/.env"
set +a
exec node "$(dirname "$0")/dist/index.js"