OpenPhone MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.39.2Updated Nov 14, 2026

Send and read OpenPhone messages, calls, contacts and phone numbers.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server that lets an assistant read OpenPhone messages, calls, contacts and phone numbers, and send texts or create contacts.

What you can do
  • List workspace phone numbers and users, and look up contact records and custom-field definitions
  • Browse conversations and read individual messages with direction, status and timestamps
  • Send an SMS from one of your OpenPhone numbers to up to 10 recipients
  • List and inspect calls, including AI call summaries, transcripts and recording links
  • Create new contacts in the workspace
  • Check usage, request a missing feature, and manage or cancel the server subscription
When to use it
Useful when you want an assistant to answer questions about recent texts and calls on a business phone line, pull call summaries or transcripts, or send follow-up SMS and add contacts without opening OpenPhone.
Requirements
Remote streamable HTTP endpoint; no local install. Connect with the server URL only and sign in through OAuth, pasting your OpenPhone credentials on first connect. No API key or Authorization header goes in the client config. A free tier allows 50 tool calls per month; paid plans raise the limit.
Before you install
Sending a message actually sends a real SMS, may incur carrier cost and requires approved A2P 10DLC registration; creating a contact adds a persistent record. The server stores your OpenPhone credentials per user. Paid plans are billed through Stripe checkout links, and plan changes charge the price difference immediately with no refund for the current period. Call transcripts, summaries and recordings are pulled from your account.

Installation

In SourceWeft

  1. Open OpenPhone MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fopenphone/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "openphone-by-usefulapi": {
      "type": "http",
      "url": "https://openphone.usefulapi.io/mcp"
    }
  }
}

README

OpenPhone MCP by usefulapi

Send and read OpenPhone messages, calls, contacts and phone numbers. Hosted, no local install.

Live endpoint: https://openphone.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://openphone.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http openphone https://openphone.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "openphone": {      "url": "https://openphone.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your OpenPhone credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/openphone/

On first connect you'll paste your OpenPhone credentials. They are validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
openphone_list_phone_numbersreadList phone numbers
openphone_list_usersreadList users
openphone_list_contactsreadList contacts
openphone_get_contactreadGet a contact
openphone_get_contact_custom_fieldsreadGet contact custom fields
openphone_list_conversationsreadList conversations
openphone_list_messagesreadList messages
openphone_get_messagereadGet a message
openphone_send_messagewriteSend a text message
openphone_list_callsreadList calls
openphone_get_callreadGet a call
openphone_get_call_summaryreadGet a call summary
openphone_get_call_transcriptreadGet a call transcript
openphone_get_call_recordingsreadGet call recordings
openphone_list_webhooksreadList webhooks
openphone_create_contactwriteCreate a contact
openphone_usage_statusmetaUsage status (free-tier meter)
openphone_request_featuremetaRequest a missing feature
openphone_upgrademetaUpgrade to Pro or Pro+
openphone_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run openphone_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with openphone_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with openphone_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT

Source: servers/openphone/README.md at commit f22f848

Tools

16

openphone_list_phone_numbers

List phone numbers

List the OpenPhone numbers in the workspace (id, number, name, formatted number, assigned users, restrictions). Usually the first call — most other tools need a phoneNumberId. OpenPhone REST: GET /phone-numbers.

ParametersuserId

openphone_list_users

List users

List workspace users (id, email, name, role). Use to find a userId for scoping other calls. OpenPhone REST: GET /users.

ParameterspageTokenmaxResults

openphone_list_contacts

List contacts

List contacts in the workspace, optionally filtered by external ids or sources. Returns each contact's default fields (name, company, emails, phone numbers) and custom fields. OpenPhone REST: GET /contacts.

ParameterssourcespageTokenmaxResultsexternalIds

openphone_get_contact

Get a contact

Get a single contact by its id, including default fields (name, company, role, emails, phone numbers) and custom fields. OpenPhone REST: GET /contacts/{id}.

Parametersidrequired

openphone_get_contact_custom_fields

Get contact custom fields

List the workspace's contact custom-field definitions (name, key, type). Use the returned keys when creating contacts with custom fields. OpenPhone REST: GET /contact-custom-fields.

Takes no parameters.

openphone_list_conversations

List conversations

