Vapi MCP Server
Un servidor para integrar con las APIs de voz AI de Vapi usando llamadas a funciones.
Documentación
Vapi MCP Server
Crea asistentes de voz con IA y agentes telefónicos con Vapi usando el Protocolo de Contexto de Modelo.
Configuración
El servidor MCP requiere una clave de API de Vapi. Obtén una desde el panel de Vapi.
Servidor Local (stdio)
Configura cualquier cliente MCP que admita servidores stdio locales para ejecutar:
npx -y @vapi-ai/mcp-server
Establece VAPI_TOKEN en el entorno del servidor. Los formatos de configuración del cliente MCP varían, pero la definición del servidor generalmente se ve así:
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": ["-y", "@vapi-ai/mcp-server"],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
}
}
}
Servidor Remoto (HTTP Transmisible)
Los clientes que admiten servidores MCP remotos pueden conectarse directamente:
- URL:
https://mcp.vapi.ai/mcp - Header:
Authorization: Bearer your_vapi_api_key_here
Ejemplos Específicos por Cliente
Claude Code
claude mcp add -e VAPI_TOKEN=your_vapi_token vapi -- npx -y @vapi-ai/mcp-server
Claude Desktop
Usa la configuración del servidor local anterior en el archivo de configuración de Claude Desktop. Para conectarte al servidor alojado a través de un puente stdio en su lugar:
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.vapi.ai/mcp",
"--header",
"Authorization: Bearer ${VAPI_TOKEN}"
],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
}
}
}
Habilidad de Agente Opcional
El directorio skill contiene instrucciones reutilizables para agentes de codificación con IA que admiten Habilidades de Agente. Instálalo usando el proceso de instalación de habilidades de tu host.
Para Claude Code:
mkdir -p ~/.claude/skills/vapi
curl -o ~/.claude/skills/vapi/SKILL.md https://raw.githubusercontent.com/VapiAI/mcp-server/main/skill/SKILL.md
Ejemplo de Uso
Crear un Asistente de Voz
Pregunta a tu agente habilitado para MCP:
I want to build a voice assistant that can schedule appointments
Realizar una Llamada Saliente
Call +1234567890 using my appointment reminder assistant with these details:
- Customer name: Sarah Johnson
- Appointment date: March 25th
- Appointment time: 2:30 PM
Programar una Llamada Futura
Schedule a call with my support assistant for next Tuesday at 3:00 PM to +1555123456
Uso de Valores de Variables en Prompts de Asistentes
La acción create_call admite pasar variables dinámicas a través de assistantOverrides.variableValues. Usa dobles llaves en los prompts de tu asistente: {{variableName}}.
Ejemplo de Prompt con Variables
Hello {{customerName}}, this is a reminder about your appointment on {{appointmentDate}} at {{appointmentTime}} with {{doctorName}}.
Variables Predeterminadas
Estas están disponibles automáticamente (no es necesario pasarlas):
{{now}}- Fecha y hora actuales (UTC){{date}}- Fecha actual (UTC){{time}}- Hora actual (UTC){{month}}- Mes actual (UTC){{day}}- Día actual del mes (UTC){{year}}- Año actual (UTC){{customer.number}}- Número de teléfono del cliente
Consulta la documentación de Vapi para formato avanzado de fecha/hora.
Servidor MCP Remoto
Conéctate al servidor MCP alojado de Vapi desde cualquier cliente MCP:
HTTP Transmisible (Recomendado)
- URL:
https://mcp.vapi.ai/mcp - Header:
Authorization: Bearer your_vapi_api_key_here
SSE (Obsoleto)
- URL:
https://mcp.vapi.ai/sse - Header:
Authorization: Bearer your_vapi_api_key_here
Herramientas Disponibles
Asistentes
| Herramienta | Descripción |
|---|---|
list_assistants | Listar todos los asistentes |
get_assistant | Obtener asistente por ID |
create_assistant | Crear nuevo asistente |
update_assistant | Actualizar asistente |
Llamadas
| Herramienta | Descripción |
|---|---|
list_calls | Listar historial de llamadas |
get_call | Obtener detalles de la llamada |
create_call | Iniciar llamada saliente (inmediata o programada) |
Números de Teléfono
| Herramienta | Descripción |
|---|---|
list_phone_numbers | Listar números de teléfono |
get_phone_number | Obtener detalles del número de teléfono |
Herramientas (Llamada de Funciones)
| Herramienta | Descripción |
|---|---|
list_tools | Listar herramientas personalizadas |
get_tool | Obtener detalles de la herramienta |
create_tool | Crear herramienta para integración de API |
update_tool | Actualizar herramienta |
Desarrollo
# Install dependencies
npm install
# Build
npm run build
# Test with MCP inspector
npm run inspector
Configuración de Desarrollo Local
{
"mcpServers": {
"vapi-local": {
"command": "node",
"args": ["<path>/dist/index.js"],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
}
}
}
Pruebas
# Safe default suite (build, mocked execution, contract, and stdio compatibility)
npm test
# Unit tests (mocked public tool execution and catalog contract)
npm run test:unit
# Documentation/tool-catalog consistency lint
npm run test:docs
# Full TypeScript check (production and test code)
npm run typecheck
# Build and run local stdio protocol compatibility tests (no Vapi API calls)
npm run test:stdio
# Pack, install, and launch the package from a clean temporary consumer
npm run test:package
# Live read-only API tests
export VAPI_TOKEN=your_token_here
npm run test:live:readonly
# Live mutating tests (creates and cleans up disposable assistants and tools)
export VAPI_TOKEN=your_test_org_token_here
npm run test:live:mutating