Vapi MCP Server
Official MCP server for Vapi. Build and manage AI voice assistants, place outbound calls, schedule calls, and manage phone numbers from any MCP client.
The Vapi MCP Server exposes the Vapi voice AI platform through the Model Context Protocol, letting agents and assistants like Claude create voice agents, place real phone calls, schedule outbound calls, and manage purchased phone numbers. It is maintained by Vapi AI in the official VapiAI/mcp-server repository and published to npm as @vapi-ai/mcp-server.
The server covers the core Vapi API surface: assistant CRUD, call history and creation (including scheduled calls via the scheduledAt parameter), phone number management (list, buy, update, release), and custom function-calling tool management. Assistant prompts can use dynamic variables such as {{now}}, {{date}}, {{time}}, and customer phone numbers, which are injected automatically at call time.
Vapi offers both a hosted remote MCP endpoint at https://mcp.vapi.ai/mcp (Streamable HTTP) and https://mcp.vapi.ai/sse (SSE), as well as a local stdio server via npx. Authentication works through OAuth (browser sign-in, no API key required) or via a VAPI_TOKEN bearer token from the Vapi dashboard for headless setups.
Tools
| Tool | Description |
|---|---|
list_assistants |
List all voice assistants in your Vapi account. |
create_assistant |
Create a new voice assistant with model, voice, and prompt configuration. |
get_assistant |
Retrieve a specific assistant by ID. |
update_assistant |
Update an existing assistant's configuration. |
delete_assistant |
Delete an assistant by ID. |
list_calls |
List call history for the account. |
get_call |
Retrieve details for a specific call. |
create_call |
Place an outbound call. Supports scheduling via the optional scheduledAt parameter. |
list_phone_numbers |
List phone numbers attached to the account. |
get_phone_number |
Retrieve details for a phone number. |
buy_phone_number |
Purchase a new phone number for outbound or inbound calls. |
update_phone_number |
Update an existing phone number's configuration. |
delete_phone_number |
Release a phone number from the account. |
list_tools |
List custom function-calling tools defined in the account. |
get_tool |
Retrieve details for a specific custom tool. |
vapi_login |
Begin OAuth browser sign-in to authenticate the MCP server. |
vapi_logout |
Sign out and clear stored OAuth credentials. |
Prerequisites
- A Vapi account (sign up at vapi.ai)
- Node.js / npm available on your machine for the local stdio variant
- Optional: a Vapi API key from the Vapi dashboard if you prefer not to use OAuth
Option 1: Local stdio server (OAuth, recommended)
Add to your Claude Desktop or Cursor MCP config:
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": ["-y", "@vapi-ai/mcp-server"]
}
}
}
On first use, the server opens a browser window for OAuth sign-in. No API key needed.
Option 2: Local stdio server with API key
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": ["-y", "@vapi-ai/mcp-server"],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
}
}
}
Option 3: Remote hosted server
Vapi hosts the MCP server directly. Point your MCP client at one of:
- Streamable HTTP:
https://mcp.vapi.ai/mcp - SSE:
https://mcp.vapi.ai/sse
Authenticate with a bearer token (Authorization: Bearer <VAPI_TOKEN>).
Option 4: Claude Code one-liner
claude mcp add vapi -- npx -y @vapi-ai/mcp-server
- Spin up a new voice agent from a system prompt and immediately call a prospect's phone number end to end from chat.
- Schedule outbound reminder or follow-up calls to a list of customers using
create_callwithscheduledAt. - Audit recent call history and pull transcripts or status for a given call ID for QA or analytics.
- Provision phone numbers on demand for new campaigns or geographies, then attach them to specific assistants.
- Manage the catalog of custom function-calling tools that assistants can invoke during live calls.
- "Create a Vapi assistant named 'Lead Qualifier' using GPT-4o and the 11labs Rachel voice, then call +1-555-123-4567 with it."
- "Schedule an outbound call from my support assistant to +44-20-7946-0000 tomorrow at 10am London time."
- "List all calls from the last 24 hours and show me any that ended with status 'failed'."
- "Buy a US phone number in area code 415 and attach it to my assistant 'Sales Bot'."
- "Show me every custom tool defined in my Vapi account and which assistants use them."
- Official server maintained by Vapi AI, kept in sync with the underlying API.
- Three deployment modes: local stdio, remote Streamable HTTP, and SSE, covering most MCP clients.
- OAuth flow removes the need to copy API keys into config files for desktop use.
- Covers the full lifecycle: assistants, calls, phone numbers, and custom tools.
- Vapi usage itself is paid (per-minute call charges and number rental), so agent actions cost real money.
- Outbound calling and number purchase are powerful primitives with no built-in spend or rate guardrails in the MCP layer.
- Tool documentation lives across the README and Vapi docs; exact parameter shapes often require consulting the Vapi REST API reference.
- Twilio MCP server for raw telephony, SMS, and voice via the Twilio API.
- Retell AI for a similar voice-agent platform (no official MCP server at time of writing).
- Bland AI phone-calling platform as a Vapi alternative, typically accessed via direct REST API.