Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/中文
Sign inSign up
Home/Servers/AgentPhone

AgentPhone

by io.github.AgentPhone-AI

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

Power your agent

Add this server

The publisher's own URL. Not a PlugMCP endpoint.

Server URL
https://mcp.agentphone.ai/mcp
Credentials from the publisher
  • AGENTPHONE_API_KEY — Your AgentPhone API key. Get one at https://agentphone.ai
Provider
Add in Claude

Claude opens with the name and URL filled in. You still confirm it there.

Claude Code
claude mcp add --transport http io.github.agentphone-ai-agentphone https://mcp.agentphone.ai/mcp

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "io.github.agentphone-ai-agentphone": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.agentphone.ai/mcp"
      ]
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • Firecrawl🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

Questions

How do I install AgentPhone?
Copy the http config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does AgentPhone need an API key?
The publisher lists these environment variables: AGENTPHONE_API_KEY.
What transport does AgentPhone use?
AgentPhone is reached over HTTP.
When was AgentPhone last checked?
Last checked 2026-10-16. Give AI agents real phone numbers, messages, and voice calls via MCP.

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

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:

PORT=3000 npx agentphone-mcp --http

Then connect to http://localhost:3000/mcp and configure your MCP client to send Authorization: Bearer <your AgentPhone API key> with each request. A server-side AGENTPHONE_API_KEY alone does not authorize HTTP callers.

Warning: AGENTPHONE_ALLOW_ANONYMOUS=true opts into using the server's AGENTPHONE_API_KEY for requests with no Authorization header, only when OAuth is off. Anyone who can reach that endpoint can act as the account: only enable this behind your own authentication. Malformed headers are rejected, and a caller's supplied bearer is never replaced by the server key.

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 (a client pre-registered with the AgentPhone AS). MCP_OAUTH_CLIENT_SECRET is optional: set it to run the gateway as a confidential client, or leave it unset to run as a public client (the gateway must then be registered with token_endpoint_auth_method=none). Public mode advertises none to downstream clients, which strict OAuth clients require.
  2. API key (scripts / single-tenant, OAuth off): each request sends Authorization: Bearer <your API key>. The server-side AGENTPHONE_API_KEY is only used for callers that send nothing, and only when AGENTPHONE_ALLOW_ANONYMOUS=true. Without that flag an unauthenticated call is rejected, so an exposed port cannot act as your account.

With OAuth enabled, bearer tokens are verified through the backend’s /auth/me; the anonymous opt-in does not bypass that verification.

The caller’s credential is forwarded to the AgentPhone REST API for validation. The optional anonymous mode instead uses the configured server API key.

Environment

VarPurpose
PORTHTTP port (default 3000)
AGENTPHONE_API_KEYFallback API key when OAuth is off. Only used for callers that send no Authorization header when AGENTPHONE_ALLOW_ANONYMOUS=true
AGENTPHONE_ALLOW_ANONYMOUSDefault off; ignored when OAuth is enabled. Set to true to let requests with no Authorization header act with the server's AGENTPHONE_API_KEY. Anyone who can reach the port then controls the account: put the server behind your own auth first
MCP_OAUTH_CLIENT_IDEnable OAuth; a gateway client pre-registered with the AgentPhone AS
MCP_OAUTH_CLIENT_SECRETOptional. Set = confidential gateway; unset = public client (gateway registered with token_endpoint_auth_method=none, advertises none downstream)
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

get_webhook and set_webhook mask signing secrets by default, for both scopes. Retrieve the secret from the dashboard when possible. Passing reveal_secret: true includes it in tool output, exposing it to model context, transcripts and client logs. This prevents accidental disclosure; it is not an authorization boundary against a model that deliberately requests the secret.

Environment Variables

VariableRequiredDescription
AGENTPHONE_API_KEYstdio: yes; HTTP anonymous mode: yesIn HTTP mode, used only with AGENTPHONE_ALLOW_ANONYMOUS=true, OAuth off, and no caller Authorization header
AGENTPHONE_ALLOW_ANONYMOUSNoExplicit HTTP server-key fallback; default off, ignored when OAuth is enabled. See the self-hosting warning above
AGENTPHONE_BASE_URLNoOverride the API base URL (defaults to https://api.agentphone.ai)
PORTNoPort for HTTP mode (defaults to 3000; set with 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

How do I install AgentPhone?
Copy the http config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does AgentPhone need an API key?
The publisher lists these environment variables: AGENTPHONE_API_KEY.
What transport does AgentPhone use?
AgentPhone is reached over HTTP.
When was AgentPhone last checked?
Last checked 2026-10-16. Give AI agents real phone numbers, messages, and voice calls via MCP.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Pricing
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • MCP Apps
  • Tools
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • Club
  • Work with us
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA