Skip to main content
Glama

Vapi MCP Server – Voice AI Integration for Claude & Model Context Protocol

Vapi MCP Server is an open-source Model Context Protocol (MCP) server that connects Vapi voice AI APIs with Claude Desktop and other MCP clients. Manage assistants, create and schedule phone calls, and control voice AI tools—all from your AI workflow.


Table of Contents


About This Project

This project provides a Model Context Protocol (MCP) server for Vapi, enabling:

  • Claude Desktop integration – Use Claude to create calls, manage assistants, and work with Vapi phone numbers via natural language.

  • Voice AI tool calling – Expose Vapi assistants, calls, phone numbers, and tools as MCP tools for any MCP-compatible client.

  • Streamable HTTP & SSE – Connect locally (stdio) or remotely to Vapi’s MCP endpoint.

Ideal for developers building voice AI workflows, appointment schedulers, and AI-powered phone integrations with Vapi and Claude.


Features

  • Assistant management – List, create, update, and get Vapi assistants

  • Call control – Create outbound calls (immediate or scheduled) with dynamic variables

  • Phone numbers – List and inspect Vapi phone numbers

  • Vapi tools – List and get Vapi tool definitions

  • Claude Desktop – Drop-in configuration for Claude Desktop

  • Remote MCP – Connect via Streamable HTTP or SSE to Vapi’s hosted MCP server


Prerequisites


Quick Start

  1. Get your Vapi API key from the Vapi dashboard.

  2. Install and run the server (see Claude Desktop Setup or Development).

  3. Use your MCP client to call Vapi assistants, create calls, and manage phone numbers.


Claude Desktop Setup

  1. Open Claude Desktop and press Cmd + , (Mac) or Ctrl + , (Windows) to open Settings.

  2. Go to the Developer tab.

  3. Click Edit Config to open claude_desktop_config.json.

  4. Add the MCP server configuration below (see Model Context Protocol user quickstart for details).

  5. Restart Claude Desktop after saving the config.

Local Configuration

Run the Vapi MCP server locally via npx:

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

Remote Configuration

Connect to Vapi’s remote MCP server (no local install):

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

Example Usage with Claude Desktop

  1. Create or import a phone number in the Vapi dashboard.

  2. Create a new assistant (e.g. using the “Appointment Scheduler” template) in the Vapi dashboard.

  3. Ensure Claude Desktop is configured with the Vapi MCP server and restart the app.

  4. Ask Claude to initiate or schedule a call. Examples:

Example 1: Request an immediate call

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

Example 2: Schedule a future call

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

Example 3: Call with dynamic variables

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

Using Variable Values in Assistant Prompts

The create_call action supports dynamic variables via assistantOverrides.variableValues. Use them in your assistant’s prompts with double curly braces: {{variableName}}.

Example Assistant Prompt with Variables

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

Default Variables

These variables are available in prompts without passing variableValues:

Variable

Description

{{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

For default variables and date/time formatting, see the Vapi documentation.


Remote MCP

You can use Vapi’s MCP server remotely from any MCP client.

  • Endpoint: https://mcp.vapi.ai/mcp

  • Use Streamable HTTP transport and send your Vapi API key as a Bearer token.

  • Example header: Authorization: Bearer your_vapi_api_key_here

SSE (Deprecated)

  • Endpoint: https://mcp.vapi.ai/sse

  • Use SSE transport and send your Vapi API key as a Bearer token.

  • Example header: Authorization: Bearer your_vapi_api_key_here


Supported Actions & Tools

The Vapi MCP Server exposes these tools:

Assistant Tools

Tool

Description

list_assistants

List all Vapi assistants

create_assistant

Create a new Vapi assistant

update_assistant

Update an existing Vapi assistant

get_assistant

Get a Vapi assistant by ID

Call Tools

Tool

Description

list_calls

List all Vapi calls

create_call

Create an outbound call (immediate or scheduled; supports assistantOverrides.variableValues)

get_call

Get details of a specific call

Phone Number Tools

Tool

Description

list_phone_numbers

List all Vapi phone numbers

get_phone_number

Get details of a specific phone number

Vapi Tools

Tool

Description

list_tools

List all Vapi tools

get_tool

Get details of a specific tool

Note: create_call supports scheduling (immediate or future) and dynamic variables via assistantOverrides.variableValues.


Development

# Install dependencies npm install # Build the server npm run build # Run with MCP inspector (for testing) npm run inspector

To use your local build with Claude Desktop, point the config to the built file:

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

Testing

Unit Tests

Uses mocks; no real Vapi API calls.

npm run test:unit

End-to-End Tests

Requires a valid VAPI_TOKEN and performs real API calls.

export VAPI_TOKEN=your_token_here npm run test:e2e

Run All Tests

npm test

References


Author & Contact

KuchikiRenji

For issues, feature requests, or contributions, please open an issue or reach out via the channels above.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KuchikiRenji/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server