account_overview
Get 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_numbers
List all phone numbers in your account. Each number has an ID needed by other tools (get_messages, attach_number, list_calls).
buy_number
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_message
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_messages
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_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 IDs — use get_call with an ID to fetch the full transcript.
get_call
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.
make_call
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).
make_conversation_call
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_agents
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_agent
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_agent
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_agent
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_agent
Get details for a specific agent including its phone numbers, voice configuration, and system prompt.
attach_number
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_number
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_voices
List available voices for agents. Use the voice_id value when calling create_agent or update_agent.
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. Use get_conversation with the ID to read messages.
get_conversation
Get a specific SMS conversation with message history. Use list_conversations to find IDs.
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.
get_usage
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_webhook
Get the webhook configuration. Pass agent_id to get an agent-specific webhook, or omit for the project-level default.
set_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 webhook secret is returned — use it to verify signatures.
delete_webhook
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.
test_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.
list_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.