> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpressbot.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform MCP Ticket Tools

> Triage, read, reply to, assign and update support tickets from your AI client.

## What is this?

Tools for working your platform's support queue. Tools marked **Reaches the customer** email the ticket's creator.

These tools belong to the [Platform MCP](https://docs.xpressbot.org/api-reference/mcp/platform/overview.md) and are available only to platform owners and superadmins; every query is limited to **your own platform**. Each tool shows its **Mode**: **Read** runs immediately, **Write** asks your MCP client to confirm first. There is no permission column — the key's owner must be a platform owner or superadmin, checked again on every call.

## What can I do here?

* Triage the queue and read full ticket threads, including internal notes
* Add internal notes and draft replies for a person to review
* Reply to customers, change status and priority, and assign tickets
* Raise a ticket for a customer by their email

## Tools

### `list_tickets`

List support tickets of this platform, newest activity first (20 per page, max 50). Filter by status, priority, search text or creator email. Use `awaiting_staff` to find tickets nobody has answered yet — the triage queue. Returns light rows without the conversation; call `get_ticket` for the full thread.

**Mode:** Read

### `get_ticket`

One ticket with its conversation, oldest message first, **including staff-only internal notes**. Never quote internal notes to the customer. Shows the latest messages when the thread is long.

**Mode:** Read

### `get_ticket_stats`

Ticket counts: by status, open and in-progress by priority, and how many open tickets nobody has answered yet.

**Mode:** Read

### `create_ticket`

Raise a new support ticket for a customer, identified by their email. The customer is emailed a "ticket created" confirmation. If no account has that email on this platform, a minimal account is created for it (email not verified), so check the email is right first. Reaches the customer.

**Mode:** Write

### `add_ticket_internal_note`

Add a staff-only internal note. The customer is never emailed or shown it. Use it for findings, root cause, and **draft replies** a person reviews before they are sent.

**Mode:** Write

### `reply_to_ticket`

Send a **public** reply to the ticket creator: it is emailed to them and visible in their ticket. An open ticket becomes in progress and is assigned to the key owner. Closed tickets are refused. Reaches the customer.

**Mode:** Write

### `assign_ticket`

Assign a ticket to a person, or clear its assignee. Only to yourself, the platform owner, or your own active team members. Closed tickets cannot be changed.

**Mode:** Write

### `update_ticket`

Change a ticket's status and/or priority. Setting **closed** emails the creator; **resolved** sends no email (the customer can still reply to reopen it). Reaches the customer.

**Mode:** Write

### Using it for ticket triage

A common setup is a scheduled AI client that works the queue without sending anything on its own:

1. `list_tickets` with `awaiting_staff` to get the queue.
2. `get_ticket` for each, then `add_ticket_internal_note` with the verdict and a **draft** reply.
3. A person reads the note and sends it, or lets the client call `reply_to_ticket` once the drafts have proven reliable.

A ticket with an internal note is no longer "awaiting staff", which keeps a scheduled run from triaging the same ticket twice. Keep source paths, code and internal details out of public replies; they belong in the internal note.

## Troubleshooting / Technical Notes

* **A closed ticket can't be changed.** Closed tickets can't be replied to, assigned or edited.
* **A reply emailed the customer.** `reply_to_ticket` and `create_ticket` are customer-facing by design; use `add_ticket_internal_note` for drafts.
* **A tool is refused with `403`.** The key owner isn't a platform owner or superadmin, or the key was revoked. See [errors](https://docs.xpressbot.org/api-reference/mcp/errors.md).
* **"Not found" for something I know exists.** Everything is limited to your own platform; items of another platform always read as not found.
* **A Write tool never seems to run.** Your MCP client asks you to approve every Write tool call. Check for a pending approval prompt.

## Related docs

* [Platform MCP tool catalog](https://docs.xpressbot.org/api-reference/mcp/platform/tools/overview.md)
* [Platform MCP](https://docs.xpressbot.org/api-reference/mcp/platform/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.