List conversations (threads), most-recent activity first, optionally filtered by phone number(s), user, and created/updated date ranges. Each conversation has participants, assignee, and last-activity metadata. OpenPhone REST: GET /conversations.

ParametersuserIdpageTokenmaxResultsrequiredcreatedAfterphoneNumbersupdatedAftercreatedBeforeupdatedBeforeexcludeInactive

openphone_list_messages

List messages

List messages in a conversation between one of your OpenPhone numbers and one or more participants. Returns text, direction, status and timestamps. OpenPhone REST: GET /messages.

ParametersuserIdpageTokenmaxResultscreatedAfterparticipantsrequiredcreatedBeforephoneNumberIdrequired

openphone_get_message

Get a message

Get a single message by its id (starts with 'AC'). OpenPhone REST: GET /messages/{id}.

Parametersidrequired

openphone_send_message

Send a text message

Send an SMS/text message from one of your OpenPhone numbers to up to 10 recipients. WRITE ACTION — this actually sends a real text message (which may incur carrier cost and requires approved A2P 10DLC registration). OpenPhone REST: POST /messages.

ParameterstorequiredfromrequireduserIdcontentrequiredsetInboxStatus

openphone_list_calls

List calls

List calls between one of your OpenPhone numbers and a participant, newest first, optionally filtered by user and created date range. Returns direction, status, duration and timestamps. OpenPhone REST: GET /calls.

ParametersuserIdpageTokenmaxResultscreatedAfterparticipantsrequiredcreatedBeforephoneNumberIdrequired

openphone_get_call

Get a call

Get a single call by its id (starts with 'AC') — direction, status, duration, participants and timestamps. OpenPhone REST: GET /calls/{id}.

Parametersidrequired

openphone_get_call_summary

Get a call summary

Get the AI-generated summary and next steps for a call by its id. Availability depends on your plan and whether the call was summarized. OpenPhone REST: GET /call-summaries/{callId}.

ParameterscallIdrequired

openphone_get_call_transcript

Get a call transcript

Get the transcription for a call by its id — dialogue segments with speaker, text and timestamps, plus overall status and duration. OpenPhone REST: GET /call-transcripts/{id}.

Parametersidrequired

openphone_get_call_recordings

Get call recordings

Get the recordings for a call by its id — each with a URL, duration, start time and status. OpenPhone REST: GET /call-recordings/{callId}.

ParameterscallIdrequired

openphone_list_webhooks

List webhooks

List all webhooks configured in the workspace (id, url, events, status). Read-only inventory — this tool does not create or delete webhooks. OpenPhone REST: GET /webhooks.

Takes no parameters.

openphone_create_contact

Create a contact

Create a new contact in the workspace. WRITE ACTION — this adds a persistent contact record. Emails and phoneNumbers are passed as simple string arrays and stored under default field labels. OpenPhone REST: POST /contacts.

ParametersroleemailssourcecompanylastNamefirstNamerequiredsourceUrlexternalIdphoneNumbers

Version history

26
  1. v1.39.2LatestNov 14, 2026
  2. v1.39.1Nov 13, 2026
  3. v1.38.0Nov 12, 2026
  4. v1.37.3Nov 11, 2026
  5. v1.36.5Nov 8, 2026
  6. v1.36.4Nov 7, 2026
  7. v1.35.3Nov 5, 2026
  8. v1.35.2Nov 5, 2026
  9. v1.35.1Nov 4, 2026
  10. v1.35.0Nov 3, 2026
  11. v1.34.1Nov 3, 2026
  12. v1.33.0Nov 1, 2026
  13. v1.31.0Oct 31, 2026
  14. v1.30.0Oct 31, 2026
  15. v1.29.2Oct 30, 2026
  16. v1.29.0Oct 30, 2026
  17. v1.24.0Oct 26, 2026
  18. v1.21.3Oct 25, 2026
  19. v1.21.0Oct 25, 2026
  20. v1.20.0Oct 24, 2026
  21. v1.17.0Oct 23, 2026
  22. v1.16.4Oct 22, 2026
  23. v1.16.3Oct 21, 2026
  24. v1.11.1Oct 9, 2026
  25. v1.10.0Oct 9, 2026
  26. v1.0.0Sep 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations