You have Claude in your terminal. It answers questions, writes code, summarizes documents.
But it cannot call a phone number.
Not because it is incapable — but because it has no connection to the actual telephone network. It lives in text. The moment a task needs a real human on the other end of a phone line, your AI workflow hits a wall.
This post shows you how to remove that wall in about five minutes, using the VoIPBin MCP server.
The Gap Between AI and the Phone Network
Model Context Protocol (MCP) is how AI assistants like Claude get access to external tools. Instead of hardcoding integrations, you plug in an MCP server and suddenly your AI can search the web, query databases, run code.
But the phone network? PSTN, SIP, RTP, codecs — none of that is accessible to an MCP server out of the box. Building it yourself means:
- Registering a SIP account and handling registration
- Negotiating RTP streams for audio
- Running STT (speech-to-text) and TTS (text-to-speech) pipelines
- Managing call state machines
That is a telephony engineering project, not an AI project.
VoIPBin wraps all of that into a single MCP server. Your Claude instance calls a tool. A real phone rings.
Setup: Three Steps
Step 1: Get a VoIPBin API Key
Sign up with a single API call. No dashboard, no OTP, no waiting:
curl -s -X POST https://api.voipbin.net/v1.0/auth/signup \
-H "Content-Type: application/json" \
-d '{
"username": "your-username",
"password": "your-password",
"email": "you@example.com",
"name": "Your Name"
}'
The response includes accesskey.token — that is your API key. Copy it.
Step 2: Add VoIPBin to Claude Desktop
Open your Claude Desktop config file:
# macOS
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows
notepad %APPDATA%\Claude\claude_desktop_config.json
Add the VoIPBin MCP server:
{
"mcpServers": {
"voipbin": {
"command": "uvx",
"args": ["voipbin-mcp"],
"env": {
"VOIPBIN_API_KEY": "your-api-key-here"
}
}
}
}
Restart Claude Desktop. Done.
Step 3: Verify It Works
In Claude Desktop, type:
"List the phone numbers available on my VoIPBin account."
Claude will call the VoIPBin MCP tool and return your account details. If you see a response with account info, you are connected.
What You Can Now Ask Claude to Do
With VoIPBin MCP active, Claude has access to real telephony tools. Here are prompts that actually work:
Make an outbound call
"Call +12025550100 and when they answer, say: Hello, this is an automated reminder that your appointment is tomorrow at 2pm. Press 1 to confirm or 2 to reschedule."
Claude translates that into a VoIPBin API call. The phone rings. The TTS message plays. Digit input is captured and returned to Claude.
Check call history
"Show me all calls from the last 24 hours and tell me which ones were not answered."
Claude queries the call log via MCP and summarizes it in plain English.
Build a quick notification flow
"I need to call these three numbers one after another with this message: [your message]. Start now."
Claude queues and executes the calls sequentially.
Using VoIPBin MCP in Cursor (or Any MCP Client)
The same setup works in Cursor IDE and any other MCP-compatible client.
For Cursor, edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"voipbin": {
"command": "uvx",
"args": ["voipbin-mcp"],
"env": {
"VOIPBIN_API_KEY": "your-api-key-here"
}
}
}
}
Now your Cursor AI agent can make calls as part of a coding session. Useful for testing voice webhook flows without leaving the IDE.
A Real Use Case: Automated Deployment Notification
Here is a workflow that combines Cursor + VoIPBin MCP:
- You deploy a critical service
- Ask Cursor: "Call the on-call engineer at +1-xxx-xxx-xxxx and tell them the deployment to production just completed. Ask them to confirm receipt by pressing 1."
- VoIPBin makes the call, plays the TTS, waits for DTMF input
- Cursor receives the confirmation and logs it
No custom script. No Twilio account setup. No webhook server. Claude orchestrated it via MCP.
Under the Hood: What MCP Tools Are Exposed
The voipbin-mcp package exposes the core VoIPBin API surface as MCP tools:
| Tool | What It Does |
|---|---|
call_create |
Initiate an outbound call with a flow |
call_list |
Retrieve recent call records |
call_get |
Get details for a specific call |
flow_create |
Define a call flow (TTS, DTMF, transfer) |
number_list |
List phone numbers on your account |
recording_get |
Retrieve a call recording |
Claude decides which tool to invoke based on your natural language request. You do not need to know the API shape — that is the whole point of MCP.
Why This Pattern Matters for AI Agents
The trend in AI agent development is shifting from "write a Python script that calls an API" toward "describe what you want and let the agent figure out the tool calls."
For most domains — web search, code execution, databases — that pattern already works well.
For telephony, it has been blocked by infrastructure complexity. STT, TTS, RTP, SIP registration — these are not things you configure in a JSON file.
VoIPBin's approach is to absorb all of that complexity server-side. Your MCP config stays at five lines. Claude gets a call_create tool. The rest is invisible.
The result: an AI agent that can reach a human by phone as naturally as it can search the web.
Get Started
- Website: https://voipbin.net
-
MCP install:
uvx voipbin-mcp -
Go SDK:
go get github.com/voipbin/voipbin-go -
Signup endpoint:
POST https://api.voipbin.net/v1.0/auth/signup
No credit card required to explore. The signup API returns a working token immediately.
If you build something with this, drop a comment below. Particularly curious what workflows people are automating with Claude + voice.
Top comments (0)