这是一个模型上下文协议(MCP)服务器,它使Claude和其他AI助手能够使用Twilio和OpenAI(GPT-4o实时模型)发起和管理语音通话。
使用此基础来启动您的AI驱动的语音呼叫探索,节省时间,并在此基础上开发额外的功能。

sequenceDiagram
participant AI as AI助手(例如,Claude)
participant MCP as MCP服务器
participant Twilio as Twilio
participant Phone as 目标电话
participant OpenAI as OpenAI
AI->>MCP: 1) 发起外拨电话请求<br>(POST /calls)
MCP->>Twilio: 2) 通过Twilio API拨打电话
Twilio->>Phone: 3) 拨打目标电话
Twilio->>MCP: 4) 通话状态更新及音频回调(webhooks)
MCP->>OpenAI: 5) 向OpenAI的实时模型转发实时音频
OpenAI->>MCP: 6) 返回语音流
MCP->>Twilio: 7) 发送语音流
Twilio->>Phone: 8) 转发语音流
Note over Phone: 双向对话持续进行<br>直到通话结束
模型上下文协议(MCP)弥合了AI助手与现实世界行动之间的差距。通过实现MCP,该服务器允许像Claude这样的AI模型:
这个开源实现提供了透明性和可定制性,允许开发者扩展功能同时保持对其数据和隐私的控制。
nvm(Node版本管理器):
nvm install 22
nvm use 22
克隆仓库
git clone https://github.com/lukaskai/voice-call-mcp-server.git
cd voice-call-mcp-server
安装依赖项并构建
npm install
npm run build
服务器需要几个环境变量:
TWILIO_ACCOUNT_SID:您的Twilio账户SIDTWILIO_AUTH_TOKEN:您的Twilio认证令牌TWILIO_NUMBER:您的Twilio号码OPENAI_API_KEY:您的OpenAI API密钥NGROK_AUTHTOKEN:您的ngrok认证令牌RECORD_CALLS:设置为“true”以记录通话(可选)要将此服务器与Claude桌面一起使用,请在配置文件中添加以下内容:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"voice-call": {
"command": "node",
"args": ["/path/to/your/mcp-new/dist/start-all.cjs"],
"env": {
"TWILIO_ACCOUNT_SID": "your_account_sid",
"TWILIO_AUTH_TOKEN": "your_auth_token",
"TWILIO_NUMBER": "your_e.164_format_number",
"OPENAI_API_KEY": "your_openai_api_key",
"NGROK_AUTHTOKEN": "your_ngrok_authtoken"
}
}
}
}
之后,重启Claude桌面以重新加载配置。如果已连接,您应该能在🔨菜单下看到语音呼叫。
这里有一些自然的方式通过Claude与服务器互动:
你可以拨打+1-123-456-7890并告诉他们我开会迟到15分钟吗?
请拨打Delicious Restaurant的+1-123-456-7890并预订今晚7:30的4人餐位。请用德语交谈。
请拨打Expert Dental NYC的+1-123-456-7899并将我的周一预约改到下周五下午4-6点之间。
常见的错误消息及其解决方案:
“电话号码必须采用E.164格式”
“无效凭证”
“OpenAI API错误”
“ngrok隧道无法启动”
“OpenAI实时模型未能检测到语音输入的结束,或存在延迟。”
欢迎贡献!以下是希望改进的一些领域:
如果您想贡献,请在提交拉取请求之前打开一个议题讨论您的想法。
本项目根据MIT许可发布 - 查看LICENSE文件了解详情。
请不要在GitHub问题或拉取请求中包含任何敏感信息(如电话号码或API凭证)。此服务器处理敏感通信;请负责任地部署并确保所有凭证安全。
我们正在招聘工程师,在语音AI的前沿进行建设——并将其融入下一代电信服务。
感兴趣?前往careers.popcorn.space 🍿!