Back to MCP Servers

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.

AI/ML by Vapi AI OAuth2 or API Key (VAPI_TOKEN) active
Overview

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.
Setup Guide

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
Use Cases
  • 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_call with scheduledAt.
  • 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.
Example Prompts
  • "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."
Pros
  • 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.
Limitations
  • 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.
Alternatives
  • 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.