Voice Call MCP Server

Voice Call MCP Server

一个模型上下文协议服务器,使像 Claude 这样的人工智能助手能够使用 Twilio 和 OpenAI 的语音模型发起和管理实时语音通话。

Category
访问服务器

README

语音通话 MCP 服务器

一个模型上下文协议 (MCP) 服务器,使 Claude 和其他 AI 助手能够使用 Twilio 和 OpenAI (GPT-4o 实时模型) 发起和管理语音通话。

以此为基础,快速启动您的人工智能语音通话探索,节省时间并在其基础上开发更多功能。

演示

序列图

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) 将实时音频转发到 OpenaAI 的实时模型
    OpenAI->>MCP: 6) 返回语音流
    MCP->>Twilio: 7) 发送语音流
    Twilio->>Phone: 8) 转发语音流
    Note over Phone: 双向对话持续进行 <br>直到通话结束

功能

  • 通过 Twilio 拨打呼出电话 📞
  • 使用 GPT-4o 实时模型实时处理通话音频 🎙️
  • 通话期间实时切换语言 🌐
  • 常见通话场景的预构建提示(如餐厅预订) 🍽️
  • 使用 ngrok 自动进行公共 URL 隧道 🔄
  • 安全处理凭据 🔒

为什么选择 MCP?

模型上下文协议 (MCP) 弥合了 AI 助手和现实世界行动之间的差距。 通过实施 MCP,此服务器允许像 Claude 这样的 AI 模型:

  1. 代表用户发起实际电话呼叫
  2. 处理并响应实时音频对话
  3. 执行需要语音通信的复杂任务

这种开源实现提供了透明性和可定制性,允许开发人员扩展功能,同时保持对其数据和隐私的控制。

要求

  • Node.js >= 22
    • 如果您需要更新 Node.js,我们建议使用 nvm (Node Version Manager):
      nvm install 22
      nvm use 22
      
      nvm use 22
      
  • 具有 API 凭据的 Twilio 帐户
  • OpenAI API 密钥
  • Ngrok 身份验证令牌

安装

手动安装

  1. 克隆存储库

    git clone https://github.com/lukaskai/voice-call-mcp-server.git
    cd voice-call-mcp-server
    
  2. 安装依赖项并构建

    npm install
    npm run build
    

配置

服务器需要几个环境变量:

  • TWILIO_ACCOUNT_SID: 您的 Twilio 帐户 SID
  • TWILIO_AUTH_TOKEN: 您的 Twilio 身份验证令牌
  • TWILIO_NUMBER: 您的 Twilio 电话号码
  • OPENAI_API_KEY: 您的 OpenAI API 密钥
  • NGROK_AUTHTOKEN: 您的 ngrok 身份验证令牌
  • RECORD_CALLS: 设置为 "true" 以录制通话(可选)

Claude Desktop 配置

要将此服务器与 Claude Desktop 一起使用,请将以下内容添加到您的配置文件中:

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 Desktop 以重新加载配置。 如果已连接,您应该在 🔨 菜单下看到语音通话。

与 Claude 的示例交互

以下是一些通过 Claude 与服务器交互的自然方式:

  1. 简单通话:
你能给 +1-123-456-7890 打电话,告诉他们我开会要迟到 15 分钟吗?
  1. 餐厅预订:
请致电 +1-123-456-7890 的 Delicious Restaurant,预订今晚 7:30 的 4 人座位。 请用德语说。
  1. 预约安排:
请致电 Expert Dental NYC (+1-123-456-7899) 并将我周一的预约改到下周五下午 4-6 点之间。

重要提示

  1. 电话号码格式:所有电话号码必须采用 E.164 格式(例如,+11234567890)
  2. 速率限制:请注意您的 Twilio 和 OpenAI 帐户的速率限制和定价
  3. 语音对话:AI 将实时处理自然对话
  4. 通话时长:请注意通话时长,因为它们会影响 OpenAI API 和 Twilio 的成本
  5. 公开暴露:请注意,ngrok 隧道会公开您的服务器,以便 Twilio 可以访问它(尽管具有随机 URL 并受随机密钥保护)

故障排除

常见错误消息和解决方案:

  1. "电话号码必须采用 E.164 格式"

    • 确保电话号码以 "+" 和国家/地区代码开头
  2. "无效的凭据"

    • 仔细检查您的 TWILIO_ACCOUNT_SID 和 TWILIO_AUTH_TOKEN。 您可以从 Twilio 控制台 复制它们
  3. "OpenAI API 错误"

    • 验证您的 OPENAI_API_KEY 是否正确且具有足够的信用额度
  4. "Ngrok 隧道启动失败"

    • 确保您的 NGROK_AUTHTOKEN 有效且未过期
  5. "OpenAI Realtime 未检测到语音输入的结束,或者滞后。"

    • 有时,Twilio 和接收者的网络运营商之间可能存在语音编码问题。 尝试使用不同的接收者。

贡献

欢迎贡献! 以下是我们希望改进的一些领域:

  • 实施对当前实现之外的多种 AI 模型 的支持
  • 添加数据库集成以在本地存储对话历史记录,并使其可用于 AI 上下文
  • 提高延迟和响应时间以增强通话体验
  • 增强错误处理和恢复机制
  • 为常见场景添加更多预构建的对话模板
  • 实施改进的呼叫监控和分析

如果您想贡献,请先打开一个 issue 来讨论您的想法,然后再提交 pull request。

许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。

安全

请不要在 GitHub issue 或 pull request 中包含任何敏感信息(如电话号码或 API 凭据)。 此服务器处理敏感通信;负责任地部署它并确保所有凭据都安全。

开启新的任务?

我们正在招聘工程师来构建语音 AI 的前沿技术,并将其融入下一代电信中。

好奇吗? 前往 careers.popcorn.space 🍿!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选