ArmaVita Quo MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install
bash ./run.sh
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "QUO_API_KEY=${QUO_API_KEY}" armavita-quo-mcp -- bash "<FULL_PATH_TO_ARMAVITA_QUO_MCP>/dist/index.js"

Replace <FULL_PATH_TO_ARMAVITA_QUO_MCP>/dist/index.js with the actual folder you prepared in step 1.

Required:QUO_API_KEY+ 1 optional
README.md

Local-first MCP server for Quo API workflows

armavita-quo-mcp

Brought to you by ArmaVita.com Need a custom implementation? Contact us.

armavita-quo-mcp is a local-first MCP server for Quo API workflows (messaging, calls, contacts, users, phone numbers, and webhooks).

  • MCP transport: local stdio
  • Runtime: Node.js 18+
  • Auth: QUO_API_KEY
  • License: AGPL-3.0-only

Install

npm install

Run

bash ./run.sh

run.sh verifies Node/npm, installs dependencies if needed, then starts the MCP server.

Required Environment Variable

  • QUO_API_KEY: Quo API key used for all API calls.

Optional:

  • QUO_HTTP_TIMEOUT_MS: request timeout in milliseconds (default: 30000).

Quick MCP Client Config

Use this pattern in your MCP client config:

{
  "mcpServers": {
    "armavita-quo-mcp": {
      "command": "bash",
      "args": ["/absolute/path/to/armavita-quo-mcp/run.sh"],
      "env": {
        "QUO_API_KEY": "YOUR_QUO_API_KEY"
      }
    }
  }
}

If your client launches from this folder, you can use:

{
  "mcpServers": {
    "armavita-quo-mcp": {
      "command": "bash",
      "args": ["./run.sh"],
      "env": {
        "QUO_API_KEY": "YOUR_QUO_API_KEY"
      }
    }
  }
}

Tool Coverage

  • Messages: send_text, list_messages, get_message
  • Conversations: list_conversations
  • Contacts: create_contact, list_contacts, get_contact, update_contact, delete_contact, get_contact_custom_fields
  • Calls: list_calls, get_call, get_call_recordings, get_call_summary, get_call_transcription, get_voicemail
  • Phone numbers: list_phone_numbers, get_phone_number
  • Users: list_users, get_user
  • Webhooks: list_webhooks

Pagination

  • List endpoints expose Quo pagination parameters such as maxResults and pageToken.
  • Preserve and pass forward returned page tokens to continue pagination.

Usage Notes

  • Use E.164 format for phone numbers where required (for example +18325551234).
  • update_contact requires at least one field to update.
  • API failures are returned from Quo status and response details, with secrets redacted in server error paths.

Security

  • Never commit real QUO_API_KEY values.
  • Keep credentials in client/server env config, not in source files.
  • Use separate keys for dev/staging/prod.

Docs

Scope

  • This repository is an OSS local MCP server.
  • Transport mode is local stdio only.
  • Tool aliases are intentionally not exposed.

Development

Syntax check:

npm run check

Start directly:

npm start

License

GNU Affero General Public License v3.0 (AGPLv3). See LICENSE.

Tools (21)

send_textSends a text message via Quo.
list_messagesLists messages from the Quo account.
get_messageRetrieves details of a specific message.
list_conversationsLists all conversations.
create_contactCreates a new contact.
list_contactsLists all contacts.
get_contactRetrieves details of a specific contact.
update_contactUpdates an existing contact.
delete_contactDeletes a contact.
get_contact_custom_fieldsRetrieves custom fields for a contact.
list_callsLists call history.
get_callRetrieves details of a specific call.
get_call_recordingsRetrieves recordings for a specific call.
get_call_summaryRetrieves the summary of a call.
get_call_transcriptionRetrieves the transcription of a call.
get_voicemailRetrieves voicemail details.
list_phone_numbersLists available phone numbers.
get_phone_numberRetrieves details of a specific phone number.
list_usersLists users in the account.
get_userRetrieves details of a specific user.
list_webhooksLists configured webhooks.

Environment Variables

QUO_API_KEYrequiredQuo API key used for all API calls.
QUO_HTTP_TIMEOUT_MSRequest timeout in milliseconds.

Configuration

claude_desktop_config.json
{"mcpServers": {"armavita-quo-mcp": {"command": "bash", "args": ["./run.sh"], "env": {"QUO_API_KEY": "YOUR_QUO_API_KEY"}}}}

Try it

List my recent conversations and summarize the last message.
Create a new contact with the name John Doe and phone number +18325551234.
Find the transcription for the most recent call.
List all phone numbers associated with my account.

Frequently Asked Questions

What are the key features of ArmaVita Quo?

Local-first architecture using stdio transport. Comprehensive support for Quo messaging and call workflows. Full CRUD operations for contact management. Access to call recordings, summaries, and transcriptions. Support for pagination on list endpoints.

What can I use ArmaVita Quo for?

Automating customer follow-ups by pulling recent call summaries into Claude.. Syncing contact information between local databases and Quo.. Reviewing call transcriptions to generate meeting notes or action items.. Managing communication workflows directly from an AI-powered IDE..

How do I install ArmaVita Quo?

Install ArmaVita Quo by running: npm install && bash ./run.sh

What MCP clients work with ArmaVita Quo?

ArmaVita Quo works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep ArmaVita Quo docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare