MCP Server

AgentCall MCP Server

Give Claude, Cursor, and other AI tools direct access to phone numbers, SMS, voice calls, and OTP extraction. 13 tools, one install command.

Quick Install

1. Get your API key

Sign up at agentcall.co/sign-up and grab your API key from the dashboard. It looks like ac_live_xxxxxxxx

2. Add to your AI tool

Claude Code
claude mcp add agentcall --env AGENTCALL_API_KEY=ac_live_xxx -- npx -y @agentcall/mcp-server
Claude Desktop (~/.claude/claude_desktop_config.json)
{
  "mcpServers": {
    "agentcall": {
      "command": "npx",
      "args": ["-y", "@agentcall/mcp-server"],
      "env": {
        "AGENTCALL_API_KEY": "ac_live_xxx"
      }
    }
  }
}
Cursor (.cursor/mcp.json)
{
  "mcpServers": {
    "agentcall": {
      "command": "npx",
      "args": ["-y", "@agentcall/mcp-server"],
      "env": {
        "AGENTCALL_API_KEY": "ac_live_xxx"
      }
    }
  }
}

3. Start using it

Once installed, your AI agent can provision phone numbers, send SMS, make calls, and extract OTP codes by simply asking. Try:

“Provision a US SIM number for my signup agent”
“Send an SMS from my number to +14155551234”
“Wait for an OTP code on my provisioned number”

Tool Reference — 13 tools

Phone Numbers

provision_numberProvision a new phone numbertype (local/tollfree/mobile/sim), country?, label?
list_numbersList all provisioned numberslimit?, country?, type?
get_numberGet details of a specific numbernumberId
release_numberRelease a phone numbernumberId

SMS

send_smsSend an SMS messagefrom, to, body
get_inboxGet inbound messages for a numbernumberId, limit?, otpOnly?
get_messageGet a specific messagemessageId
wait_for_otpWait for an OTP code to arrivenumberId, timeout?

Voice Calls

initiate_callStart an outbound phone callfrom, to, record?
list_callsList call historylimit?
hangup_callTerminate an active callcallId

Webhooks

create_webhookRegister a webhook endpointurl, events[]
list_webhooksList registered webhooksnone

Example Workflows

Sign up for a service autonomously

Ask your AI agent to handle the full signup flow:

You: “Sign up for Acme with my email agent@myapp.com. Provision a SIM number for OTP verification.”
Agent: Calls provision_numberfills signup formcalls wait_for_otpenters codedone.

Send a notification via SMS

Agent calls: send_sms
  from: "num_abc123"
  to: "+14155551234"
  body: "Your order #1234 has shipped. Track at https://..."

→ Returns: { id: "msg_xyz", status: "sent", cost: 0.015 }

Make a recorded call

Agent calls: initiate_call
  from: "num_abc123"
  to: "+14155551234"
  record: true

→ Returns: { id: "call_xyz", status: "initiated", record: true }
→ After call: recording URL delivered via webhook

Configuration

Authentication

The MCP server needs your AgentCall API key. Provide it via environment variable (recommended) or CLI flag:

# Environment variable (recommended)
AGENTCALL_API_KEY=ac_live_xxx agentcall-mcp

# CLI flag
agentcall-mcp --api-key ac_live_xxx

Requirements

  • Node.js 20 or later
  • API Key from agentcall.co (free tier available)
  • AI Tool that supports MCP (Claude Code, Claude Desktop, Cursor, Windsurf, etc.)

How It Works

The MCP server runs locally on your machine as a subprocess of your AI tool. It translates MCP tool calls into AgentCall API requests:

AI Tool (Claude/Cursor)
  ↓ MCP protocol (stdio)
AgentCall MCP Server (local)
  ↓ HTTPS (agentcall SDK)
AgentCall API (api.agentcall.co)
  ↓ Carrier API
Telnyx / Twilio (phone network)

Webhook Events

Use create_webhook to subscribe to these events:

sms.inboundNew SMS received on your number
sms.otpOTP code detected and extracted from SMS
call.inboundIncoming call to your number
call.ringingOutbound call is ringing
call.completedCall ended (includes duration, recording URL)
call.failedCall failed to connect
number.releasedPhone number was released

Links

Ready to get started?

Get your API key and install the MCP server in under 2 minutes.

Get API Key — Free