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

# Supported tools

> Review the current tools, limits, and usage patterns available through Quo MCP.

Quo MCP currently exposes the same complete toolset to Claude, ChatGPT, and other connected MCP clients. A client can call several tools in one task—for example, discover an inbox, fetch its recent messages, and create follow-up tasks from the results.

Tool names and parameters are stable identifiers. How you select or approve a tool call depends on your MCP client.

## Workspace discovery

| Tool           | What it does                                                                                      | Key notes                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `list-users`   | Lists workspace members with their ID, name, email, and role.                                     | Supports `pageToken`; 1–50 results per page. Use the returned `US…` ID in tools that accept a `userId`.    |
| `list-inboxes` | Lists Quo phone numbers with their phone-number ID, E.164 number, inbox name, and assigned users. | Optionally filter by `userId`. Use this before a fetch or send tool when you do not know the inbox number. |

Example prompts:

* “Which Quo numbers can I use, and who is assigned to each one?”
* “Find Jamie's user ID and show the inboxes assigned to them.”

## Messages and conversations

| Tool                 | What it does                                                                                                | Key notes                                                                                                                                                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fetch-messages`     | Fetches message history for an inbox, either for one contact or across the inbox.                           | Returns message text and any MMS attachments with their media type and URL. Filter by participant, date range, or sending team member. See [Fetch modes and pagination](#fetch-modes-and-pagination). |
| `send-message`       | Sends an SMS from a Quo inbox to one recipient.                                                             | The send is irreversible. The recipient must be a valid phone number; international E.164 numbers are supported.                                                                                      |
| `send-group-message` | Starts one shared SMS thread with 2–10 recipients.                                                          | Every recipient can see every other recipient's phone number and all replies.                                                                                                                         |
| `send-bulk-messages` | Sends SMS to 2–40 recipients as separate one-to-one messages, with identical or recipient-specific content. | Recipients do not see one another. The tool reports per-recipient failures and may partially succeed.                                                                                                 |

### Choose the correct send tool

| Desired result                                   | Tool                 | Recipients see one another? |
| ------------------------------------------------ | -------------------- | --------------------------- |
| Text one person                                  | `send-message`       | Not applicable              |
| Put 2–10 people in one shared thread             | `send-group-message` | Yes                         |
| Broadcast the same text privately to 2–40 people | `send-bulk-messages` | No                          |
| Send personalized text privately to 2–40 people  | `send-bulk-messages` | No                          |

### Bulk message modes

`send-bulk-messages` accepts one of two input modes:

* **Same message:** Provide `to` as an array of 2–40 phone numbers and `content` as the message sent to every recipient.
* **Personalized messages:** Provide `messages` as an array of 2–40 objects, each containing that recipient's `to` phone number and `content`.

Use exactly one mode per call. Do not combine `messages` with `to` or `content`, and include each recipient only once. Use `send-message` when sending to one person.

All three send tools:

* Require a `from` number that belongs to the connected Quo workspace. The tool accepts its E.164 number or `PN…` phone-number ID.
* Accept message content up to 1,600 characters.
* Use prepaid messaging credits and count as API-powered messages. See [API pricing](/docs/mdx/pricing-support/pricing-overview).
* Cannot undo or recall a message after it is sent.

<Warning>
  Confirm the sender, recipients, message content, and whether the recipients should share a thread before sending. In particular, never substitute `send-group-message` for a private broadcast.
</Warning>

Example prompts:

* “Show me yesterday's messages across the support inbox and summarize the open questions.”
* “Draft a reply to +14165550100, but ask me to approve it before sending.”
* “Send this service notice privately to these 12 customers so none of them can see the other numbers.”
* “Send each attendee their own confirmation time from this list as a private message.”

## Calls and voicemail

| Tool                     | What it does                                                                                                        | Key notes                                                                                                                    |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `fetch-call-transcripts` | Fetches completed call transcripts for a Quo inbox.                                                                 | Requires the Quo Business plan and calls where transcription was enabled. Filter by participant, date range, or team member. |
| `fetch-missed-calls`     | Fetches missed incoming calls and includes voicemail status, transcript, and recording URL when a voicemail exists. | Returns only incoming calls with status `missed`, `no-answer`, or `abandoned`; this filter cannot be changed.                |

Voicemail processing is asynchronous. If a voicemail has an `in-progress` status, its duration, transcript, and recording URL may be empty; retry after processing completes. A missed call with no voicemail is still returned.

Call and message results include activity IDs (`AC…`). Multi-contact results can also include conversation IDs (`CN…`). Use these IDs to link a follow-up task to the exact call, message, or conversation.

Example prompts:

* “What calls did we miss yesterday, and which callers left a voicemail?”
* “Summarize this week's completed call transcripts for the sales inbox.”
* “Find Pat's call from this morning and create a task linked to that call.”

## Contacts

| Tool             | What it does                                                                | Key notes                                                                                                            |
| ---------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `list-contacts`  | Lists contacts with their ID, name, company, role, email, and phone number. | Optionally filter by external IDs or sources. Supports `pageToken`; 1–50 results per page.                           |
| `get-contact`    | Fetches one contact by ID.                                                  | Includes default fields, source metadata, and workspace custom fields.                                               |
| `create-contact` | Creates a contact and returns its new contact ID.                           | `firstName` is required. Last name, company, role, email, and phone number are optional.                             |
| `update-contact` | Updates an existing contact's default fields.                               | Omit a field to leave it unchanged; pass `null` to clear it. Use `get-contact` first when the current value matters. |

Phone numbers are normalized to E.164. Email values must be valid email addresses.

Example prompts:

* “Look up the contact with +14165550100 and show their custom fields.”
* “Create a contact for Priya Shah at Northwind, then show me the new contact ID.”
* “Clear the outdated role on this contact without changing any other field.”

## Tasks

| Tool          | What it does                                                                                              | Key notes                                                                                                                   |
| ------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `list-tasks`  | Lists workspace tasks with status, title, due date, assignee, linked record, creation time, and revision. | Supports `pageToken`; 1–100 results per page.                                                                               |
| `create-task` | Creates a task linked to an inbox, conversation, or specific activity.                                    | Title and description are required. Provide exactly one link target: `inboxPhoneNumber`, `conversationId`, or `activityId`. |
| `update-task` | Changes a task's content, assignee, due date, completion status, or conversation link.                    | Performs one change type per call. Call it again for each additional change.                                                |

When creating a task, use the most specific link available:

1. Use an `activityId` (`AC…`) for one particular call or message.
2. Use a `conversationId` (`CN…`) for the whole thread with a contact.
3. Use an inbox number or `PN…` ID only when the task is not about a specific activity or conversation.

`update-task` can update the title and description together as one change. Assignment, unassignment, due-date changes, completion or reopening, and conversation linking or unlinking are separate change types.

Example prompts:

* “List the open tasks and show who each is assigned to.”
* “Create a follow-up task for tomorrow linked to this missed call and assign it to Alex.”
* “Mark task `TK…` complete.”

## Fetch modes and pagination

The fetch tools can search a specific contact deeply or discover activity across an inbox broadly.

### One contact

Set `participantPhoneNumber` to query one contact.

* `fetch-messages`, `fetch-call-transcripts`, and `fetch-missed-calls` return up to 100 matching records per page.
* If the response includes a next-page token, call the same tool with the same filters plus `pageToken`.
* A `pageToken` can be used only when `participantPhoneNumber` is set.

### Whole inbox

Omit `participantPhoneNumber` to discover active conversations across the inbox.

* `fetch-messages` returns up to 10 in-window messages per contact across up to 50 contacts. It flags contacts with more messages so the client can re-query that contact in one-contact mode.
* `maxResults` applies to one-contact message queries and is ignored by the whole-inbox message view.
* Call tools aggregate matching calls across discovered participants, up to the requested result limit.
* If a response indicates that older conversations remain, continue discovery with the returned `conversationPageToken`.

The tool response includes the token and guidance needed for the next call. Treat page tokens as opaque and do not modify them.

## Dates, times, and phone numbers

* Pass `createdAfter`, `createdBefore`, and task due dates as ISO 8601 datetimes with `Z` or an explicit offset, such as `2026-08-21T14:00:00-04:00`.
* Fetch results use UTC timestamps. A client should convert relative requests such as “yesterday” from the user's local timezone to the corresponding UTC range, then present results in the user's timezone.
* Use E.164 for external phone numbers, such as `+14165550100`. International numbers are supported.
* When a tool accepts an inbox, use either its E.164 number or its `PN…` ID. Run `list-inboxes` to discover valid values.

## Related guidance

* [Connect to Quo MCP](/docs/2026-03-30/mcp/connect)
* [Security best practices](/docs/2026-03-30/mcp/security)
