The Vapi MCP Server enables integration with Vapi APIs through the Model Context Protocol for managing:
Assistants: List, create, update, and retrieve assistants with customizable LLM, voice, transcriber, and first message configurations.
Calls: List, create, and retrieve calls, including scheduling outbound calls for immediate or future execution.
Phone Numbers: List and retrieve Vapi phone numbers.
Tools: List and retrieve Vapi tools.
Remote Connectivity: Connect to the server remotely using Server-Sent Events (SSE) for seamless integration.
Development & Testing: Supports local development with unit and end-to-end tests.
Allows the MCP server to be installed and run via NPX, making it easy to integrate Vapi's capabilities through the NPM package ecosystem.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vapi MCP Servercall my appointment reminder assistant to schedule a follow-up for next week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vapi MCP Server
The Vapi Model Context Protocol server allows you to integrate with Vapi APIs through function calling.
Claude Desktop Setup
Open
Claude Desktopand pressCMD + ,to go toSettings.Click on the
Developertab.Click on the
Edit Configbutton.This will open the
claude_desktop_config.jsonfile in your file explorer.Get your Vapi API key from the Vapi dashboard (https://dashboard.vapi.ai/org/api-keys).
Add the following to your
claude_desktop_config.jsonfile. See here for more details.Restart the Claude Desktop after editing the config file.
Local Configuration
Remote Configuration
Example Usage with Claude Desktop
Create or import a phone number using the Vapi dashboard (https://dashboard.vapi.ai/phone-numbers).
Create a new assistant using the existing 'Appointment Scheduler' template in the Vapi dashboard (https://dashboard.vapi.ai/assistants).
Make sure to configure Claude Desktop to use the Vapi MCP server and restart the Claude Desktop app.
Ask Claude to initiate or schedule a call. See examples below:
Example 1: Request an immediate call
Example 2: Schedule a future call
Example 3: Make a call with dynamic variables
Using Variable Values in Assistant Prompts
The create_call action supports passing dynamic variables through assistantOverrides.variableValues. These variables can be used in your assistant's prompts using double curly braces: {{variableName}}.
Example Assistant Prompt with Variables
Default Variables
The following variables are automatically available (no need to pass in variableValues):
{{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 more details on default variables and advanced date/time formatting, see the official Vapi documentation.
Remote MCP
To connect to Vapi's MCP server remotely:
Streamable HTTP (Recommended)
The default and recommended way to connect is via Streamable HTTP Transport:
Connect to
https://mcp.vapi.ai/mcpfrom any MCP client using Streamable HTTP TransportInclude your Vapi API key as a bearer token in the request headers
Example header:
Authorization: Bearer your_vapi_api_key_here
SSE (Deprecated)
Server-Sent Events (SSE) Transport is still supported but deprecated:
Connect to
https://mcp.vapi.ai/ssefrom any MCP client using SSE TransportInclude your Vapi API key as a bearer token in the request headers
Example header:
Authorization: Bearer your_vapi_api_key_here
This connection allows you to access Vapi's functionality remotely without running a local server.
Development
Update your claude_desktop_config.json to use the local server.
Testing
The project has two types of tests:
Unit Tests
Unit tests use mocks to test the MCP server without making actual API calls to Vapi.
End-to-End Tests
E2E tests run the full MCP server with actual API calls to Vapi.
Note: E2E tests require a valid Vapi API token to be set in the environment.
Running All Tests
To run all tests at once:
References
Supported Actions
The Vapi MCP Server provides the following tools for integration:
Assistant Tools
list_assistants: Lists all Vapi assistantscreate_assistant: Creates a new Vapi assistantupdate_assistant: Updates an existing Vapi assistantget_assistant: Gets a Vapi assistant by ID
Call Tools
list_calls: Lists all Vapi callscreate_call: Creates an outbound call with support for:Immediate or scheduled calls
Dynamic variable values through
assistantOverrides
get_call: Gets details of a specific call
Note: The
create_callaction supports scheduling calls for immediate execution or for a future time. You can also pass dynamic variables usingassistantOverrides.variableValuesto personalize assistant messages.
Phone Number Tools
list_phone_numbers: Lists all Vapi phone numbersget_phone_number: Gets details of a specific phone number
Vapi Tools
list_tools: Lists all Vapi toolsget_tool: Gets details of a specific tool