Puch呼叫MCP服务器
\ > > > > > > ef2f7a0bffb25876a4b7e080ebbfe110f64055e2
> > > > > > 一个MCP(模型上下文协议)服务器,使Puch WhatsApp机器人能够使用Twilio给客户打电话。
🚀 特性
- 打电话:使用自定义消息向客户发起呼叫
- 呼叫状态跟踪:监控通话进度和完成情况
- 呼叫记录:列出并管理最近的通话
- 语音定制:选择不同的声音和语言
- 通话录音:开始和停止通话录音
- 音频转录:将通话录音转录为文本
- 内容概述:总结通话记录和文本内容
- AI驱动的分析:情感分析和关键主题提取
- Webhook 集成:实时通话状态更新
- MCP协议:人工智能助手的标准化界面
🛠️ 设置
先决条件
- Node.js 18+
- Twilio帐户:
- 帐户SID - 身份验证令牌 - 拨打电话的电话号码
安装
- 克隆存储库
git clone
cd puch-call-mcp-server- 安装依赖项
npm install- 配置环境变量
cp env.example .env编辑 .env 使用您的Twilio凭据:
TWILIO_ACCOUNT_SID=your_twilio_account_sid_here
TWILIO_AUTH_TOKEN=your_twilio_auth_token_here
TWILIO_PHONE_NUMBER=+1234567890
MCP_SERVER_PORT=3000
MCP_SERVER_HOST=localhost
WEBHOOK_BASE_URL=https://your-domain.com- 构建项目
npm run build🚀 用法
启动MCP服务器
npm start发展模式
npm run dev启动Webhook服务器
node dist/webhook.js📋 可用工具
1.拨打电话(call)
向客户发起电话呼叫。
参数:
to(string):要拨打的电话号码(例如,“+1234567890”)message(string):通话中要讲话的消息voice(可选):要使用的语音(默认:“alice”)language(可选):通话语言(默认:“en-US”)
例子:
{
"tool": "call",
"arguments": {
"to": "+1234567890",
"message": "Hello! This is Puch calling to follow up on your recent inquiry.",
"voice": "alice",
"language": "en-US"
}
}2.检查通话状态(call-status)
获取特定调用的当前状态。
参数:
callId(string):Twilio呼叫ID
例子:
{
"tool": "call-status",
"arguments": {
"callId": "CA1234567890abcdef"
}
}3.列出通话记录(list-calls)
检索最近通话的列表。
例子:
{
"tool": "list-calls",
"arguments": {}
}4.转录音频(transcribe)
从通话记录或音频文件中转录音频。
参数:
callId(可选):要转录的Twilio呼叫IDaudioUrl(可选):要转录的音频文件的URLlanguage(可选):音频语言(默认:“en-US”)
例子:
{
"tool": "transcribe",
"arguments": {
"callId": "CA1234567890abcdef",
"language": "en-US"
}
}5.总结内容(summarize)
通过人工智能分析总结通话记录或文本内容。
参数:
text(string):要摘要的文本内容maxLength(可选):摘要的最大长度(默认值:150)style(可选):摘要样式-“项目符号”、“段落”或“key_points”(默认值:“key_point”)
例子:
{
"tool": "summarize",
"arguments": {
"text": "Customer called about order status...",
"maxLength": 200,
"style": "key_points"
}
}6.记录通话(record)
开始或停止录制通话。
参数:
callId(string):要记录的Twilio呼叫IDaction(string):“开始”或“停止”录制recordingChannels(可选):“双”或“单”(默认为“双”)recordingStatusCallback(可选):用于记录状态更新的回调URL
例子:
{
"tool": "record",
"arguments": {
"callId": "CA1234567890abcdef",
"action": "start",
"recordingChannels": "dual"
}
}🔗 与Puch整合
MCP客户端配置
将此服务器添加到MCP客户端配置中:
{
"mcpServers": {
"puch-call": {
"command": "node",
"args": ["path/to/puch-call-mcp-server/dist/index.js"],
"env": {
"TWILIO_ACCOUNT_SID": "your_sid",
"TWILIO_AUTH_TOKEN": "your_token",
"TWILIO_PHONE_NUMBER": "+1234567890"
}
}
}
}WhatsApp机器人集成
Puch现在可以使用MCP工具拨打电话:
// Example: Puch making a follow-up call
const callResult = await mcpClient.callTool({
to: customerPhoneNumber,
message: "Hi! This is Puch from our support team. I wanted to check if you received our latest update about your order.",
voice: "alice",
language: "en-US"
});
console.log(`Call initiated: ${callResult.callId}`);🌐 Webhook 端点
呼叫状态 Webhook
- 统一资源定位符:
POST /webhook/call-status - 目的:接收有关呼叫状态的实时更新
- 数据:CallSid、CallStatus、CallDuration等。
健康检查
- 统一资源定位符:
GET /health - 目的:服务器运行状况监视
🔧 配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
TWILIO_ACCOUNT_SID | 您的Twilio帐户SID | 是 |
TWILIO_AUTH_TOKEN | 您的Twilio认证令牌 | 是 |
TWILIO_PHONE_NUMBER | 您的Twilio电话号码 | 是 |
MCP_SERVER_PORT | webhook服务器的端口 | 否(默认值:3000) |
WEBHOOK_BASE_URL Webhooks 的基本 URL |
语音选项
可用的Twilio声音:
alice(默认)bobcharliedianaevefrankgracehenry
语言选项
通用语言代码:
en-US(英语、美国)en-GB(英语,英国)es-ES(西班牙语)fr-FR(法语)de-DE(德语)it-IT(意大利语)
📊 监控和分析
服务器提供:
- 通过webhooks实时更新通话状态
- 通话时间和定价信息
- 通话记录和分析
- 健康监测端点
🚨 错误处理
该服务器包括全面的错误处理功能,用于:
- 电话号码无效
- Twilio API错误
- 网络连接问题
- 身份验证失败
🔒 安全
- 敏感凭据的环境变量
- 使用Zod模式进行输入验证
- webhook端点的CORS配置
- 错误消息清理
📝 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
📞 支持
如需支持或提问:
- 在存储库中创建问题
- 联系Puch AI团队
- 查看Twilio文档了解API的详细信息
______________________________________________________________________
由以下材料制成❤️ Puch AI团队
