Connectors · AI
Vapi MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Vapi and the rest of your systems. It gives your agent 136 Vapi actions (61 reads, 50 writes and 25 that wait for a confirmation) and holds the Vapi credential itself, so the agent never does. It paces Vapi's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "vapi.calls.list", intent: "check which Vapi account is connected"}# List Calls · read · 1 upstream call- 136actionsin one signed file
- 61readlook, never change
- 50writecreate and update
- 25wait for a yesdestructive, confirmed first
Set up
Connect Vapi in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Vapi.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_keyVapi private API key: dashboard.vapi.ai > Organization > API Keys (use the Private key, not the Public key, which…
account { op: "connections.requirements", service: "vapi" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "vapi.calls.list" }# list calls · read · 1 upstream callcheck { action: "vapi.calls.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Vapi at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_key- Limits we pace to
- 600 calls a minute, per connection
- API covered
- Vapi API 1.0 (OpenAPI 3.0.0, 136 of 144 operations)
api.vapi.ai - Built from
- Vapi's documentation, read 22 October 2026api.vapi.aidocs.vapi.ai
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 60 of 61 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 2, so ask can line Vapi up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Vapi.
136 actions in 25 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 61readlook, never change
- 50writecreate and update
- 25destructivewait for a confirmation
Campaigns
115 read · 4 write · 2 destructive
Create Campaign · Create Campaign V2 · List Campaigns · List Campaigns V2
Knowledge bases
93 read · 4 write · 2 destructive
Attach and ingest a file · Create a Knowledge Base V2 · List Knowledge Bases V2 · List files in a Knowledge Base V2
Insights
74 read · 2 write · 1 destructive
Create Insight · Get Insights · Preview Insight · Run Insight
Assistants
63 read · 2 write · 1 destructive
Create Assistant · List Assistants · Validate Background Sound URL · Get Assistant
Boards
63 read · 2 write · 1 destructive
Create Board · Get Boards · Get Board · Get Default Metrics Overview Board
Phone numbers
63 read · 2 write · 1 destructive
Create Phone Number · List Phone Numbers · List Phone Numbers · Get Phone Number
Simulation scenarios
62 read · 3 write · 1 destructive
Create Scenario · Generate Scenarios with AI · List Scenarios · Get Scenario
Simulation suites
62 read · 3 write · 1 destructive
Create Simulation Suite · Duplicate simulation suite · List Simulation Suites · Get Simulation Suite
17 more areas · 79 actions
- Simulations 6
- Structured outputs 6
- Calls 5
- Chats 5
- Evals 5
- Provider resources 5
- Scorecards 5
- Sessions 5
- Simulation personalities 5
- Squads 5
- Tools 5
- Traffic allocations 5
- Eval runs 4
- Files 4
- Simulation run items 4
- Simulation runs 4
- Analytics 1
Top actions
The Vapi API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 9 of Vapi's 9 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
vapi.calls.listList Calls | List Calls. | read | comm.call.list44 connectors |
vapi.chats.listList Chats | List Chats. | read | comm.chat.list20 connectors |
vapi.calls.createCreate Call | Create Call. | write | comm.call.create38 connectors |
vapi.chats.createCreate Chat | Create Chat. | write | comm.chat.create15 connectors |
vapi.calls.deleteDelete Call | Delete Call. | destructive | comm.call.delete18 connectors |
vapi.tools.listList Tools | List Tools. | read | this connector |
vapi.squads.listList Squads | List Squads. | read | this connector |
vapi.tools.createCreate Tool | Create Tool. | write | this connector |
vapi.sessions.listList Sessions | List Sessions. | read | this connector |
vapi.squads.createCreate Squad | Create Squad. | write | this connector |
vapi.campaigns.listList Campaigns | List Campaigns. | read | this connector |
vapi.sessions.createCreate Session | Create Session. | write | this connector |
Try it
Prompts to paste into Claude.
Each one names the Vapi actions it will call, so you know what it reads and what it changes before you send it.
- Readread
List Calls in Vapi and tell me what stands out.
calls
vapi.calls.list - Writewrite
Create Call in Vapi. Show me exactly what you will send before you save it.
calls
vapi.calls.create
Governance for Vapi
Destructive actions wait for a yes.
25 Vapi actions are destructive. These are all of them:
- Delete Call
vapi.calls.delete - Delete Chat
vapi.chats.delete - Delete Tool
vapi.tools.delete - Delete Squad
vapi.squads.delete - Delete Session
vapi.sessions.delete - Delete Campaign
vapi.campaigns.delete - Delete Assistant
vapi.assistants.delete - Delete Campaign
vapi.campaigns.delete_v2 - Delete Phone Number
vapi.phone_numbers.delete - Delete Eval
vapi.evals.delete - Delete File
vapi.files.delete - Delete Board
vapi.boards.delete - Delete Insight
vapi.insights.delete - Delete Eval Run
vapi.eval_runs.delete - Delete Scorecard
vapi.scorecards.delete - Delete Simulation
vapi.simulations.delete - Delete a Knowledge Base V2
vapi.knowledge_bases.delete - Delete Simulation Suite
vapi.simulation_suites.delete - Delete Provider Resource
vapi.provider_resources.delete - Delete Structured Output
vapi.structured_outputs.delete - Detach a file
vapi.knowledge_bases.detach_file - Delete Scenario
vapi.simulation_scenarios.delete - Delete Personality
vapi.simulation_personalities.delete - Cancel Simulation Run
vapi.simulation_runs.cancel - Cancel Simulation Run Item
vapi.simulation_run_items.cancel
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete Call?
intent: the user asked me to delete Call
account { op: "keys.create", name: "vapi-agent", allowed_actions: ["vapi.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "vapi.calls.delete", approver: "[email protected]" }, { match: "vapi.chats.delete", approver: "[email protected]" }, { match: "vapi.tools.delete", approver: "[email protected]" } ]}Cost
What Vapi costs on actionlake.
Every Vapi action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Vapi refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 136 Vapi actions
- 136actions pageeach page of a long list is one call
- 60reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Vapi action.
136 actions by area: the id your agent calls, what it does, and its effect.
Campaigns11
vapi.campaigns.createCreate Campaignwritevapi.campaigns.create_v2Create Campaign V2writevapi.campaigns.deleteDelete Campaigndestructivevapi.campaigns.delete_v2Delete Campaigndestructivevapi.campaigns.getGet Campaignreadvapi.campaigns.get_v2Get Campaign V2readvapi.campaigns.listList Campaignsreadvapi.campaigns.list_v2List Campaigns V2readvapi.campaigns.list_v2_contactsGet Campaign V2 Contactsreadvapi.campaigns.updateUpdate Campaignwritevapi.campaigns.update_v2Update Campaignwrite
Knowledge bases9
vapi.knowledge_bases.attach_fileAttach and ingest a filewritevapi.knowledge_bases.createCreate a Knowledge Base V2writevapi.knowledge_bases.deleteDelete a Knowledge Base V2destructivevapi.knowledge_bases.detach_fileDetach a filedestructivevapi.knowledge_bases.getGet a Knowledge Base V2readvapi.knowledge_bases.listList Knowledge Bases V2readvapi.knowledge_bases.list_filesList files in a Knowledge Base V2readvapi.knowledge_bases.retry_fileRetry indexing a failed filewritevapi.knowledge_bases.updateUpdate a Knowledge Base V2write
Insights7
vapi.insights.createCreate Insightwritevapi.insights.deleteDelete Insightdestructivevapi.insights.getGet Insightreadvapi.insights.listGet Insightsreadvapi.insights.previewPreview Insightreadvapi.insights.runRun Insightreadvapi.insights.updateUpdate Insightwrite
Assistants6
vapi.assistants.createCreate Assistantwritevapi.assistants.deleteDelete Assistantdestructivevapi.assistants.getGet Assistantreadvapi.assistants.listList Assistantsreadvapi.assistants.updateUpdate Assistantwritevapi.assistants.validate_background_soundValidate Background Sound URLread
Boards6
vapi.boards.createCreate Boardwritevapi.boards.deleteDelete Boarddestructivevapi.boards.getGet Boardreadvapi.boards.get_default_metrics_overviewGet Default Metrics Overview Boardreadvapi.boards.listGet Boardsreadvapi.boards.updateUpdate Boardwrite
Phone numbers6
vapi.phone_numbers.createCreate Phone Numberwritevapi.phone_numbers.deleteDelete Phone Numberdestructivevapi.phone_numbers.getGet Phone Numberreadvapi.phone_numbers.listList Phone Numbersreadvapi.phone_numbers.list_v2List Phone Numbersreadvapi.phone_numbers.updateUpdate Phone Numberwrite
Simulation scenarios6
vapi.simulation_scenarios.createCreate Scenariowritevapi.simulation_scenarios.deleteDelete Scenariodestructivevapi.simulation_scenarios.generateGenerate Scenarios with AIwritevapi.simulation_scenarios.getGet Scenarioreadvapi.simulation_scenarios.listList Scenariosreadvapi.simulation_scenarios.updateUpdate Scenariowrite
Simulation suites6
vapi.simulation_suites.createCreate Simulation Suitewritevapi.simulation_suites.deleteDelete Simulation Suitedestructivevapi.simulation_suites.duplicateDuplicate simulation suitewritevapi.simulation_suites.getGet Simulation Suitereadvapi.simulation_suites.listList Simulation Suitesreadvapi.simulation_suites.updateUpdate Simulation Suitewrite
Simulations6
vapi.simulations.createCreate Simulationwritevapi.simulations.deleteDelete Simulationdestructivevapi.simulations.getGet Simulationreadvapi.simulations.get_concurrencyGet Simulation Concurrencyreadvapi.simulations.listList Simulationsreadvapi.simulations.updateUpdate Simulationwrite
Structured outputs6
vapi.structured_outputs.createCreate Structured Outputwritevapi.structured_outputs.deleteDelete Structured Outputdestructivevapi.structured_outputs.getGet Structured Outputreadvapi.structured_outputs.listList Structured Outputsreadvapi.structured_outputs.runRun Structured Outputwritevapi.structured_outputs.updateUpdate Structured Outputwrite
Calls5
vapi.calls.createCreate Callwritevapi.calls.deleteDelete Calldestructivevapi.calls.getGet Callreadvapi.calls.listList Callsreadvapi.calls.updateUpdate Callwrite
Chats5
vapi.chats.createCreate Chatwritevapi.chats.create_openai_responseCreate Chat (OpenAI Compatible)writevapi.chats.deleteDelete Chatdestructivevapi.chats.getGet Chatreadvapi.chats.listList Chatsread
Evals5
vapi.evals.createCreate Evalwritevapi.evals.deleteDelete Evaldestructivevapi.evals.getGet Evalreadvapi.evals.listList Evalsreadvapi.evals.updateUpdate Evalwrite
Provider resources5
vapi.provider_resources.createCreate Provider Resourcewritevapi.provider_resources.deleteDelete Provider Resourcedestructivevapi.provider_resources.getGet Provider Resourcereadvapi.provider_resources.listList Provider Resourcesreadvapi.provider_resources.updateUpdate Provider Resourcewrite
Scorecards5
vapi.scorecards.createCreate Scorecardwritevapi.scorecards.deleteDelete Scorecarddestructivevapi.scorecards.getGet Scorecardreadvapi.scorecards.listList Scorecardsreadvapi.scorecards.updateUpdate Scorecardwrite
Sessions5
vapi.sessions.createCreate Sessionwritevapi.sessions.deleteDelete Sessiondestructivevapi.sessions.getGet Sessionreadvapi.sessions.listList Sessionsreadvapi.sessions.updateUpdate Sessionwrite
Simulation personalities5
vapi.simulation_personalities.createCreate Personalitywritevapi.simulation_personalities.deleteDelete Personalitydestructivevapi.simulation_personalities.getGet Personalityreadvapi.simulation_personalities.listList Personalitiesreadvapi.simulation_personalities.updateUpdate Personalitywrite
Squads5
vapi.squads.createCreate Squadwritevapi.squads.deleteDelete Squaddestructivevapi.squads.getGet Squadreadvapi.squads.listList Squadsreadvapi.squads.updateUpdate Squadwrite
Tools5
vapi.tools.createCreate Toolwritevapi.tools.deleteDelete Tooldestructivevapi.tools.getGet Toolreadvapi.tools.listList Toolsreadvapi.tools.updateUpdate Toolwrite
Traffic allocations5
vapi.traffic_allocations.createCreate traffic allocationwritevapi.traffic_allocations.getGet traffic allocationreadvapi.traffic_allocations.get_latestGet latest traffic allocationreadvapi.traffic_allocations.get_metricsGet traffic split metricsreadvapi.traffic_allocations.listList traffic allocationsread
Eval runs4
vapi.eval_runs.createCreate Eval Runwritevapi.eval_runs.deleteDelete Eval Rundestructivevapi.eval_runs.getGet Eval Runreadvapi.eval_runs.listList Eval Runsread
Files4
vapi.files.deleteDelete Filedestructivevapi.files.getGet Filereadvapi.files.listList Filesreadvapi.files.updateUpdate Filewrite
Simulation run items4
vapi.simulation_run_items.cancelCancel Simulation Run Itemdestructivevapi.simulation_run_items.generate_suggestionsGenerate Improvement Suggestionswritevapi.simulation_run_items.getGet Simulation Run Itemreadvapi.simulation_run_items.listList Simulation Run Itemsread
Simulation runs4
vapi.simulation_runs.cancelCancel Simulation Rundestructivevapi.simulation_runs.createCreate Simulation Runwritevapi.simulation_runs.getGet Simulation Runreadvapi.simulation_runs.listList Simulation Runsread
Analytics1
vapi.analytics.queryCreate Analytics Queriesread
Questions
The Vapi MCP server, answered.
Is there a Vapi MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 136 Vapi actions across campaigns, knowledge bases, insights and assistants, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Vapi.
What do I need to connect Vapi?
Vapi private API key: dashboard.vapi.ai > Organization > API Keys (use the Private key, not the Public key, which…. The free call account { op: "connections.requirements", service: "vapi" } lists exactly what to paste.
Can an AI agent delete or change things in Vapi?
Only if its key allows it, and only with an explicit confirmation. 25 Vapi actions are destructive, including delete Call, delete Chat and delete Tool. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Vapi API limit?
actionlake paces every call to the limits in the Vapi service file: 600 calls a minute per connection. Repeated reads are answered from cache (60 Vapi actions can be), which never reaches Vapi.
What does a Vapi action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (136 Vapi actions page). Cache hits, searches, dry runs and calls Vapi refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Vapi API does it cover?
The Vapi API 1.0 (OpenAPI 3.0.0, 136 of 144 operations) at api.vapi.ai. It is built from Vapi's documentation as read on 22 October 2026. 136 actions in 25 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Vapi data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Vapi credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Vapi today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.