Voice Call MCP Server logo

Voice Call MCP Server

by lukaskai

A Model Context Protocol (MCP) server that enables Claude and other AI assistants to initiate and manage voice calls using Twilio and OpenAI (GPT-4o Realtime model). Use this as a base to kick-start your AI-powered voice calling explorations, save time and develop additional functionality on top of it.

View on GitHub

Last updated: N/A

What is Voice Call MCP Server?

This is a Model Context Protocol (MCP) server that allows AI assistants like Claude to make and manage phone calls. It uses Twilio for call management and OpenAI's GPT-4o Realtime model for real-time audio processing and conversation.

How to use Voice Call MCP Server?

  1. Clone the repository, 2. Install dependencies (Node.js >= 22, Twilio account, OpenAI API key, Ngrok Authtoken), 3. Configure environment variables, 4. Configure Claude Desktop to connect to the server, 5. Interact with Claude using natural language to initiate calls.

Key features of Voice Call MCP Server

  • Make outbound phone calls via Twilio

  • Process call audio in real-time with GPT-4o Realtime model

  • Real-time language switching during calls

  • Pre-built prompts for common calling scenarios

  • Automatic public URL tunneling with ngrok

  • Secure handling of credentials

Use cases of Voice Call MCP Server

  • Making simple phone calls

  • Making restaurant reservations

  • Scheduling appointments

  • Any task requiring voice communication initiated by an AI assistant

FAQ from Voice Call MCP Server

Phone number must be in E.164 format

Make sure the phone number starts with '+' and the country code

Invalid credentials

Double-check your TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN. You can copy them from the Twilio Console

OpenAI API error

Verify your OPENAI_API_KEY is correct and has sufficient credits

Ngrok tunnel failed to start

Ensure your NGROK_AUTHTOKEN is valid and not expired

OpenAI Realtime does not detect the end of voice input, or is lagging.

Sometimes, there might be voice encoding issues between Twilio and the receiver's network operator. Try using a different receiver.