Skip to main content
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

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.”

Inbox settings

Both tools take inbox as an E.164 number, a PN… phone-number ID, or a recognizable local format. Run list-inboxes to find it. Business hours
  • enabled turns enforcement on or off. It has no effect until the inbox has a schedule, so an inbox with enforcement on starts enforcing hours as soon as a schedule is added.
  • timezone is the IANA timezone the schedule is read in, such as America/Toronto.
  • schedule sets the open window for the days you name, in 24-hour HHMM local time. Times such as 9:00 or 5:30pm are also accepted.
    • A day you leave out keeps its current window.
    • A day set to null is closed.
    • { "start": "0000", "end": "0000" } is open all day.
    • schedule: null removes the schedule, so business hours stop being enforced.
Call recording
  • autoRecord records every call on the inbox. The workspace’s plan must include automatic call recording.
  • callDisclosure sets how callers are told a call may be recorded, separately for inbound and outbound calls: voice plays a spoken announcement, audioTone plays a tone, and disabled plays nothing.
Before changing anything, the client reads the current settings, tells you exactly what will change, and confirms it with you. Clients that support it show a Quo confirmation prompt; otherwise the client must ask you in the chat. The name and business hours are saved separately from call recording. If one save fails after the other succeeded, the result says which change was saved.
Changes apply to live calls right away. Telling callers that a call may be recorded can be a legal requirement where you operate, so don’t turn off a recording disclosure unless you are sure you can.
Example prompts:
  • “What are the business hours and recording settings on our support line?”
  • “Close the sales line on Saturdays and open it 9am to 5pm on weekdays, Toronto time.”
  • “Turn on automatic call recording for the support line and play a spoken disclosure on inbound calls.”

Carrier registration (A2P 10DLC)

US carriers require a business to register before it texts US numbers from local numbers. This is called A2P 10DLC registration. A workspace has one registration, and once carriers approve it, every number in the workspace can text US numbers. See Carrier registration for how registration works in Quo. Only workspace owners and admins can use these tools, and the workspace needs an active paid subscription. Free trials cannot register.

Registration details

Carriers check the business against its tax registration, so the details must match it exactly. The client asks you for them rather than guessing. It can also offer to read them from a document you share in the chat, such as an IRS EIN letter (CP 575 or 147C), articles of incorporation or organization, a state business registration, or a Canadian business number confirmation. This is optional. The client reads only what the document shows, usually the legal name, legal structure, tax ID, and registered address, shows you what it read, and asks you for the rest. messageTypes says what the business texts people about. Use one or more of appointments_scheduling, transactional_notifications, customer_support, verification_security, and promotions_announcements. Quo writes the messaging details that carriers review, such as the description, sample messages, and opt-in flow, from the business details and messageTypes, in the form carriers look for. This works the same way as in the Quo app. The tools show the use case but not the rest of the messaging, and you cannot supply your own wording. To change what Quo writes, correct the business details or messageTypes with update-a2p-registration; a change to the name, alternate name, business type, website, or contact name must include messageTypes, and Quo writes the messaging again.

Submitting

Submitting is billed:
  • A one-time $19.50 registration fee, paid to the Carrier Registry on the workspace’s behalf. It is not a Quo fee.
  • A monthly fee of 1.50,or1.50, or 3 for non-profits.
  • $15 for each resubmission after carriers reject the registration.
By submitting, you also confirm that the workspace will not send messages about forbidden topics. Read the forbidden-topics policy before you submit. submit-a2p-registration always takes two calls:
  1. Review. Called without a confirmationToken, it submits and charges nothing. It returns the registration, the billing, forbidden-topics, compliance, and irreversibility notices, and a confirmationToken. The client shows you all of it and asks you to confirm.
  2. Submit. Only after you confirm, the client calls it again with the confirmationToken, billingAcknowledged: true, and forbiddenMessageTopicsAcknowledged: true. Without both acknowledgments, nothing is sent to Quo.
The token is tied to the registration as you reviewed it. Any change after the review cancels it, and the review must run again.
If a submission times out or returns a server error, it may have gone through and been charged. Do not submit again. Run get-a2p-registration to check whether the registration was submitted.

After you submit

Carrier review can take several days. Check its progress with get-a2p-registration.
  • If carriers reject the business details, the registration returns to a draft. Fix the fields the carrier messages name with update-a2p-registration, then submit again.
  • If carriers reject the campaign, the registration cannot be resubmitted through Quo MCP. Correct and resubmit it in the Quo app.
  • A submitted registration cannot be changed or canceled while carriers review it.
Example prompts:
  • “Is our carrier registration approved yet?”
  • “Help me register our business so we can text US customers. Here’s our EIN letter.”
  • “Carriers rejected our registration. What do they want us to fix?”

Messages and conversations

Choose the correct send tool

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.
  • Cannot undo or recall a message after it is sent.
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.
Example prompts:
  • “Show me yesterday’s messages across the support inbox and summarize the open questions.”
  • “Summarize this week’s support inbox, but skip conversations we already marked done.”
  • “Show the full group thread with Priya and Sam from the sales line.”
  • “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.”
  • “Mark the support conversations I replied to today as done.”

Calls and voicemail

To have Sona place a call for you, see Phone calls. 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, or pass conversation IDs to mark-conversations. 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

Phone numbers are normalized to E.164. Email values must be valid email addresses.
update-contact only works on contacts created in Quo, through the API, or through Quo MCP. Contacts created by an integration cannot be updated — use get-contact to check a contact’s source, and make the change in the system that created it.
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.”

Contact notes

Adding or editing a note doesn’t send anything to the contact. Notes can’t be deleted through Quo MCP. Example prompts:
  • “Add a note to Priya’s contact summarizing today’s call, and mention Jamie so they follow up.”
  • “What notes do we have on Northwind’s main contact?”
  • “Fix the typo in the last note on this contact.”

Tasks

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.”

Sona (beta)

Sona is Quo’s AI agent. These tools let your AI client have Sona place a phone call or handle an SMS conversation for you, and talk to Sona to check or change what Quo’s AI agents know about your business. They are in beta.
If you connected Quo MCP before October 16, 2026, disconnect it and connect it again to use these tools. They need permissions that earlier connections did not request.

Phone calls

Sona speaks as your business. It already knows your business from its business knowledge, so the task only needs what is specific to this call: the goal, what counts as done, and the details Sona needs to get there. For scheduling, include the acceptable dates, times, and timezone, and say what Sona should do if none of them work. Before placing the call, the client confirms the from number, the number to call, and the task with you, because a call cannot be undone. Clients that support it show a Quo confirmation prompt; otherwise the client must ask you in the chat. The client makes up an idempotencyKey for each call and sends it again on every retry, so a retried request never places a second call.
  • If voicemail answers, Sona hangs up by default. Set voicemail to leave-message to have Sona leave a message, and voicemailMessage (up to 1,000 characters) to choose what it says; without one, Sona leaves a short request to call back.
  • maxDurationSeconds caps how long the call may last once answered: up to 600 seconds, 300 by default.
  • Each call uses 50 of your workspace’s automation credits. A call that ends within 15 seconds is free. If your workspace is out of credits, the call fails without dialing.
  • You must be a member of the from number.
  • Quo limits how many Sona calls run at once, how many are placed each day, and how many go to one number.

SMS conversations

Sona texts as your business. It writes the first text, reads each reply, and keeps replying on its own until one of these happens:
  • It reaches the goal and hands the conversation back.
  • The person replies STOP.
  • Someone on your team replies in the conversation. Sona stops straight away.
  • The conversation is canceled, marked done, or reaches its maximum length.
