使用说明
项目简介
本项目是一个实现了Model Context Protocol (MCP) 的服务器,专注于语音通话功能。它利用 Twilio 服务建立电话连接,并结合 OpenAI 的语音模型进行实时语音处理,使得AI助手(如 Claude)能够发起、管理和参与真实的电话对话。此服务器旨在弥合 AI 助手与现实世界行动之间的鸿沟,让 AI 模型能够执行需要语音通信的复杂任务,例如餐厅预订、日程安排等。
主要功能点
- 发起外呼电话: 通过 Twilio API 拨打电话到指定号码。
- 实时语音处理: 使用 OpenAI 的实时模型处理通话中的音频流,实现 AI 语音对话能力。
- 预置Prompt模板: 提供预先构建的 Prompt 模板,用于常见的呼叫场景,如餐厅预订。
- 自动公共URL隧道: 通过 ngrok 自动创建公共 URL 隧道,方便 Twilio 服务器回调连接。
- 安全凭据处理: 安全地处理 Twilio 和 OpenAI 的 API 密钥等敏感信息。
安装步骤
-
克隆仓库
git clone https://github.com/lukaskai/mcp-new.git cd mcp-new -
安装依赖并构建
npm install npm run build
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要在 MCP 客户端的配置文件中添加服务器配置信息。以下是针对 Claude Desktop 的配置示例,您需要根据实际情况修改路径和环境变量。
Claude Desktop 配置 (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" } } } }
配置参数说明:
- '"voice-call"': 服务器名称,可以自定义,在 Claude Desktop 中用于标识和选择此 MCP 服务器。
- '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行环境。
- '"args": ["/path/to/your/mcp-new/dist/start-all.cjs"]': 启动命令的参数,指向服务器启动脚本的路径。请将 '/path/to/your/mcp-new' 替换为实际的项目路径。
- '"env"': 环境变量配置,包含服务器运行所需的 API 密钥和账户信息。
- '"TWILIO_ACCOUNT_SID"': 您的 Twilio 账户 SID。
- '"TWILIO_AUTH_TOKEN"': 您的 Twilio 认证令牌。
- '"TWILIO_NUMBER"': 您的 Twilio 电话号码 (E.164 格式)。
- '"OPENAI_API_KEY"': 您的 OpenAI API 密钥。
- '"NGROK_AUTHTOKEN"': 您的 ngrok Authtoken,用于自动创建公共URL隧道。
环境变量配置:
除了 Claude Desktop 配置文件中的环境变量,您也可以在服务器运行环境中设置以下环境变量,作用相同:
- 'TWILIO_ACCOUNT_SID'
- 'TWILIO_AUTH_TOKEN'
- 'TWILIO_NUMBER'
- 'OPENAI_API_KEY'
- 'NGROK_AUTHTOKEN'
- 'RECORD_CALLS' (可选,设置为 "true" 以录制通话)
- 'PORT' (可选,设置服务器端口,默认为 3004)
基本使用方法
- 启动服务器: 在项目根目录下运行 'npm run start-all' 启动服务器。
- 配置 MCP 客户端: 根据上述 “服务器配置” 部分,配置您的 MCP 客户端 (如 Claude Desktop) 连接到此服务器。
- 通过 MCP 客户端发起语音呼叫: 在 MCP 客户端中,使用自然语言指令指示 AI 助手发起语音呼叫。例如,在 Claude 中可以使用类似以下的指令:
- 'Can you call +11234567890 and let them know I'll be 15 minutes late for our meeting?'
- 'Please call Delicious Restaurant at +11234567890 and make a reservation for 4 people tonight at 7:30 PM.'
重要提示:
- 电话号码格式: 所有电话号码必须使用 E.164 格式 (例如: +11234567890)。
- API 密钥和账户: 确保您已配置正确的 Twilio 和 OpenAI API 密钥及 Twilio 账户信息。
- Ngrok 隧道: ngrok 用于创建公共 URL,以便 Twilio 服务器可以回调连接到您的本地服务器。请确保 ngrok Authtoken 有效。
- Claude Desktop 🔨 菜单: 成功配置后,您应该能在 Claude Desktop 的 🔨 菜单下看到 "Voice Call" 选项,表示 MCP 服务器已连接。
信息
分类
通信与社交