Skip to main content
Glama

OpenPhone MCP by usefulapi

Send a text message

openphone_send_message
Destructive

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesRecipients in E.164 format (or contact ids), 1-10 items (required).
fromYesThe sending OpenPhone number — a phone-number id ('PN...') or E.164 number, e.g. '+15555555555' (required).
userIdNoThe sending user id ('US...'); defaults to the phone number's owner.
contentYesThe message body, 1-1600 characters (required).
setInboxStatusNoSet to 'done' to mark the conversation complete after sending.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry destructiveHint=true; the description does the heavy lifting by disclosing that this is a WRITE ACTION, that it sends a real message, that it may incur carrier cost, and that A2P 10DLC registration is required, plus the underlying endpoint. This is behavior an agent cannot infer from the annotation alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what it does, the critical write/cost caveat, and the API mapping. Front-loaded and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description still doesn't hint at what a successful response contains (message id, delivery status) or failure modes beyond registration. For a send tool this is a minor gap; the send-time risks are well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters (to, from, userId, content, setInboxStatus) are already documented with formats and bounds. The description only restates the 'up to 10 recipients' limit already encoded as maxItems, adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Send an SMS/text message from one of your OpenPhone numbers') plus the recipient ceiling, which cleanly separates it from the read-side siblings like openphone_get_message and openphone_list_messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes prerequisites (approved A2P 10DLC registration) and warns that this is a real send, but it never states when to choose this tool over an alternative or any exclusions. Usage is implied by the write nature rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.