Skip to main content
Glama
AgentPhone-AI

AgentPhone MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for HTTP mode (default: 3000).
AGENTPHONE_API_KEYNoYour AgentPhone API key. Required for stdio mode; for HTTP mode, can be passed via Authorization header instead.
AGENTPHONE_BASE_URLNoOverride the API base URL (default: https://api.agentphone.ai).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
account_overviewA

Get a complete snapshot of your AgentPhone account: agents, phone numbers, webhook status, and usage limits.

list_numbersA

List all phone numbers in your account, each with its ID, status, country, and assigned agent.

buy_numberA

Purchase a new phone number. This is a paid purchase that charges the account's balance. area_code requests a specific region (e.g. '415' for San Francisco); agent_id attaches it on purchase. Requires confirm=true to proceed.

send_messageA

Send an SMS or iMessage from one of your agent's phone numbers, or react to a message.

The agent must have at least one phone number attached. If the agent has multiple numbers, number_id or from_number selects which one to send from. iMessage extras (silently ignored on SMS): reply_to_message_id threads the reply under an earlier message, and send_style adds an expressive screen/bubble effect. To react to a message instead of sending one, set reaction and react_to_message_id (iMessage only); to_number and body are not needed in that case.

get_messagesA

Get SMS messages for a specific phone number, identified by its number ID. Returns individual messages rather than grouped conversation threads.

list_callsA

List recent calls. Scope by agent_id or number_id, or use status/direction/search to filter globally.

When agent_id or number_id is passed, status/direction/search filters are not applied. Returns call summaries including each call's ID, direction, participants, and status.

get_callA

Get details and transcript for a specific call, identified by its call ID. Pass wait=true to block until an in-progress call finishes before returning.

make_callA

Initiate an outbound, webhook-driven phone call where your backend handles the conversation logic.

The agent must have a phone number attached and a webhook configured. Every call automatically opens with an automated-assistant disclosure (added server-side and not removable).

make_conversation_callA

Place a phone call where the AI has an autonomous conversation about a given topic — scheduling, surveys, follow-ups, etc. No webhook setup needed.

The agent must have a phone number attached. Every call automatically opens with an automated-assistant disclosure (added server-side; cannot be disabled via topic or initial_greeting). By default this blocks until the call finishes and returns the full transcript. Set wait=false for fire-and-forget.

list_agentsA

List all agents with their phone numbers and voice configuration. An agent is required before you can make calls — it owns phone numbers and handles voice/SMS.

create_agentA

Create a new agent. An agent owns phone numbers and handles calls/SMS.

A newly created agent has no phone number until one is attached. Set voice_mode to 'hosted' with a system_prompt for autonomous AI voice calls, or 'webhook' (default) to forward call transcripts to your webhook URL.

update_agentA

Update an agent's configuration — name, description, voice settings, instructions, greeting, call transfer, or voicemail. Only provided fields are updated. Switching voice_mode to 'hosted' requires a system_prompt.

delete_agentA

Delete an agent permanently. Phone numbers attached to it are kept but unassigned. This cannot be undone.

get_agentA

Get details for a specific agent including its phone numbers, voice configuration, and instructions.

attach_numberB

Attach a phone number to an agent so the agent handles calls/SMS on that number. Takes an agent ID and a phone number ID.

detach_numberB

Detach a phone number from an agent. The number is kept in your account but becomes unassigned.

list_voicesA

List available voices for agents. Each voice has a voice_id used in an agent's voice field.

list_conversationsA

List SMS conversations. Optionally filter by agent_id to see conversations for a specific agent.

Each conversation is a thread between your number and an external contact, with its ID, participant, message count, and last-message preview.

get_conversationB

Get a specific SMS conversation with full message history, identified by its conversation ID.

update_conversationA

Set metadata on a conversation. Use this to store custom state, tags, or context that persists between messages. Pass null to clear metadata.

list_contactsA

List saved contacts (your address book). Optionally filter with a search term that matches name or phone number.

manage_contactA

Create, update, or delete a saved contact. Set action to choose the operation.

  • create: requires phone_number and name

  • update: requires contact_id; only the fields you pass are changed

  • delete: requires contact_id (permanent)

contact_id refers to a saved contact.

get_usageA

Get account usage statistics. By default returns a summary with number usage plus message, call, and webhook volume. Use breakdown='daily' or 'monthly' for time-series data.

get_webhookA

Get the webhook configuration. Pass agent_id to get an agent-specific webhook, or omit for the project-level default.

set_webhookA

Set a webhook URL to receive inbound messages and call events.

Pass agent_id to set a webhook for a specific agent (overrides project default). Omit agent_id to set the project-level webhook for all agents. The webhook secret is returned — use it to verify signatures.

delete_webhookA

Remove a webhook. Pass agent_id to remove an agent's webhook (falls back to project default). Omit agent_id to remove the project-level webhook.

test_webhookA

Send a test event to verify a webhook is working. Returns the HTTP status code and response time.

Pass agent_id to test that agent's webhook. Omit to test the project-level webhook.

list_webhook_deliveriesA

View recent webhook delivery history. Shows which events were delivered, HTTP status codes, and timing.

Pass agent_id to see deliveries for that agent's webhook. Omit for project-level.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 28 tools

Disambiguation4/5

Most tools have clearly distinct resource+action targets, and the two call tools (make_call vs make_conversation_call) are well-differentiated by their descriptions. Minor overlap exists in the messaging domain where get_messages (raw per-number messages) could be confused with get_conversation (threaded history), but descriptions clarify the boundary.

Naming Consistency4/5

The set overwhelmingly follows a consistent verb_noun pattern (list_agents, create_agent, get_webhook, send_message). The main deviations are account_overview (noun-first) and manage_contact (a bundled multi-operation CRUD tool) versus the otherwise granular per-verb style.

Tool Count3/5

28 tools is on the heavy side of the recommended range, though the domain (agents, numbers, calls, SMS, conversations, contacts, webhooks, usage) is genuinely broad. Almost every tool earns its place with little redundancy, but the count pushes into borderline-heavy territory.

Completeness4/5

Coverage is strong: full CRUD for agents and contacts, complete webhook lifecycle (get/set/delete/test/deliveries), and call/message/conversation operations. The notable gap is the phone-number lifecycle — buy_number exists but there is no release/delete or update number operation.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive