使用说明
Vapi MCP服务器
用于使用Vapi AI平台触发出站电话呼叫的模型上下文协议(MCP)服务器。部署在铁路上,使用HTTP/SSE传输进行远程访问。
特性
- MCP协议:使用HTTP/SSE传输的完整MCP服务器实现
- 单一工具:
trigger_vapi_call-使用ANDY助手触发出站呼叫 - 远程访问:可部署在铁路上用于云访问
- 苏格兰和南方能源公司运输:双向MCP通信的服务器发送事件
MCP工具
trigger_vapi_call
使用您配置的Vapi助手(Andy)触发出站电话。
参数:
phoneNumber(必填):要拨打的电话号码(包括国家代码,例如+1234567890)
MCP请求示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "trigger_vapi_call",
"arguments": {
"phoneNumber": "+1234567890"
}
}
}
地方发展
-
安装依赖项:
npm install -
创建
.env.local文件:VAPI_API_KEY=your_vapi_api_key ANDY=cde00b8a-3ebf-4d4f-8587-7e8fec8e5fda -
构建并运行:
npm run build npm start -
测试MCP服务器:
# Health check curl http://localhost:3000/health # MCP SSE endpoint curl http://localhost:3000/sse
铁路部署
方法1:铁路仪表盘(推荐)
-
推送到GitHub:
# Create a GitHub repository and push your code git remote add origin https://github.com/yourusername/vapi-mcp-server.git git push -u origin master -
通过铁路仪表板部署:
- 首选 Railway.app
- 点击“新建项目”→ “从GitHub仓库部署”
- 选择您的
vapi-mcp-server仓库 - Railway会自动检测到它是一个Node.js项目
-
设置环境变量:
- 在铁路项目仪表板中,转到变量选项卡
- 添加以下环境变量:
VAPI_API_KEY:您的Vapi私钥(不是公钥)ANDY:cde00b8a-3ebf-4d4f-8587-7e8fec8e5fda
-
部署:
- 铁路将自动构建和部署
- 从部署中获取您的公共URL
方法2:铁路CLI(备选方案)
-
安装铁路CLI:
npm install -g @railway/cli -
登录铁路:
railway login -
初始化铁路项目:
railway init -
添加服务(交互式):
railway add # Select "Empty Service" when prompted -
设置环境变量:
railway variables --set "VAPI_API_KEY=your_vapi_api_key" railway variables --set "ANDY=cde00b8a-3ebf-4d4f-8587-7e8fec8e5fda" -
部署:
railway up
使用Poke
STDIO传输(建议用于Poke)
Poke通过STDIO传输支持MCP服务器。使用服务器的STDIO版本:
本地测试:
npm run dev:stdio
对于Poke配置:
- 命令:
node /path/to/your/vapi-mcp-server/dist/stdio-server.js - 工作目录:
/path/to/your/vapi-mcp-server - 环境变量:设置
VAPI_API_KEY和ANDY在Poke的环境中
HTTP/SSE传输(用于远程访问)
HTTP版本可通过Railway进行远程访问:
本地测试:
npm run dev
铁路部署:
- 统一资源定位符:
https://YOUR_RAILWAY_URL/sse - 运输:服务器发送事件(SSE)
- 认证:可选通过
MCP_API_KEY
与MCP客户端一起使用
部署后,您可以使用任何兼容MCP的客户端连接到MCP服务器:
连接到远程MCP服务器
SSE端点: https://YOUR_RAILWAY_URL/sse
服务器通过服务器发送事件(SSE)实现MCP协议,允许远程客户端:
- 列出可用工具
- 打电话给
trigger_vapi_call工具 - 通过SSE流接收响应
客户端连接示例
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
// Connect to your Railway-deployed MCP server
const transport = new SSEClientTransport('https://YOUR_RAILWAY_URL/sse');
const client = new Client({
name: 'vapi-client',
version: '1.0.0'
}, {
capabilities: {}
});
await client.connect(transport);
// List available tools
const tools = await client.listTools();
console.log('Available tools:', tools);
// Trigger a call
const result = await client.callTool({
name: 'trigger_vapi_call',
arguments: {
phoneNumber: '+1234567890'
}
});
console.log('Call result:', result);
API终点
GET /-服务器信息和MCP详细信息GET /health-铁路监控健康检查GET /sse-MCP服务器发送事件端点
环境变量
VAPI_API_KEY:您的Vapi API密钥(必需)ANDY:呼叫助理ID(默认为cde00b8a-3ebf-4d4f-8587-7e8fec8e5fda)MCP_API_KEY:用于MCP服务器身份验证的可选API密钥PORT:服务器端口(Railway会自动设置此端口)
Vapi集成
服务器与Vapi的API集成:
- 端点:
POST https://api.vapi.ai/call - 认证:使用承载令牌
VAPI_API_KEY - 有效载荷:
{ "assistantId": "cde00b8a-3ebf-4d4f-8587-7e8fec8e5fda", "customer": { "number": "+1234567890" } }
故障排除
- 检查日志:
railway logs(如果使用CLI)或铁路仪表板中的视图 - 健康检查:参观
https://YOUR_RAILWAY_URL/health验证部署 - MCP端点:测试
https://YOUR_RAILWAY_URL/sse用于MCP连接 - 环境变量:确保
VAPI_API_KEY设置正确 - 电话号码格式:包括国家代码(例如。,
+1234567890)
MCP协议详细信息
此服务器实现了模型上下文协议(MCP)规范:
- 运输:服务器发送事件(SSE)
- 协议:基于SSE的JSON-RPC 2.0
- 能力:工具
- 工具:
trigger_vapi_call
