Skip to main content
Glama

armavita-quo-mcp

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

Related MCP server: AppleScript Automation MCP

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.

Available Tools

21 tools
create_contactC

Create a new contact in the Quo workspace.

Inputs: firstName (required), lastName, company, role, +2 more.

delete_contactA

Delete a contact by ID. THIS IS DESTRUCTIVE — use with caution.

Inputs: id (required).

get_callA

Get details of a specific call by ID, including duration, status, direction.

Inputs: callId (required).

get_call_recordingsC

Get recordings for a specific call.

Inputs: callId (required).

get_call_summaryB

Get an AI-generated summary of a call (Business/Scale plans only).

Inputs: callId (required).

get_call_transcriptionB

Get the transcription of a call (Business/Scale plans only).

Inputs: callId (required).

get_contactB

Get a specific contact by ID.

Inputs: id (required).

get_contact_custom_fieldsA

List all custom contact fields defined in the workspace (name, key, type). Useful for understanding what custom data is tracked on contacts.

Inputs: no named parameters.

get_messageC

Get a specific message by its ID.

Inputs: id (required).

get_phone_numberC

Get details of a specific phone number by ID, including users, restrictions, and forwarding settings.

Inputs: phoneNumberId (required).

get_userB

Get a specific user by ID, including their email, name, role, and picture.

Inputs: userId (required).

get_voicemailC

Get the voicemail for a call.

Inputs: callId (required).

list_callsC

List calls for a specific phone number and participant.

Inputs: phoneNumberId (required), participants (required), maxResults, createdAfter, +2 more.

list_contactsB

List contacts in the Quo workspace with optional filtering.

Inputs: maxResults, pageToken, externalIds.

list_conversationsB

List conversations, optionally filtered by phone number(s), user, or date range. Ordered by most recent activity.

Inputs: phoneNumbers, userId, createdAfter, createdBefore, +5 more.

list_messagesA

List messages for a specific phone number and conversation participant. Returns messages in chronological order with pagination.

Inputs: phoneNumberId (required), participants (required), maxResults, createdAfter, +2 more.

list_phone_numbersB

List all phone numbers in the Quo workspace, with their users and settings.

Inputs: userId.

list_usersB

List all users in the Quo workspace.

Inputs: no named parameters.

list_webhooksB

List all configured webhooks.

Inputs: no named parameters.

send_textA

Send an SMS text message from a Quo phone number to a recipient. Use E.164 format for phone numbers (e.g. +18325551234). The 'from' field can be a phone number ID (PN...) or E.164 number.

Inputs: from (required), to (required), content (required), setInboxStatus.

update_contactC

Update an existing contact by ID.

Inputs: id (required), firstName, lastName, company, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources like contacts, calls, messages, phone numbers, users, and webhooks, with clear action distinctions (e.g., create_contact vs. update_contact). However, some potential overlap exists between list_calls and list_conversations, as calls might be part of conversations, which could cause minor confusion for agents.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, such as create_contact, list_calls, get_user, and send_text. All tools use snake_case with clear verbs (create, delete, get, list, update, send), making them predictable and easy to understand.

    Tool Count4/5

    With 21 tools, the count is slightly high but reasonable for a comprehensive CRM/communication platform like Quo, covering contacts, calls, messages, phone numbers, users, and webhooks. It feels a bit heavy but not excessive, as each tool serves a specific function in the domain.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for the domain, including create, get, list, update, and delete operations for contacts, calls, messages, phone numbers, users, and webhooks. There are no obvious gaps; agents can perform core workflows like managing contacts, handling calls, and sending messages without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Stdio MCP server for curated GoHighLevel API v2 coverage, enabling create, update, and delete operations on custom fields, contacts, opportunities, tags, conversations, calendars, and more, with safe guarded destructive tools requiring explicit confirmation.
      56
      21 npm
      2
      AGPL 3.0
    • F
      license
      A
      quality
      C
      maintenance
      MCP server for Personal OS API that enables managing tasks, notes, projects, collections, reviews, and more through typed tools over stdio.
      66
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A stdio-based MCP server that exposes the Orbit CPaaS API as tools, enabling sending SMS, managing campaigns, and other communication workflows through natural language in MCP clients.
      6 npm
      MIT