mcpField
V
Vapi MCP Server

Vapi MCP Server

Local
vapi.aiAI & Agents58Updated 1d ago

About Vapi MCP Server

Vapi MCP Server gives MCP clients access to Vapi voice assistant and phone-agent operations. It supports building and maintaining assistants, as well as placing or scheduling outbound calls, through local stdio or a hosted Streamable HTTP endpoint.

Key features

  1. 01Create and update voice assistants
  2. 02Review call history and details
  3. 03Place or schedule outbound calls
  4. 04Manage phone numbers
  5. 05Manage custom tools

Use cases

  1. 01Build an appointment-scheduling voice assistant
  2. 02Send outbound appointment reminders
  3. 03Schedule a future support call

MCP support

The server exposes Vapi assistant, call, phone-number, and custom-tool operations to MCP clients. It supports local stdio and remote Streamable HTTP connections.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"vapiai": {
"command": "npx",
"args": [
"-y",
"@vapi-ai/mcp-server"
]
}
}
}
Run commandnpx -y @vapi-ai/mcp-server

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@vapi-ai/mcp-server

Tools

13

Saved tool list · updated 3w ago

This tool takes no parameters.

Details

From the project README

Vapi MCP Server

Build AI voice assistants and phone agents with Vapi using the Model Context Protocol.

Setup

The MCP server requires a Vapi API key. Get one from the Vapi dashboard.

Local Server (stdio)

Configure any MCP client that supports local stdio servers to run:

npx -y @vapi-ai/mcp-server

Set VAPI_TOKEN in the server environment. MCP client configuration formats vary, but the server definition generally looks like this:

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

Clients that support remote MCP servers can connect directly:

  • URL: https://mcp.vapi.ai/mcp
  • Header: Authorization: Bearer your_vapi_api_key_here
Client-Specific Examples
Claude Code
claude mcp add -e VAPI_TOKEN=your_vapi_token vapi -- npx -y @vapi-ai/mcp-server
Claude Desktop

Use the local server configuration above in the Claude Desktop configuration file. To connect to the hosted server through an stdio bridge instead:

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

The skill directory contains reusable instructions for AI coding agents that support Agent Skills. Install it using your host's skill installation process.

For 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

Example Usage

Create a Voice Assistant

Ask your MCP-enabled agent:

I want to build a voice assistant that can schedule appointments
Make an Outbound Call
Call +1234567890 using my appointment reminder assistant with these details:
- Customer name: Sarah Johnson
- Appointment date: March 25th
- Appointment time: 2:30 PM
Schedule a Future Call
Schedule a call with my support assistant for next Tuesday at 3:00 PM to +1555123456

Using Variable Values in Assistant Prompts

The create_call action supports passing dynamic variables through assistantOverrides.variableValues. Use double curly braces in your assistant's prompts: {{variableName}}.

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

These are automatically available (no need to pass):

  • {{now}} - Current date and time (UTC)
  • {{date}} - Current date (UTC)
  • {{time}} - Current time (UTC)
  • {{month}} - Current month (UTC)
  • {{day}} - Current day of month (UTC)
  • {{year}} - Current year (UTC)
  • {{customer.number}} - Customer's phone number

See Vapi documentation for advanced date/time formatting.


Remote MCP Server

Connect to Vapi's hosted MCP server from any MCP client:

Streamable HTTP (Recommended)
  • URL: https://mcp.vapi.ai/mcp
  • Header: Authorization: Bearer your_vapi_api_key_here
SSE (Deprecated)
  • URL: https://mcp.vapi.ai/sse
  • Header: Authorization: Bearer your_vapi_api_key_here

Available Tools

Assistants
ToolDescription
list_assistantsList all assistants
get_assistantGet assistant by ID
create_assistantCreate new assistant
update_assistantUpdate assistant
Calls
ToolDescription
list_callsList call history
get_callGet call details
create_callStart outbound call (immediate or scheduled)
Phone Numbers
ToolDescription
list_phone_numbersList phone numbers
get_phone_numberGet phone number details
Tools (Function Calling)
ToolDescription
list_toolsList custom tools
get_toolGet tool details
create_toolCreate tool for API integration
update_toolUpdate tool

Development

# Install dependencies
npm install

# Build
npm run build

# Test with MCP inspector
npm run inspector
Local Development Config
{
  "mcpServers": {
    "vapi-local": {
      "command": "node",
      "args": ["<path>/dist/index.js"],
      "env": {
        "VAPI_TOKEN": "<your_vapi_token>"
      }
    }
  }
}
Testing
# 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

References

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.