account_overview
Account Overview
Get a complete snapshot of your AgentPhone account: agents, phone numbers, webhook status, and usage limits.
無需輸入參數。

io.github.AgentPhone-AI由 GitHub 帳號 AgentPhone-AI 發布v0.8.0更新於 Oct 29, 2026
Give AI agents real phone numbers, messages, and voice calls via MCP.
AgentPhone 讓 AI 助理擁有真實電話號碼,可收發簡訊/iMessage、撥打 AI 語音通話,並管理代理、聯絡人與 Webhook。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.AgentPhone-AI%2Fagentphone/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"agentphone": {
"type": "http",
"url": "https://mcp.agentphone.ai/mcp"
}
}
}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 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.
Once configured, just ask your AI agent things like:
The server ships two transports from one entry point (node dist/index.js):
stdio (default): bare npm start / npx agentphone-mcp runs the standard
MCP stdio transport for local clients, using AGENTPHONE_API_KEY.
HTTP: set PORT (or pass --http, optionally with --port <n>) to run the
Streamable HTTP server, reachable at /mcp. --port alone does not switch
transports — --http or PORT selects HTTP. The HTTP layer is built on the
mcp-use framework, which owns Streamable HTTP, the
SSE stream, session management, and the OAuth discovery endpoints.
Hosted: https://mcp.agentphone.ai/mcp
Self-hosted HTTP: PORT=3000 npm start → http://localhost:3000/mcp
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.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.
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.
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.
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
來源:README.md,提交 cd4cab8
Account Overview
Get a complete snapshot of your AgentPhone account: agents, phone numbers, webhook status, and usage limits.
無需輸入參數。
List Phone Numbers
List all phone numbers in your account. Returns each number with its ID, status, country, and the agent it is assigned to (if any).
limitoffsetBuy Phone Number
Purchase a new phone number. This is a paid purchase that charges the account's balance, and requires confirm=true to actually go through. Returns the purchased number's details: its phone number, ID, country, and status.
confirmcountryagent_idarea_codeSend Message
Send an SMS or iMessage from one of your agent's phone numbers, or react to an existing message. The tool has two modes, so which inputs are required depends on the mode: - Send: give a recipient (to_number) and a sender (agent_id, from_number, or number_id), plus body and/or media. The agent must have a phone number attached; number_id or from_number picks which one when it has several. - React: set reaction and react_to_message_id (iMessage only) to tapback or emoji-react to a message. Pass no send fields (recipient, sender, body/media, or send options); those are rejected. iMessage extras (ignored on SMS): reply_to_message_id threads a reply under an earlier message, and send_style adds an expressive screen/bubble effect. Returns the sent message (id, status, channel, from/to numbers), or the applied reaction.
bodyagent_idreactionmedia_urlnumber_idto_numbermedia_urlssend_stylefrom_numberreact_to_message_idreply_to_message_idGet Messages
Get SMS messages for a specific phone number, identified by its number ID. Returns a list of individual messages — each with its timestamp, sender, recipient, and text — rather than grouped conversation threads.
limitnumber_id必填List Calls
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 summaries including each call's ID, direction, participants, and status.
limitoffsetsearchstatusagent_iddirectionnumber_idGet Call
Get details and transcript for a specific call, identified by its call ID. Returns the call's direction, participants, status, timestamps, and full transcript. Pass wait=true to block until an in-progress call finishes before returning.
waitcall_id必填timeoutMake Call
Initiate an outbound, webhook-driven phone call where your backend handles the conversation logic. The agent must have a phone number attached and a webhook configured. This MCP connector prepends an automated-assistant disclosure to the greeting sent to the API; no tool argument disables that prefix. Calls made directly through the AgentPhone API or SDKs bypass this connector's disclosure logic. Returns the new call's ID, status, and the numbers it connects.
voiceagent_id必填to_number必填from_number_idinitial_greetingMake AI Conversation Call
Place a phone call where the AI has an autonomous conversation about a given topic — scheduling, surveys, follow-ups, etc. No webhook setup needed. The agent must have a phone number attached. This MCP connector prepends an automated-assistant disclosure to the greeting sent to the API and adds AI identity instructions around the topic. No tool argument disables these additions, but they do not guarantee the model's behavior. Calls made directly through the AgentPhone API or SDKs bypass this connector's disclosure logic. By default (wait=true) this waits for the call to finish — up to max_wait_seconds — and returns the call with its transcript. If that wait elapses first, it returns the call while it may still be in progress (check later with get_call). With wait=false it returns immediately with the call's ID and status, and you fetch the transcript later with get_call.
waittopic必填voiceagent_id必填to_number必填from_number_idinitial_greetingmax_wait_secondsList Agents
List agents in your account (a single page, sized by limit). An agent is required before you can make calls — it owns phone numbers and handles voice/SMS. Returns each agent's ID, name, voice configuration, and attached phone numbers.
limitCreate Agent
Create a new agent. An agent owns phone numbers and handles calls/SMS. A newly created agent has no phone number until one is attached. 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. Returns the created agent, including its new ID and full configuration.
name必填voicelanguagestt_modemodel_tiervoice_modedescriptionvoice_speedambient_soundbegin_messagesystem_promptdenoising_mode另有 6 個Update Agent
Update an agent's configuration — name, description, voice settings, instructions, greeting, call transfer, or voicemail. Only provided fields are updated; omitted fields keep their current value. Switching voice_mode to 'hosted' requires a system_prompt. Returns the agent's full configuration after the update.
namevoiceagent_id必填languagestt_modemodel_tiervoice_modedescriptionvoice_speedambient_soundbegin_messagesystem_prompt另有 7 個Delete Agent
Delete an agent permanently. Phone numbers attached to it are kept but unassigned. This cannot be undone. Returns the deleted agent's name and ID as confirmation.
agent_id必填Get Agent
Get one agent's full configuration. Returns its voice settings, system prompt, model tier, transfer and voicemail setup, and the phone numbers attached to it.
agent_id必填Attach Number to Agent
Attach a phone number to an agent so the agent handles calls/SMS on that number. Takes an agent ID and a phone number ID. Returns the attached number and the agent it now belongs to.
agent_id必填number_id必填Detach Number from Agent
Detach a phone number from an agent. The number is kept in your account but becomes unassigned, and the agent stops handling calls and texts on it.
agent_id必填number_id必填List Voices
List the voices available for agents. Returns each voice's ID (used in an agent's voice field), name, provider, gender, and accent.
無需輸入參數。
List Conversations
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, with its ID, participant, message count, and last-message preview.
limitoffsetagent_idGet Conversation
Get one SMS conversation with its message history (up to message_limit most recent messages), identified by its conversation ID. Returns the contact, your phone number, the message count, any stored metadata, and the messages.
message_limitconversation_id必填Update Conversation
Set metadata on a conversation. Use this to store custom state, tags, or context that persists between messages. Pass null to clear metadata.
metadata必填conversation_id必填List Contacts
List saved contacts (your address book). Returns each contact's name, phone number, email, and ID. Optionally filter with a search term that matches name or phone number.
limitoffsetsearchManage Contact
Create, update, or delete a saved contact. Set `action` to choose the operation. - create: requires phone_number and name - update: requires contact_id; only the fields you pass are changed - delete: requires contact_id (permanent) contact_id refers to a saved contact. Create and update return the saved contact (id, name, phone number, email, notes); delete returns a success flag.
nameemailnotesaction必填contact_idphone_numberGet Usage
Get account usage statistics. By default returns a summary with number usage plus message, call, and webhook volume. Use breakdown='daily' or 'monthly' for time-series data.
daysmonthsbreakdownGet Webhook
Get the webhook configuration — its URL, status, and signing secret. Pass agent_id to get an agent-specific webhook, or omit for the project-level default.
agent_idreveal_secretSet Webhook
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 signing secret is masked by default. Prefer retrieving it from the dashboard; reveal_secret=true exposes it to model context, transcripts and client logs.
url必填timeoutagent_idcontext_limitreveal_secretDelete Webhook
Remove a webhook. Deleting an agent's webhook makes that agent fall back to the project-level webhook; deleting the project-level webhook stops events for agents using that default until you set one again (agents with their own webhook are unaffected). Pass agent_id to remove an agent's webhook, or omit it to remove the project-level webhook.
agent_idTest Webhook
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.
agent_idList Webhook Deliveries
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.
hourslimitagent_id已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
{ "mcpServers": { "agentphone": { "type": "streamable-http", "url": "https://mcp.agentphone.ai/mcp", "headers": { "Authorization": "Bearer your_api_key_here" } } }}{ "mcpServers": { "agentphone": { "command": "npx", "args": ["-y", "agentphone-mcp"], "env": { "AGENTPHONE_API_KEY": "your_api_key_here" } } }}PORT=3000 npx agentphone-mcp --httpgit clone https://github.com/AgentPhone-AI/agentphone-mcp.gitcd agentphone-mcpnpm installnpm run dev # Run with tsx (hot reload)npm run build # Compile TypeScriptnpm start # Run compiled JS — stdio by default; set PORT (or pass --http) for the HTTP servernpm test # Build + run the full test suite (both transports, output-schema contracts)Your AI Assistant <--> agentphone-mcp <--> AgentPhone API <--> Phone Network