Vapi MCP Server
VapiAI/mcp-server · 58 stars · TypeScript · MIT
MCP server Vapi MCP Server
Install
The repo has no one-line install. Follow its README.
Files
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
| Tool | Description |
|---|---|
list_assistants |
List all assistants |
get_assistant |
Get assistant by ID |
create_assistant |
Create new assistant |
update_assistant |
Update assistant |
Calls
| Tool | Description |
|---|---|
list_calls |
List call history |
get_call |
Get call details |
create_call |
Start outbound call (immediate or scheduled) |
Phone Numbers
| Tool | Description |
|---|---|
list_phone_numbers |
List phone numbers |
get_phone_number |
Get phone number details |
Tools (Function Calling)
| Tool | Description |
|---|---|
list_tools |
List custom tools |
get_tool |
Get tool details |
create_tool |
Create tool for API integration |
update_tool |
Update 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
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 58
- License
- MIT
- Language
- TypeScript
- Last push
- 2026-10-11
- Forks
- 28
- Homepage
- vapi.ai
- Topics
- ai, mcp, mcp-server, vapi, voice-agents
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k