Agentphone
@AgentPhone-AI
About Agentphone
Give your AI Agents a phone number with voice and messaging capabilities.
Basic information
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"agentphone": {
"command": "npx",
"args": [
"-y",
"agentphone-mcp"
],
"env": {
"AGENTPHONE_API_KEY": "<YOUR_API_KEY>"
}
}
}
}Tools
26Get a complete snapshot of your AgentPhone account: agents, phone numbers, webhook status, and usage limits. Call this first to orient yourself before using other tools.
List all phone numbers in your account. Each number has an ID needed by other tools (get_messages, attach_number, list_calls).
Purchase a new phone number. Use area_code to request a specific region (e.g. '415' for San Francisco). Tip: pass agent_id to attach it immediately, or use attach_number later.
Send an SMS or iMessage from one of your agent's phone numbers. USE THIS TOOL WHEN the user wants to text someone. The agent must have at least one phone number attached. If the agent has multiple numbers, use number_id to specify which one to send from.
Get SMS messages for a specific phone number. Use list_numbers to find the number ID. For threaded conversations, use list_conversations + get_conversation instead.
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 IDs — use get_call with an ID to fetch the full transcript.
Get details and transcript for a specific call. Use list_calls to find call IDs. Pass wait=true to block until an in-progress call finishes before returning.
Initiate an outbound phone call. USE THIS TOOL WHEN the user wants to place a webhook-driven call where your backend handles the conversation logic. DO NOT USE when the user wants an autonomous AI conversation — use make_conversation_call instead. The agent must have a phone number attached and a webhook configured (set_webhook).
Place a phone call where the AI has an autonomous conversation about a given topic. USE THIS TOOL WHEN the user wants an AI agent to call someone and have a conversation — scheduling, surveys, follow-ups, etc. No webhook setup needed. DO NOT USE when the user wants a webhook-driven call (use make_call instead). The agent must have a phone number attached. Use list_agents to check. By default this blocks until the call finishes and returns the full transcript. Set wait=false for fire-and-forget.
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 a new agent. An agent owns phone numbers and handles calls/SMS. After creating, use buy_number or attach_number to give it a phone number. 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. Use list_voices to see available voice options.
Update an agent's configuration — name, description, voice settings, system prompt, greeting, call transfer, or voicemail. Only provided fields are updated. Use list_voices to see available voice IDs. Switching voice_mode to 'hosted' requires a system_prompt.
Delete an agent permanently. Phone numbers attached to it will be kept but unassigned. DO NOT USE without confirming with the user — this cannot be undone.
Get details for a specific agent including its phone numbers, voice configuration, and system prompt.
Attach a phone number to an agent so the agent handles calls/SMS on that number. Use list_numbers to find unassigned number IDs and list_agents for agent IDs.
Detach a phone number from an agent. The number is kept in your account but becomes unassigned. Use list_agents or get_agent to see which numbers are attached.
List available voices for agents. Use the voice_id value when calling create_agent or update_agent.
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. Use get_conversation with the ID to read messages.
Get a specific SMS conversation with message history. Use list_conversations to find IDs.
Set metadata on a conversation. Use this to store custom state, tags, or context that persists between messages. Pass null to clear metadata.
Get account usage statistics. By default returns a summary with plan limits, quotas, and message/call volume. Use breakdown='daily' or 'monthly' for time-series data.
Get the webhook configuration. Pass agent_id to get an agent-specific webhook, or omit for the project-level default.
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.
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. DO NOT USE without confirming with the user.
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.
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.
Overview
What is Agentphone?
Agentphone is an MCP server that gives AI agents real phone numbers, SMS, and voice calls. It integrates your AI assistant with the AgentPhone API so that agents can buy numbers, send/receive texts, place calls, and manage inbound communication—all through natural language in Cursor, Claude Desktop, or any MCP-compatible client.
How to use Agentphone?
Configure your MCP client with an API key from agentphone.to. Use the remote Streamable HTTP endpoint (https://mcp.agentphone.to/mcp) with an Authorization: Bearer <key> header, or run the local stdio server via npx -y agentphone-mcp with the AGENTPHONE_API_KEY environment variable. A self-hosted HTTP server is also available with npx agentphone-mcp --http --port 3000. After setup, simply ask your AI agent to perform phone tasks.
Key features of Agentphone
- Buy and manage phone numbers in any US/CA area code
- Send and receive SMS with full conversation history
- Place outbound voice calls with built-in AI conversation
- Handle inbound calls and texts via customizable webhooks
- Create agents with custom voices, system prompts, and voicemail
- Monitor usage, plan limits, and billing breakdowns
Use cases of Agentphone
- Create a support agent that greets callers and handles billing inquiries
- Schedule appointments by placing AI‑driven outbound calls
- Send automated SMS confirmations (e.g., “Your appointment is confirmed for 3pm tomorrow”)
- Set up real‑time webhook notifications for inbound calls and messages
- Track monthly usage and call/SMS volume across different agents
FAQ from Agentphone
What transports does Agentphone support?
Streamable HTTP (remote or self‑hosted) and stdio (local). Stdio works with Cursor, Claude Desktop, Windsurf, and Claude Code. Streamable HTTP is recommended for remote agent platforms.
How do I authenticate with Agentphone?
Provide your API key via the AGENTPHONE_API_KEY environment variable (stdio or self‑hosted HTTP) or via the Authorization: Bearer <key> header (HTTP modes).
What tools does Agentphone provide?
26 tools covering account overview, usage stats, phone number management, SMS (send, get, list conversations), voice calls (place, get details, transcripts), agent management, and webhook configuration.
Can I run Agentphone locally without hosting a server?
Yes. Use the remote hosted endpoint (https://mcp.agentphone.to/mcp) with no installation needed—just configure your MCP client with the URL and API key.
What are the runtime requirements for Agentphone?
For local stdio/HTTP modes, you need Node.js (to run npx). The remote hosted option has no local dependencies.
More Other MCP servers
AutoBrowser MCP
autobrowser-aiBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
Mcp
browsermcpBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
🚀 Model Context Protocol (MCP) Curriculum for Beginners
microsoftThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable,

EverArt
modelcontextprotocolModel Context Protocol Servers
FastMCP v2 🚀
jlowin🚀 The fast, Pythonic way to build MCP servers and clients.
Comments