Vapi
listing.by
Manage Vapi voice assistants, phone numbers, custom tools and outbound or scheduled calls from your AI assistant.
listing.connect
listing.explain.api_key
listing.note.key_header listing.note.key_where
listing.share.h
listing.share.p
mcp.tc/i/vapilisting.about
Connects to the Vapi voice agent platform and exposes its API as MCP tools. You can list, create and update voice assistants, review call history, start outbound calls (immediately or scheduled), look up phone numbers, and manage custom function-calling tools.
It runs as a hosted Streamable HTTP endpoint at https://mcp.vapi.ai/mcp, or locally with npx -y @vapi-ai/mcp-server. Both need a Vapi API key: send it as a Bearer token in the Authorization header for the hosted server, or set VAPI_TOKEN for the local one.
listing.can
- List, view, create and update voice assistants
- Start outbound calls now or schedule them
- Pass dynamic variables into assistant prompts per call
- Browse call history and call details
- List phone numbers and view their details
- Create and update custom tools for API integration
listing.tools
listing.notools.key
listing.prompts
List my Vapi assistants.
Create a voice assistant that can schedule appointments.
Call +1234567890 using my appointment reminder assistant.
Show details for my most recent Vapi call.
listing.setup.h
listing.setup.remote
Claude Code
- Run this in a terminal, in your project folder:
claude mcp add --transport http vapi https://mcp.vapi.ai/mcp --header "Authorization: Bearer <YOUR_API_KEY>"- Replace the placeholder with your key before you run it, then check it with
/mcpinside Claude Code.
Add --scope user to make it available in every project, not just this one.
Claude Desktop
- Custom connectors can't send this server's key header, so use the
mcp-remotebridge. Open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.vapi.ai/mcp",
"--header",
"Authorization: Bearer <YOUR_API_KEY>"
]
}
}
}- Replace the placeholder with your key and restart Claude Desktop.
The bridge needs Node.js on your computer.
Cursor
Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):
{
"mcpServers": {
"vapi": {
"url": "https://mcp.vapi.ai/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}VS Code
Add it to .vscode/mcp.json. VS Code asks for the key the first time and stores it securely:
{
"servers": {
"vapi": {
"type": "http",
"url": "https://mcp.vapi.ai/mcp",
"headers": {
"Authorization": "Bearer ${input:api-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "api-key",
"description": "API key",
"password": true
}
]
}Devin Desktop
- Add it to
~/.config/devin/mcp_config.json(macOS and Linux) or%APPDATA%\devin\mcp_config.json(Windows):
{
"mcpServers": {
"vapi": {
"serverUrl": "https://mcp.vapi.ai/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}- Refresh the MCP server list in Cascade.
Devin Desktop is the new name for Windsurf. It reads serverUrl (or url) for remote servers.
Codex
codex mcp add vapi --url https://mcp.vapi.ai/mcp --bearer-token-env-var VAPI_API_KEYOr edit ~/.codex/config.toml directly:
[mcp_servers.vapi]
url = "https://mcp.vapi.ai/mcp"
bearer_token_env_var = "VAPI_API_KEY"Set VAPI_API_KEY to your key in the shell that runs Codex.
Gemini CLI
gemini mcp add --transport http --header "Authorization: Bearer <YOUR_API_KEY>" vapi https://mcp.vapi.ai/mcpThis adds it to the current project. Add -s user to use it everywhere.
Any client
Most clients accept this shape. Some name the URL field differently: serverUrl in Devin Desktop, httpUrl in Gemini CLI's settings file.
{
"mcpServers": {
"vapi": {
"type": "http",
"url": "https://mcp.vapi.ai/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}Zed puts servers under context_servers in its settings. Cline needs "type": "streamableHttp", or it assumes SSE.
Client only starts local servers? Bridge it with npx -y mcp-remote https://mcp.vapi.ai/mcp.
listing.faq
Can I paste mcp.tc/i/vapi into my MCP client?
No. mcp.tc links are pages, not server addresses. Connect with https://mcp.vapi.ai/mcp, so your client talks to Vapi directly. Your key goes there too, never to mcp.tc. The quick link is for sharing: it opens this page, with setup steps for every client.
Does Vapi need an API key or a sign-in?
Yes. Vapi needs an API key, sent as the Authorization header. Get one from Vapi and keep it in your client's config, never in a shared file.
Is Vapi a remote or a local server?
Remote. Vapi hosts it at https://mcp.vapi.ai/mcp, and it speaks Streamable HTTP. There's nothing to install.
What can Vapi do?
You can list, view, create and update voice assistants, start outbound calls now or schedule them and pass dynamic variables into assistant prompts per call.
Which clients can use it?
Any client that supports remote MCP servers and can send your key: Claude Code, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others, and Claude Desktop through the mcp-remote bridge. claude.ai and ChatGPT can't send a key, so they can't use it.
Who wrote this page?
mcp.tc's robot read Vapi's own metadata (its MCP handshake, tool list and public pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.
listing.em.h
listing.em.lead listing.em.how
listing.em.badge
[](https://mcp.tc/i/vapi)<a href="https://mcp.tc/i/vapi"><img src="https://mcp.tc/i/vapi/badge.svg" alt="Vapi on mcp.tc" height="20"></a>listing.em.badge_note
listing.em.widget
<script src="https://mcp.tc/w/vapi.js" async></script>listing.em.widget_note
iframe
<iframe src="https://mcp.tc/embed/vapi" title="Vapi on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>listing.em.iframe_note
listing.disclaimer_checked