Quo for AI agents

Quo, formerly OpenPhone, is a business phone platform for managing calls, messages, and contacts across a team. Sales and support teams use it as a shared business phone line. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

CommunicationAPI keyMCP + RESTquo.com
AUDIT LOG · QUOPOLICY: acme-support
09:41:07 · claude · u_8f2read
quo.list_calls
List Calls✓ allowed · 212ms
09:41:08 · claude · u_8f2read
quo.get_call
Get Call✓ allowed · 164ms
09:41:09 · claude · u_8f2write
quo.create_task
Create Task✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
quo.delete_task
Delete Task✕ blocked · policy: deny
EVERY QUO CALL, ON THE RECORD
01 · USE CASES

What agents do in Quo.

01

Send a text message

Send a message to a contact from a shared business number and log the conversation.

02

Check call recordings read-only

List call recordings for a number to review a past customer conversation.

03

Delete a contact with approval

Remove a contact from the directory only after confirming it is a duplicate.

02 · ACTIONS

36 Quo actions, graded by risk.

Every Quo action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

20

Look things up. Allowed by default.

  • quo.get_call
    Get Call
  • quo.get_task
    Get Task
  • quo.get_user
    Get User
  • quo.list_calls
    List Calls
  • quo.list_tasks
    List Tasks
  • quo.list_users
    List Users
  • quo.get_contact
    Get Contact
  • quo.get_message
    Get Message
  • quo.get_webhook
    Get Webhook
  • quo.list_contacts
    List Contacts
  • quo.list_messages
    List Messages
  • quo.list_webhooks
    List Webhooks
  • quo.get_phone_number
    Get Phone Number
  • quo.get_call_voicemail
    Get Call Voicemail
  • quo.list_conversations
    List Conversations
  • quo.list_phone_numbers
    List Phone Numbers
+ 4 MORE

write

13

Create and change things. Allow, or ask the user first.

  • quo.create_task
    Create Task
  • quo.update_task
    Update Task
  • quo.send_message
    Send Message
  • quo.create_contact
    Create Contact
  • quo.create_webhook
    Create Webhook
  • quo.update_contact
    Update Contact
  • quo.update_webhook
    Update Webhook
  • quo.send_message_and_mark_conversation_done
    Send Message and Mark Conversation Done
  • quo.set_task_assignee
    Set Task Assignee
  • quo.set_task_due_date
    Set Task Due Date
  • quo.set_task_completion
    Set Task Completion
  • quo.set_conversation_status
    Set Conversation Status
  • quo.set_task_conversation_link
    Set Task Conversation Link

destructive

3

Delete, cancel or archive. Ask first, or deny outright.

  • quo.delete_task
    Delete Task
  • quo.delete_contact
    Delete Contact
  • quo.delete_webhook
    Delete Webhook
03 · HOW IT WORKS

Quo in three steps.

  1. 01Your users connect QuoThey add their Quo api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create Task” can wait for the user, and “delete Task” can be denied outright.
  3. 03Any agent can actYour agent calls Quo through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('quo', {
  read: 'allow',
  write: 'ask',        // create_task
  destructive: 'deny',  // delete_task
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Quo connects.

Users add their Quo api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same Quo connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Quo from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Quo and Arc0, answered.

Q01

Can I use Quo with Claude, ChatGPT or Cursor?

Yes. Connect Quo to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Quo actions you allow.

Q02

How do users connect Quo?

Users add their Quo api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which Quo actions can my agent take?

36 in total: 20 read, 13 write and 3 destructive, such as “create Task”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Quo?

Yes. Actions like “delete Task” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Quo too?

Yes. The same Quo connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Quo into your agent.

Your users connect Quo once, under your brand. Your agent gets 36 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan