LABSCO SUMMARY
A working base to build on, and it says so plainly.
The pieces are wired end to end and the call really happens, but the project describes itself as a kick-start for your own voice work rather than a finished product - conversation history, latency and error recovery are on its own wish list. Two costs meter while the call runs, Twilio's and OpenAI's, so call duration is a budget line.
What it is
A starting point for AI phone calling. The server places an outbound call through Twilio, streams the audio to OpenAI's realtime model and the reply back to the line, so the two-way conversation continues until the call ends.
What you get
- Outbound calls placed through your own Twilio number
- Call audio processed live by the realtime model, in both directions
- Language switching during the call, so it can start in one and continue in another
- Prompts shipped for common scenarios such as booking a restaurant table
- An ngrok tunnel set up automatically, because Twilio has to reach your server for the webhooks
- Optional call recording behind a flag
Requirements
Node.js 22 or newer, cloned and built locally. Three accounts: Twilio with an account SID, auth token and a number, an OpenAI key, and an ngrok authtoken. All five go in the environment, plus an optional recording flag. Phone numbers must be in E.164 format - a leading plus and country code - or the call is rejected. The ngrok tunnel puts your server on the public internet on a random URL protected by a random secret.
Setup effort
Build from source — git clone https://github.com/popcornspace/voice-call-mcp-server.git
USE CASES
01
Making a routine call you keep putting off
Give it the number and the goal - a reservation, a reschedule - and let it hold the conversation.
02
Calling in a language you do not speak
State the language in the request; the model can also switch mid-call if the person answers in another one.
03
Building your own calling agent
Fork it and extend the prompts and models - the Twilio, realtime-audio and tunnelling plumbing is already connected.
BEFORE YOU INSTALL
What to know first
Requires
- Node.js >= 22
- TWILIO_ACCOUNT_SID in your environment
- TWILIO_AUTH_TOKEN in your environment
- OPENAI_API_KEY in your environment
- TWILIO_NUMBER in your environment
- NGROK_AUTHTOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
TERMINAL
git clone https://github.com/popcornspace/voice-call-mcp-server.git
cd voice-call-mcp-server
npm install
npm run buildMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"voice-call": {
"command": "node",
"args": [
"<YOUR_PATH_TO_VOICE_CALL_MCP_SERVER>/dist/start-all.cjs"
],
"env": {
"TWILIO_ACCOUNT_SID": "<YOUR_TWILIO_ACCOUNT_SID>",
"TWILIO_AUTH_TOKEN": "<YOUR_TWILIO_AUTH_TOKEN>",
"TWILIO_NUMBER": "<YOUR_TWILIO_NUMBER>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
"NGROK_AUTHTOKEN": "<YOUR_NGROK_AUTHTOKEN>"
}
}
}
}