Sona already knows your business from its business knowledge, so the task only needs what is specific to this conversation: the goal, what counts as done, and details about the person, such as what was already agreed and the times to offer. Before starting, the client confirms the from number, the person to text, and the task with you, because texts cannot be unsent. Clients that support it show a Quo confirmation prompt; otherwise the client must ask you in the chat. The client makes up an idempotencyKey for each conversation and sends it again on every retry, so a retried request never starts a second conversation.
  • You must be a member of the from number, and AI agent conversations must be turned on for your workspace.
  • Quo limits how many Sona conversations run at once, how many start each day, and how many go to one number.
  • A conversation can fail before any text is sent, for example when the person has opted out or your carrier registration does not allow the text. get-agent-conversation gives the reason.
  • Read the texts themselves with fetch-messages.

Business knowledge

The business knowledge is the one document every Quo AI agent in your workspace reads to understand your business, including the agent that answers new leads. Use ask-knowledge-agent to update it, or to correct how an agent described your business, such as a wrong price or outdated hours. Sona leads the conversation and asks follow-up questions. The client should pass on Sona’s messages and your answers as they are, and should not answer Sona’s questions for you. Sona keeps the knowledge to information about your one business and does not invent prices or policies. Nothing is saved until you approve Sona’s draft. Before you approve, you see the full draft and any new or changed prices and policies. Clients that support it show a Quo approval prompt; otherwise the client shows you the draft and sends your decision with decide-knowledge-save. If Sona takes too long to reply, the response says Sona is still working and includes a messageId. The client then calls ask-knowledge-agent with the interviewId and that messageId to get the reply, instead of sending the message again. Example prompts:
  • “Have Sona call Lakeview Dental at +14165550188 and book a cleaning for me next Tuesday or Wednesday afternoon, Toronto time.”
  • “Did Sona’s call to the dentist work? What time did it book?”
  • “Have Sona text Jane at +14165550100 to move her Saturday 11am appointment to Tuesday 2pm or Thursday 10am, and confirm the one she picks.”
  • “How is Sona’s conversation with Mike going?”
  • “Stop Sona’s conversation with Mike.”
  • “We don’t open on Sundays anymore. Update what our AI agents know.”
  • “The agent quoted the wrong price for a haircut. Fix it.”

Feedback

Sona’s tools are in beta. When you comment on how Sona performed, the client can offer to send your feedback with submit-feedback, including the agent call, agent conversation, or interview ID so the Quo team can find it. This tool is opt-in. A client should not run it as a routine survey or raise it in an unrelated conversation, and it should offer to send feedback at most once — after trying to help — when you ask to share feedback or hit a limitation it cannot work around. Frustration alone is not consent. A submission cannot be edited or withdrawn, and Quo does not promise a reply. Review the summary before approving it, and keep credentials, unrelated personal details, and protected health information out of the feedback. Example prompts:
  • “Send Quo my feedback that I need to schedule a message for a future date.”
  • “Yes, please pass that along to the product team.”

Fetch modes and pagination

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

One contact or group thread

Set participantPhoneNumber to query one contact. To query a group thread with fetch-messages, set participantPhoneNumbers instead: a list of every other member of the group, up to 10, not including your inbox. A group thread is matched by its exact member list, so take the list from the group’s header in a whole-inbox result.
  • 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, or participantPhoneNumbers for a group thread.
  • These queries always return the full history, including conversations marked done or snoozed.

Whole inbox

Omit the participant filters to work across the inbox. By default this includes conversations marked done or snoozed.
  • fetch-messages returns up to 10 of the most recent messages for every conversation with messages in the window, including group threads. Set createdAfter to read every message in the window. Without it, the tool reads only the inbox’s 1,000 most recent messages.
  • Group threads are listed with their members, and each message shows its sender. A conversation with more than 10 messages in the window is flagged with the exact parameters to fetch its full thread.
  • If fetch-messages stops early, because createdAfter was omitted or the window is too large to read in one call, the response says where it stopped and includes a conversationPageToken to continue.
  • maxResults applies to single-contact and group-thread message queries and is ignored by the whole-inbox message view.
  • fetch-messages and fetch-call-transcripts accept excludeDoneConversations. Set it to true to skip conversations that are currently marked done or snoozed; it defaults to false, which includes every conversation. fetch-missed-calls does not accept this filter.
  • Call tools aggregate matching calls across discovered participants, up to the requested result limit. If a call-tool 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.