PluginBench
MCP Server
Active
MIT

AgentPhone MCP Server

io.github.AgentPhone-AI/agentphone

Give AI agents real phone numbers, SMS, and voice calls via MCP.

What is the AgentPhone MCP server?

The AgentPhone MCP server enables AI agents to buy phone numbers, send and receive SMS messages, and place voice calls through natural language commands. It integrates with Cursor, Claude Desktop, and other MCP-compatible clients, allowing agents to manage phone-based communication with custom voices, system prompts, and webhook-driven inbound handling.

AgentPhone lets your AI agent operate as a virtual team member with its own phone line. You can create agents for different purposes (support, sales, scheduling), buy phone numbers in any US/CA area code, send and receive SMS, place outbound calls with built-in AI conversation, and set up webhooks to handle inbound calls and texts in real time. Monitor usage and billing across all communication channels.

How to install AgentPhone

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • AGENTPHONE_API_KEY
    required
    secret

    Your AgentPhone API key. Get one at https://agentphone.ai

  • Authorization
    required
    secret

    Bearer token for AgentPhone API authentication (format: Bearer YOUR_API_KEY). Get your key at https://agentphone.ai

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "agentphone": {
      "command": "npx",
      "args": [
        "-y",
        "agentphone-mcp"
      ],
      "env": {
        "AGENTPHONE_API_KEY": "<YOUR_AGENTPHONE_API_KEY>",
        "Authorization": "<YOUR_AUTHORIZATION>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • account_overview — Get a full snapshot of your account — agents, numbers, webhook, and usage
  • get_usage — Get usage stats — number usage, billed SMS segments, and message/call/webhook volume with daily or monthly breakdowns
  • list_numbers — List all phone numbers in your account
  • buy_number — Purchase a new phone number with optional area code and agent assignment
  • send_message — Send SMS or iMessage with support for media, threaded replies, send effects, and group chats
  • get_messages — Get messages for a specific phone number
  • list_conversations — List SMS conversations, optionally filtered by agent
  • get_conversation — Get a conversation with full message history
  • update_conversation — Set metadata on a conversation
  • list_contacts — List saved contacts with optional search filtering
  • manage_contact — Create, update, or delete a contact
  • list_calls — List calls with filtering by agent, number, status, direction, or keyword
  • get_call — Get call details and transcript
  • make_call — Place an outbound call (webhook-driven)
  • make_conversation_call — Place a call with built-in AI conversation — no webhook needed
  • list_agents — List all agents with their phone numbers and voice configuration
  • create_agent — Create an agent with voice, system prompt, call transfer, voicemail, and voice tuning options
  • update_agent — Update an agent's configuration
  • delete_agent — Delete an agent (numbers are kept but unassigned)
  • get_agent — Get agent details including phone numbers and voice config

Use cases

  • Build a customer support agent that receives inbound calls and texts, answers questions, and escalates to humans
  • Create a sales agent that makes outbound calls with natural conversation to schedule appointments or follow up on leads
  • Set up an appointment reminder system that sends SMS notifications and handles confirmations via text
  • Develop a multi-agent contact center where different agents handle different departments with their own phone numbers and voice personalities
  • Monitor communication metrics and billing across all phone-based interactions in real time

AgentPhone MCP server FAQ

What is AgentPhone?

AgentPhone is a service that gives AI agents real phone numbers, SMS messaging, and voice calling capabilities. The MCP server integrates this into Cursor, Claude Desktop, and other AI clients so agents can handle phone-based communication through natural language.

Is AgentPhone free?

AgentPhone requires a paid account. You sign up at agentphone.ai, create an API key, and are billed for phone numbers, SMS segments, call minutes, and webhook volume.

How do I install this in Cursor or Claude Desktop?

Add the agentphone-mcp server to your MCP configuration file. For Cursor, edit ~/.cursor/mcp.json; for Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Use either the local npx command with your API key in the env, or point to the hosted endpoint at https://mcp.agentphone.ai/mcp with your API key in the Authorization header.

What authentication does AgentPhone MCP use?

The server supports API key authentication (set AGENTPHONE_API_KEY environment variable or pass via Authorization header) or OAuth 2.0 (Authorization Code + PKCE flow) if MCP_OAUTH_CLIENT_ID and MCP_OAUTH_CLIENT_SECRET are configured. OAuth is recommended for end users as it avoids pasting keys.

Can I run this server myself?

Yes. You can run it locally via npx agentphone-mcp (stdio mode for Cursor/Claude Desktop) or as an HTTP server with npm start or Docker. Self-hosted HTTP mode lets you run your own endpoint and connect via Streamable HTTP transport.

What can agents do with phone numbers?

Agents can buy phone numbers in any US/CA area code, send and receive SMS messages, place outbound calls with built-in AI conversation, receive inbound calls and texts via webhooks, manage contacts, and access call transcripts and usage analytics.

README (reference)

Source of truth, from the repository.

AgentPhone MCP Server

Give AI agents real phone numbers, SMS, and voice calls via the Model Context Protocol.

AgentPhone lets your AI agent buy phone numbers, send/receive SMS, and place voice calls — all through natural language in Cursor, Claude Desktop, or any MCP-compatible client.

Agents are the core concept — each agent gets its own phone numbers, voice personality, system prompt, and webhook. Think of an agent as a virtual team member with its own phone line. You can create agents for different purposes (support, sales, scheduling) and configure how they sound and behave on calls.

Quick Start

1. Get your API key

Sign up at agentphone.ai and create an API key from Settings.

2. Connect via MCP

Option A: Remote server (recommended)

Point your MCP client at the hosted endpoint — no install needed:

{
  "mcpServers": {
    "agentphone": {
      "type": "streamable-http",
      "url": "https://mcp.agentphone.ai/mcp",
      "headers": {
        "Authorization": "Bearer your_api_key_here"
      }
    }
  }
}

Works with any MCP client that supports Streamable HTTP transport (Switchboard, remote agent platforms, etc.).

Option B: Local server (stdio)

Runs locally via npx — works with Cursor, Claude Desktop, Windsurf, and Claude Code:

Cursor: Settings > MCP or ~/.cursor/mcp.json Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

{
  "mcpServers": {
    "agentphone": {
      "command": "npx",
      "args": ["-y", "agentphone-mcp"],
      "env": {
        "AGENTPHONE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Option C: Self-hosted HTTP server

Run your own HTTP MCP endpoint:

AGENTPHONE_API_KEY=your_api_key npx agentphone-mcp --http --port 3000

Then connect to http://localhost:3000/mcp.

What Can It Do?

Once configured, just ask your AI agent things like:

  • "Buy me a phone number in the 415 area code"
  • "Create a support agent that greets callers and helps with billing"
  • "Call +14155551234 and have a conversation about scheduling a dentist appointment"
  • "Text +14155551234 saying 'Your appointment is confirmed for 3pm tomorrow'"
  • "Show me my recent calls and transcripts"
  • "List the available voices and switch my agent to a different one"
  • "Set up a webhook so I get notified when someone calls or texts my number"
  • "Show me this month's usage breakdown"

Transport & hosting

The server is built on the mcp-use server framework, which owns the HTTP layer: Streamable HTTP, the SSE stream, session management, and the OAuth discovery endpoints. npm start (or the Docker image) runs it as an HTTP server on PORT (default 3000), reachable at /mcp.

  • Hosted: https://mcp.agentphone.ai/mcp
  • Self-hosted: PORT=3000 npm start → http://localhost:3000/mcp

Authentication

  1. OAuth (recommended for end users): the framework proxies an Authorization Code + PKCE flow to the AgentPhone authorization server, so the client opens a browser to sign in at agentphone.ai — no key to paste. Enable it by setting MCP_OAUTH_CLIENT_ID / MCP_OAUTH_CLIENT_SECRET (a client pre-registered with the AgentPhone AS).
  2. API key (scripts / single-tenant): set AGENTPHONE_API_KEY. Used as the fallback credential when no OAuth token is present.

The per-request access token is forwarded to the AgentPhone REST API, so the server stores no credentials.

Environment

VarPurpose
PORTHTTP port (default 3000)
AGENTPHONE_API_KEYFallback API key when OAuth is off
MCP_OAUTH_CLIENT_ID / MCP_OAUTH_CLIENT_SECRETEnable OAuth; client pre-registered with the AgentPhone AS
AGENTPHONE_BASE_URLAPI base (default https://api.agentphone.ai)
AGENTPHONE_OAUTH_AUTHORIZEOverride authorize/consent URL (default https://agentphone.ai/oauth/authorize)

Highlights

  • Phone numbers — buy and manage numbers in any US/CA area code
  • SMS — send and receive text messages, view conversation threads
  • Voice calls — place outbound calls with built-in AI conversation (no webhook needed) or bring your own webhook
  • Inbound handling — set up webhooks to receive and respond to inbound calls and texts in real time
  • Agents — create agents with custom voices, system prompts, call transfer, and voicemail
  • Usage & billing — monitor number usage, message/call/webhook volume, and daily/monthly breakdowns

All Tools (28)

Account

ToolDescription
account_overviewGet a full snapshot of your account — agents, numbers, webhook, and usage
get_usageGet usage stats — number usage, billed SMS segments, and message/call/webhook volume. Use breakdown for daily or monthly time-series.

Phone Numbers

ToolDescription
list_numbersList all phone numbers in your account
buy_numberPurchase a new phone number with optional area_code and agent_id

SMS

ToolDescription
send_messageSend SMS or iMessage. Supports media, threaded replies (reply_to_message_id), iMessage send effects (send_style), and group chats
get_messagesGet messages for a specific number
list_conversationsList SMS conversations. Pass agent_id to filter by agent.
get_conversationGet a conversation with full message history
update_conversationSet metadata on a conversation

Contacts

ToolDescription
list_contactsList saved contacts (address book). Filter with a search term.
manage_contactCreate, update, or delete a contact (set action)

Voice Calls

ToolDescription
list_callsList calls. Filter by agent_id, number_id, status, direction, or keyword.
get_callGet call details and transcript
make_callPlace an outbound call (webhook-driven)
make_conversation_callPlace a call with built-in AI conversation — no webhook needed

Agents

ToolDescription
list_agentsList all agents with their numbers and voice config
create_agentCreate an agent with voice, system prompt, call transfer, voicemail, and voice tuning (speed, interruption sensitivity, backchannel, language, and more)
update_agentUpdate an agent's configuration
delete_agentDelete an agent (numbers are kept but unassigned)
get_agentGet agent details including phone numbers and voice config
attach_numberAssign a phone number to an agent
detach_numberRemove a phone number from an agent
list_voicesList available voices for agents

Webhooks

All webhook tools accept an optional agent_id — pass it to manage an agent-specific webhook, omit it for the project-level default. Agent webhooks take priority over project-level.

ToolDescription
get_webhookGet webhook configuration
set_webhookSet a webhook URL for inbound messages and call events
delete_webhookRemove a webhook
test_webhookSend a test event to verify your webhook works
list_webhook_deliveriesView delivery history for debugging

Environment Variables

VariableRequiredDescription
AGENTPHONE_API_KEYstdio: yes, HTTP: noYour AgentPhone API key (HTTP mode can use Authorization header instead)
AGENTPHONE_BASE_URLNoOverride the API base URL (defaults to https://api.agentphone.ai)
PORTNoPort for HTTP mode (defaults to 3000, overridden by --port)

Development

git clone https://github.com/AgentPhone-AI/agentphone-mcp.git
cd agentphone-mcp
npm install
npm run dev     # Run with tsx (hot reload)
npm run build   # Compile TypeScript
npm start       # Run compiled JS (stdio)

How It Works

This MCP server connects your AI assistant to the AgentPhone API. Your assistant talks to the MCP server, which calls the AgentPhone API, which talks to the phone network.

Your AI Assistant  <-->  agentphone-mcp  <-->  AgentPhone API  <-->  Phone Network

Outbound: your assistant places calls and sends texts through AgentPhone's API.

Inbound: when someone calls or texts your number, AgentPhone sends a webhook event to your server — you can then respond programmatically or let your agent's built-in AI handle it.

License

MIT

Related MCP servers

Static security scanner for MCP servers—assigns trust grades (A–F) to detect prompt injection, data exfiltration, and privilege escalation before your agent calls a tool.

16
Go
MIT
View repository →

Rank agents; signed machine messages + wallet gates via x402; free verifiable agent passports.

1
Python
Apache-2.0
View repository →

Authorize x402 payments before signing with request-bound, signed safety decisions.

1
Python
Apache-2.0
View repository →

Discover x402 services, MCP servers and A2A agents by intent — agent-tools.cloud directory.

0
Python
View repository →

Local BYOK MCP for AI model shortlisting using OpenRouter + Artificial Analysis.

0
TypeScript
MIT
View repository →

Connect Claude, Cursor, or ChatGPT to your business data. Ask questions, get answers.