Installation
You need an Autotask API user: Admin → Resources, license type API User, with an API-tracking integration code and a security level that allows what your tools do. The server finds your API zone from the username.
Claude Code
Section titled “Claude Code”claude mcp add psarelay -e AUTOTASK_USERNAME=api-user@example.com -e AUTOTASK_SECRET=your-secret -e AUTOTASK_INTEGRATION_CODE=your-code -- npx -y github:GDSTechnology/psarelayClaude Desktop
Section titled “Claude Desktop”Build the bundle from source, then open the .mcpb file it creates in the repo root and enter your
username, secret and integration code:
git clone https://github.com/GDSTechnology/psarelay.git && cd psarelaynpm ci && npm run build && npm run pack:mcpbDocker (HTTP)
Section titled “Docker (HTTP)”For ChatGPT, n8n and other remote clients:
docker run -d --name psarelay -p 8080:8080 -e AUTOTASK_USERNAME=api-user@example.com -e AUTOTASK_SECRET=your-secret -e AUTOTASK_INTEGRATION_CODE=your-code --restart unless-stopped ghcr.io/gdstechnology/psarelay:latestClients connect to http://<host>:8080/mcp (MCP Streamable HTTP). GET /health returns the version, API usage
and backpressure.
From source
Section titled “From source”npm ci && npm run buildnode dist/entry.js # stdioMCP_TRANSPORT=http node dist/index.js # HTTPProduction
Section titled “Production”Releases are cut on every merge to main and published to ghcr.io/gdstechnology/psarelay. In production
the server runs as a docker-compose service next to Postgres; the
deploy runbook covers layout, environment,
verification and rollback.
Updating is one command on the host. Install it once from the image:
docker run --rm --entrypoint cat ghcr.io/gdstechnology/psarelay:latest /app/deploy/update-psarelay.sh > /usr/local/bin/update-psarelay && chmod +x /usr/local/bin/update-psarelayupdate-psarelayIt updates only PSArelay service: pulls, keeps the previous image as :rollback, runs database
migrations, restarts, waits for /health and prints the version. It refuses while a bulk job is preparing,
and refreshes itself from each new image.
Then add the Postgres layer and the admin console.