A Model Context Protocol (MCP) server for Vapi — bring your voice-AI agents into Claude, Cursor, or any MCP client. Manage assistants, read call transcripts and analyses, and place outbound calls in natural language.
Built by JS Leboeuf / AutoScale AI — a francophone-Québec voice-agent platform. Not affiliated with Vapi.
Vapi is a powerful voice-AI platform, but day-to-day operations (which assistant said what, why a call ended, what an outbound campaign cost) mean clicking through a dashboard or curl-ing the REST API. This server lets an LLM agent do it conversationally:
"List my assistants, pull the last 10 calls for the receptionist, and summarize why callers hung up."
| Tool | What it does |
|---|---|
vapi_list_assistants |
List assistants (id, name, model, voice) |
vapi_get_assistant |
Full config of one assistant (prompt, tools, transcriber) |
vapi_list_calls |
Recent calls; optionally filtered by assistant |
vapi_get_call |
One call in full: transcript, analysis, recording URL, cost |
vapi_list_phone_numbers |
Provisioned phone numbers |
vapi_create_call |
Place an outbound call (assistant → customer number) |
You need a Vapi private API key — create one at dashboard.vapi.ai → Settings → API Keys.
Add to your MCP config (claude_desktop_config.json, or .mcp.json for Claude Code):
{
"mcpServers": {
"vapi": {
"command": "npx",
"args": ["-y", "vapi-mcp-server"],
"env": { "VAPI_API_KEY": "your-vapi-private-key" }
}
}
}Settings → MCP → Add new server, same command / args / env as above.
That's it — restart the client and the six vapi_* tools appear.
| Env var | Required | Default | Notes |
|---|---|---|---|
VAPI_API_KEY |
✅ | — | Your Vapi private key |
VAPI_BASE_URL |
— | https://api.vapi.ai |
Override for self-hosted / proxy |
git clone https://github.com/JSLeboeuf/vapi-mcp-server.git
cd vapi-mcp-server
npm install
npm run build
VAPI_API_KEY=sk-... node dist/index.js # runs on stdio- The server only reads/acts on your own Vapi account via your key.
- Keys are read from the environment and never logged.
vapi_create_callplaces real, billable phone calls — it asks the model to confirm the destination number, but you should still review tool calls in your MCP client.
vapi_update_assistant(prompt/voice/model edits)- Call analytics aggregation (cost, duration, end-reason breakdowns)
- Squad / workflow tools
PRs welcome.
MIT © 2026 JS Leboeuf (AutoScale AI)