Agentphone

Created By
AgentPhone-AIa month ago
Give your AI Agents a phone number with voice and messaging capabilities.
Overview

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.to 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.to/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"

Transports

TransportCommandUse case
Streamable HTTP (remote)https://mcp.agentphone.to/mcpAgent platforms (Switchboard, etc.), remote clients
Streamable HTTP (self-hosted)npx agentphone-mcp --http --port 3000Your own infrastructure
stdio (default)npx agentphone-mcpCursor, Claude Desktop, Windsurf, Claude Code

Authentication

  • stdio: API key via AGENTPHONE_API_KEY environment variable
  • HTTP (self-hosted): API key via env var or Authorization: Bearer <key> header per request
  • HTTP (hosted): API key via Authorization: Bearer <key> header per request

Endpoints (HTTP mode)

MethodPathDescription
POST/mcpMCP Streamable HTTP endpoint (stateless — each request is independent)
GET/healthHealth check

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 your plan limits, message/call volume, and daily/monthly breakdowns

All Tools (26)

Account

ToolDescription
account_overviewGet a full snapshot of your account — agents, numbers, webhook, and usage
get_usageGet usage stats, plan limits, and quotas. 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 an SMS from one of your agent's numbers
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

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 a new agent with voice, system prompt, call transfer, and voicemail
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.to)
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

Server Config

{
  "mcpServers": {
    "agentphone": {
      "command": "npx",
      "args": [
        "-y",
        "agentphone-mcp"
      ],
      "env": {
        "AGENTPHONE_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}
Project Info
Created At
a month ago
Updated At
24 days ago
Author Name
AgentPhone-AI
Star
-
Language
-
License
-
Category
Tags

Recommend Servers

View All