Give AI agents real phone numbers, messages, and voice calls via MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
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.
Sign up at agentphone.ai and create an API key from Settings.
Option A: Remote server (recommended)
Point your MCP client at the hosted endpoint β no install needed:
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)
Option C: Self-hosted HTTP server
Run your own HTTP MCP endpoint:
Then connect to http://localhost:3000/mcp.
Once configured, just ask your AI agent things like:
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.
https://mcp.agentphone.ai/mcpPORT=3000 npm start β http://localhost:3000/mcpMCP_OAUTH_CLIENT_ID / MCP_OAUTH_CLIENT_SECRET (a client
pre-registered with the AgentPhone AS).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.
| Var | Purpose |
|---|---|
PORT | HTTP port (default 3000) |
AGENTPHONE_API_KEY | Fallback API key when OAuth is off |
MCP_OAUTH_CLIENT_ID / MCP_OAUTH_CLIENT_SECRET | Enable OAuth; client pre-registered with the AgentPhone AS |
AGENTPHONE_BASE_URL | API base (default https://api.agentphone.ai) |
AGENTPHONE_OAUTH_AUTHORIZE | Override authorize/consent URL (default https://agentphone.ai/oauth/authorize) |
| Tool | Description |
|---|---|
account_overview | Get a full snapshot of your account β agents, numbers, webhook, and usage |
get_usage | Get usage stats, plan limits, and quotas. Use breakdown for daily or monthly time-series. |
| Tool | Description |
|---|---|
list_numbers | List all phone numbers in your account |
buy_number | Purchase a new phone number with optional area_code and agent_id |
| Tool | Description |
|---|---|
send_message | Send SMS or iMessage. Supports media, threaded replies (reply_to_message_id), iMessage send effects (send_style), and group chats |
get_messages | Get messages for a specific number |
list_conversations | List SMS conversations. Pass agent_id to filter by agent. |
get_conversation | Get a conversation with full message history |
update_conversation | Set metadata on a conversation |
| Tool | Description |
|---|---|
list_contacts | List saved contacts (address book). Filter with a search term. |
manage_contact | Create, update, or delete a contact (set action) |
| Tool | Description |
|---|---|
list_calls | List calls. Filter by agent_id, number_id, 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 |
| Tool | Description |
|---|---|
list_agents | List all agents with their numbers and voice config |
create_agent | Create an agent with voice, system prompt, call transfer, voicemail, and voice tuning (speed, interruption sensitivity, backchannel, language, and more) |
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 |
attach_number | Assign a phone number to an agent |
detach_number | Remove a phone number from an agent |
list_voices | List available voices for agents |
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.
| Tool | Description |
|---|---|
get_webhook | Get webhook configuration |
set_webhook | Set a webhook URL for inbound messages and call events |
delete_webhook | Remove a webhook |
test_webhook | Send a test event to verify your webhook works |
list_webhook_deliveries | View delivery history for debugging |
| Variable | Required | Description |
|---|---|---|
AGENTPHONE_API_KEY | stdio: yes, HTTP: no | Your AgentPhone API key (HTTP mode can use Authorization header instead) |
AGENTPHONE_BASE_URL | No | Override the API base URL (defaults to https://api.agentphone.ai) |
PORT | No | Port for HTTP mode (defaults to 3000, overridden by --port) |
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.
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.
MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/agentphone)<a href="https://allmcps.com/mcp/agentphone"><img src="https://allmcps.com/api/badge/agentphone?style=directory" alt="AgentPhone on AllMCPs" /></a>