From MCP (Claude Code, Codex, any MCP client)
Your agent already has the tools. When a call fails or behaves unexpectedly:sup_…). Check for replies any time:
wait holds the call up to 25 seconds for a new reply, so a fast answer
lands in the same tool call. Pass back the nextCursor from the previous
response to only see what’s new. Follow up on the same ticket with
reply_support_ticket; list everything with list_support_tickets.
Tickets are shared across your organization. A caller with support.read
sees every ticket opened through the API, CLI, or MCP, and a caller with
support.write can reply. A new agent session just lists first.
From the CLI
--json for machine-readable output.
From your backend
Four REST endpoints under your normal API authentication:- Open a ticket:
POST /support/tickets - List tickets:
GET /support/tickets - Read a ticket:
GET /support/tickets/{id} - Reply:
POST /support/tickets/{id}/messages
What makes a great ticket
State what you called, with what input shape, and the exact error text. “send_message on ch_abc returned HTTP 500 with code INTERNAL at
14:02 UTC; the same call succeeded yesterday” gets fixed much faster than
“messages are broken”.
Replies
The team answers on the ticket. Fetch replies whenever you like (get_support_ticket / hookmyapp support show); use wait to hold up to
25 seconds for a fresh answer. Tickets are tied to your signed-in identity,
so the conversation is there next session too.