Atlas / MCP servers / agentphone-ai / agentphone-mcp

agentphone-mcpSAFE

mcp/agentphone-ai/agentphone-mcp

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

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
28 19r · 6w · 3d
Transport
stdio · streamable-http
License
MIT
Stars
125
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

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:

AGENTPHONE_API_KEY=your_api_key npx agentphone-mcp --http --port 3000

Then connect to http://localhost:3000/mcp.

What Can It Do?

On

Read from source at commit 9a565d052903OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add agentphone-mcp --env AGENTPHONE_API_KEY=${AGENTPHONE_API_KEY} -- npx -y [email protected]
03

Exposed tools (28)

19 read · 6 write · 3 destructive. Blast radius: 3 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
account_overviewreadGet a complete snapshot of your AgentPhone account: agents, phone numbers, webhook status,
attach_numberreadAttach a phone number to an agent so the agent handles calls/SMS on that number.
buy_numberreadPurchase a new phone number. This is a paid purchase that charges the account
create_agentwriteCreate a new agent. An agent owns phone numbers and handles calls/SMS.\n\n
delete_agentdestructiveDelete an agent permanently. Phone numbers attached to it are kept but unassigned.
delete_webhookdestructiveRemove a webhook. Pass agent_id to remove an agent
detach_numberreadDetach a phone number from an agent. The number is kept in your account but becomes unassigned.
get_agentreadGet details for a specific agent including its phone numbers, voice configuration, and instructions.
get_callreadGet details and transcript for a specific call, identified by its call ID.
get_conversationreadGet a specific SMS conversation with full message history, identified by its conversation ID.
get_messagesreadGet SMS messages for a specific phone number, identified by its number ID.
get_usagereadGet account usage statistics. By default returns a summary with number usage plus
get_webhookreadGet the webhook configuration. Pass agent_id to get an agent-specific webhook,
list_agentsreadList all agents with their phone numbers and voice configuration.
list_callsreadList recent calls. Scope by agent_id or number_id, or use status/direction/search to filter globally.\n\n
list_contactsreadList saved contacts (your address book). Optionally filter with a search term that matches
list_conversationsreadList SMS conversations. Optionally filter by agent_id to see conversations for a specific agent.\n\n
list_numbersreadList all phone numbers in your account, each with its ID, status, country, and assigned agent.
list_voicesreadList available voices for agents. Each voice has a voice_id used in an agent
list_webhook_deliveriesreadView recent webhook delivery history. Shows which events were delivered, HTTP status codes, and timing.\n\n
make_callreadInitiate an outbound, webhook-driven phone call where your backend handles the
make_conversation_callreadPlace a phone call where the AI has an autonomous conversation about a given topic —
manage_contactdestructiveCreate, update, or delete a saved contact. Set
send_messagewriteSend an SMS or iMessage from one of your agent
set_webhookwriteSet a webhook URL to receive inbound messages and call events.\n\n
test_webhookwriteSend a test event to verify a webhook is working. Returns the HTTP status code and response time.\n\n
update_agentwriteUpdate an agent
update_conversationwriteSet metadata on a conversation. Use this to store custom state, tags, or context
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (2 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_agent, delete_webhook, manage_contact
Why it matters. 3 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, mcp-use, zod, @types/node, tsx, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 9a565d052903full audit observations/trust-audit/mcp-server/agentphone-ai__agentphone-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-129a565d052903SAFEB89first audit
06

Questions

What is the agentphone-mcp MCP server?

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

What tools does agentphone-mcp expose?

28 in total: 19 read-only, 6 that write, and 3 that can delete or overwrite (delete_agent, delete_webhook, manage_contact). Every one is listed on this page with its risk.

Is agentphone-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 3 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does agentphone-mcp need?

It reads AGENTPHONE_API_KEY, AGENTPHONE_OAUTH_AUTHORIZE, AGENTPHONE_OAUTH_ISSUER, MCP_OAUTH_CLIENT_ID and MCP_OAUTH_CLIENT_SECRET from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does agentphone-mcp run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as agentphone-mcp at 0.7.0.

How current is this page?

The grade is for one exact copy of the source (9a565d052903), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement