语音AI集成服务器

Vapi MCP Server是一个开源模型上下文协议服务器,用于连接Vapi语音AI API与Claude Desktop等MCP客户端,支持管理助手、创建和安排电话呼叫以及控制语音AI工具。

  • by KuchikiRenji
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 KuchikiRenji/mcp-server

使用说明

Vapi MCP服务器——克劳德和模型上下文协议的语音AI集成

Vapi MCP服务器 是一个开源 模型上下文协议 连接的(MCP)服务器 瓦皮 Claude Desktop和其他MCP客户端的语音AI API。管理助手,创建和安排电话,控制语音AI工具——所有这些都来自您的AI工作流程。


目录


关于本项目

该项目提供了 用于Vapi的模型上下文协议(MCP)服务器,启用:

  • Claude桌面集成 –使用Claude创建通话、管理助手,并通过自然语言使用Vapi电话号码。
  • 语音AI工具呼叫 –将Vapi助手、电话、电话号码和工具作为MCP工具公开给任何兼容MCP的客户端。
  • 流式HTTP和SSE –本地(stdio)或远程连接到Vapi的MCP端点。

非常适合开发人员构建语音AI工作流程、预约时间表和AI驱动的手机集成 瓦皮 和 克劳德.


特性

  • 助理管理 –列出、创建、更新和获取Vapi助手
  • 呼叫控制 –使用动态变量创建出站呼叫(即时或计划)
  • 电话号码 –列出并检查Vapi电话号码
  • Vapi工具 –列出并获取Vapi工具定义
  • 克劳德桌面版 –Claude Desktop的插入式配置
  • 远程MCP –通过Streamable HTTP或SSE连接到Vapi托管的MCP服务器

先决条件


快速开始

  1. 得到你的 Vapi API密钥 从 Vapi仪表板.
  2. 安装并运行服务器(请参阅 Claude桌面设置 或 发展).
  3. 使用您的MCP客户端呼叫Vapi助理、创建呼叫和管理电话号码。

Claude桌面设置

  1. 打开 克劳德桌面版 并按 Cmd + , (Mac)或 Ctrl + , (Windows)打开 设置.
  2. 去 开发者 选项卡。
  3. 点击 编辑配置 打开 claude_desktop_config.json.
  4. 在下面添加MCP服务器配置(请参阅 模型上下文协议用户快速入门 详细信息)。
  5. 重新启动克劳德桌面 保存配置后。

本地配置

通过以下方式在本地运行Vapi MCP服务器 npx:

{
  "mcpServers": {
    "vapi-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@vapi-ai/mcp-server"
      ],
      "env": {
        "VAPI_TOKEN": "<your_vapi_token>"
      }
    }
  }
}

远程配置

连接到Vapi的远程MCP服务器(无需本地安装):

{
  "mcpServers": {
    "vapi-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.vapi.ai/mcp",
        "--header",
        "Authorization: Bearer ${VAPI_TOKEN}"
      ],
      "env": {
        "VAPI_TOKEN": "<your_vapi_token>"
      }
    }
  }
}

Claude Desktop使用示例

  1. 创建或导入 电话号码 在 Vapi仪表板.
  2. 创建新 助手 (例如,使用“预约时间表”模板) Vapi仪表板.
  3. 确保Claude Desktop已配置Vapi MCP服务器,并重新启动应用程序。
  4. 让克劳德发起或安排一个电话。示例:

示例1:请求立即呼叫

I'd like to speak with my ShopHelper assistant to talk about my recent order. Can you have it call me at +1234567890?

示例2:安排未来的通话

I need to schedule a call with Mary assistant for next Tuesday at 3:00 PM. My phone number is +1555123456.

示例3:使用动态变量调用

I want to call +1234567890 with my appointment reminder assistant. Use these details:
- Customer name: Sarah Johnson
- Appointment date: March 25th
- Appointment time: 2:30 PM
- Doctor name: Dr. Smith

在助手提示中使用变量值

这 create_call action通过以下方式支持动态变量 assistantOverrides.variableValues。在助手的提示中使用双花括号: {{variableName}}.

带变量的助手提示示例

Hello {{customerName}}, this is a reminder about your appointment on {{appointmentDate}} at {{appointmentTime}} with {{doctorName}}.

默认变量

这些变量在提示中可用,无需传递 variableValues:

变量 描述
{{now}} 当前日期和时间(UTC)
{{date}} 当前日期(UTC)
{{time}} 当前时间(UTC)
{{month}} 本月(UTC)
{{day}} 当前月份(UTC)
{{year}} 本年度(UTC)
{{customer.number}} 客户电话号码

有关默认变量和日期/时间格式,请参阅 Vapi文档.


远程MCP

您可以从任何MCP客户端远程使用Vapi的MCP服务器。

流式HTTP(推荐)

  • 端点: https://mcp.vapi.ai/mcp
  • 使用 流式HTTP 传输并发送您的Vapi API密钥作为承载令牌。
  • 标题示例: Authorization: Bearer your_vapi_api_key_here

SSE(已弃用)

  • 端点: https://mcp.vapi.ai/sse
  • 使用 上海证券交易所 传输并发送您的Vapi API密钥作为承载令牌。
  • 标题示例: Authorization: Bearer your_vapi_api_key_here

支持的操作和工具

Vapi MCP服务器公开了以下工具:

辅助工具

工具 说明
list_assistants 列出所有Vapi助手
create_assistant 创建新的Vapi助手
update_assistant 更新现有的Vapi助手
get_assistant 通过ID获取Vapi助手

呼叫工具

工具 说明
list_calls 列出所有Vapi呼叫
create_call 创建出站呼叫(即时或预定;支持 assistantOverrides.variableValues)
get_call 获取特定通话的详细信息

电话号码工具

工具 说明
list_phone_numbers 列出所有Vapi电话号码
get_phone_number 获取特定电话号码的详细信息

Vapi工具

工具 说明
list_tools 列出所有Vapi工具
get_tool 获取特定工具的详细信息

注: create_call 通过以下方式支持调度(即时或未来)和动态变量 assistantOverrides.variableValues.


发展

# Install dependencies
npm install

# Build the server
npm run build

# Run with MCP inspector (for testing)
npm run inspector

要在Claude Desktop中使用本地构建,请将配置指向构建文件:

{
  "mcpServers": {
    "vapi-local": {
      "command": "node",
      "args": [
        "<path_to_vapi_mcp_server>/dist/index.js"
      ],
      "env": {
        "VAPI_TOKEN": "<your_vapi_token>"
      }
    }
  }
}

测试

单元测试

使用模拟;没有真正的Vapi API调用。

npm run test:unit

端到端测试

需要有效的 VAPI_TOKEN 并执行真正的API调用。

export VAPI_TOKEN=your_token_here
npm run test:e2e

运行所有测试

npm test

参考文献


作者和联系人

KuchikiRenji

GitHub github/库奇奇
电子邮件 KuchikiRenji@outlook.com
Discord 的中文翻译是“不和谐”或“纷争”。 kuchiki_renji

对于问题、功能请求或贡献,请打开 问题 或通过上述渠道联系。