Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Campaigns

    11

    5 read · 4 write · 2 destructive

    Create Campaign · Create Campaign V2 · List Campaigns · List Campaigns V2

  2. Knowledge bases

    9

    3 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

  3. Insights

    7

    4 read · 2 write · 1 destructive

    Create Insight · Get Insights · Preview Insight · Run Insight

  4. Assistants

    6

    3 read · 2 write · 1 destructive

    Create Assistant · List Assistants · Validate Background Sound URL · Get Assistant

  5. Boards

    6

    3 read · 2 write · 1 destructive

    Create Board · Get Boards · Get Board · Get Default Metrics Overview Board

  6. Phone numbers

    6

    3 read · 2 write · 1 destructive

    Create Phone Number · List Phone Numbers · List Phone Numbers · Get Phone Number

  7. Simulation scenarios

    6

    2 read · 3 write · 1 destructive

    Create Scenario · Generate Scenarios with AI · List Scenarios · Get Scenario

  8. Simulation suites

    6

    2 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.

ActionWhat it doesEffectSame name in
vapi.calls.listList CallsList Calls.readcomm.call.list44 connectors
vapi.chats.listList ChatsList Chats.readcomm.chat.list20 connectors
vapi.calls.createCreate CallCreate Call.writecomm.call.create38 connectors
vapi.chats.createCreate ChatCreate Chat.writecomm.chat.create15 connectors
vapi.calls.deleteDelete CallDelete Call.destructivecomm.call.delete18 connectors
vapi.tools.listList ToolsList Tools.readthis connector
vapi.squads.listList SquadsList Squads.readthis connector
vapi.tools.createCreate ToolCreate Tool.writethis connector
vapi.sessions.listList SessionsList Sessions.readthis connector
vapi.squads.createCreate SquadCreate Squad.writethis connector
vapi.campaigns.listList CampaignsList Campaigns.readthis connector
vapi.sessions.createCreate SessionCreate Session.writethis 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.

  1. Readread

    List Calls in Vapi and tell me what stands out.

    callsvapi.calls.list

  2. Writewrite

    Create Call in Vapi. Show me exactly what you will send before you save it.

    callsvapi.calls.create

Governance for Vapi

Destructive actions wait for a yes.

25 Vapi actions are destructive. These are all of them:

  • Delete Callvapi.calls.delete
  • Delete Chatvapi.chats.delete
  • Delete Toolvapi.tools.delete
  • Delete Squadvapi.squads.delete
  • Delete Sessionvapi.sessions.delete
  • Delete Campaignvapi.campaigns.delete
  • Delete Assistantvapi.assistants.delete
  • Delete Campaignvapi.campaigns.delete_v2
  • Delete Phone Numbervapi.phone_numbers.delete
  • Delete Evalvapi.evals.delete
  • Delete Filevapi.files.delete
  • Delete Boardvapi.boards.delete
  • Delete Insightvapi.insights.delete
  • Delete Eval Runvapi.eval_runs.delete
  • Delete Scorecardvapi.scorecards.delete
  • Delete Simulationvapi.simulations.delete
  • Delete a Knowledge Base V2vapi.knowledge_bases.delete
  • Delete Simulation Suitevapi.simulation_suites.delete
  • Delete Provider Resourcevapi.provider_resources.delete
  • Delete Structured Outputvapi.structured_outputs.delete
  • Detach a filevapi.knowledge_bases.detach_file
  • Delete Scenariovapi.simulation_scenarios.delete
  • Delete Personalityvapi.simulation_personalities.delete
  • Cancel Simulation Runvapi.simulation_runs.cancel
  • Cancel Simulation Run Itemvapi.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.

dovapi.calls.deleteconfirm_policy: human

Delete Call?

intent: the user asked me to delete Call

run suspended · waiting for a named person · key vapi-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Vapi only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

Action index

Every Vapi action.

136 actions by area: the id your agent calls, what it does, and its effect.

Campaigns11
  • vapi.campaigns.createCreate Campaignwrite
  • vapi.campaigns.create_v2Create Campaign V2write
  • vapi.campaigns.deleteDelete Campaigndestructive
  • vapi.campaigns.delete_v2Delete Campaigndestructive
  • vapi.campaigns.getGet Campaignread
  • vapi.campaigns.get_v2Get Campaign V2read
  • vapi.campaigns.listList Campaignsread
  • vapi.campaigns.list_v2List Campaigns V2read
  • vapi.campaigns.list_v2_contactsGet Campaign V2 Contactsread
  • vapi.campaigns.updateUpdate Campaignwrite
  • vapi.campaigns.update_v2Update Campaignwrite
Knowledge bases9
  • vapi.knowledge_bases.attach_fileAttach and ingest a filewrite
  • vapi.knowledge_bases.createCreate a Knowledge Base V2write
  • vapi.knowledge_bases.deleteDelete a Knowledge Base V2destructive
  • vapi.knowledge_bases.detach_fileDetach a filedestructive
  • vapi.knowledge_bases.getGet a Knowledge Base V2read
  • vapi.knowledge_bases.listList Knowledge Bases V2read
  • vapi.knowledge_bases.list_filesList files in a Knowledge Base V2read
  • vapi.knowledge_bases.retry_fileRetry indexing a failed filewrite
  • vapi.knowledge_bases.updateUpdate a Knowledge Base V2write
Insights7
  • vapi.insights.createCreate Insightwrite
  • vapi.insights.deleteDelete Insightdestructive
  • vapi.insights.getGet Insightread
  • vapi.insights.listGet Insightsread
  • vapi.insights.previewPreview Insightread
  • vapi.insights.runRun Insightread
  • vapi.insights.updateUpdate Insightwrite
Assistants6
  • vapi.assistants.createCreate Assistantwrite
  • vapi.assistants.deleteDelete Assistantdestructive
  • vapi.assistants.getGet Assistantread
  • vapi.assistants.listList Assistantsread
  • vapi.assistants.updateUpdate Assistantwrite
  • vapi.assistants.validate_background_soundValidate Background Sound URLread
Boards6
  • vapi.boards.createCreate Boardwrite
  • vapi.boards.deleteDelete Boarddestructive
  • vapi.boards.getGet Boardread
  • vapi.boards.get_default_metrics_overviewGet Default Metrics Overview Boardread
  • vapi.boards.listGet Boardsread
  • vapi.boards.updateUpdate Boardwrite
Phone numbers6
  • vapi.phone_numbers.createCreate Phone Numberwrite
  • vapi.phone_numbers.deleteDelete Phone Numberdestructive
  • vapi.phone_numbers.getGet Phone Numberread
  • vapi.phone_numbers.listList Phone Numbersread
  • vapi.phone_numbers.list_v2List Phone Numbersread
  • vapi.phone_numbers.updateUpdate Phone Numberwrite
Simulation scenarios6
  • vapi.simulation_scenarios.createCreate Scenariowrite
  • vapi.simulation_scenarios.deleteDelete Scenariodestructive
  • vapi.simulation_scenarios.generateGenerate Scenarios with AIwrite
  • vapi.simulation_scenarios.getGet Scenarioread
  • vapi.simulation_scenarios.listList Scenariosread
  • vapi.simulation_scenarios.updateUpdate Scenariowrite
Simulation suites6
  • vapi.simulation_suites.createCreate Simulation Suitewrite
  • vapi.simulation_suites.deleteDelete Simulation Suitedestructive
  • vapi.simulation_suites.duplicateDuplicate simulation suitewrite
  • vapi.simulation_suites.getGet Simulation Suiteread
  • vapi.simulation_suites.listList Simulation Suitesread
  • vapi.simulation_suites.updateUpdate Simulation Suitewrite
Simulations6
  • vapi.simulations.createCreate Simulationwrite
  • vapi.simulations.deleteDelete Simulationdestructive
  • vapi.simulations.getGet Simulationread
  • vapi.simulations.get_concurrencyGet Simulation Concurrencyread
  • vapi.simulations.listList Simulationsread
  • vapi.simulations.updateUpdate Simulationwrite
Structured outputs6
  • vapi.structured_outputs.createCreate Structured Outputwrite
  • vapi.structured_outputs.deleteDelete Structured Outputdestructive
  • vapi.structured_outputs.getGet Structured Outputread
  • vapi.structured_outputs.listList Structured Outputsread
  • vapi.structured_outputs.runRun Structured Outputwrite
  • vapi.structured_outputs.updateUpdate Structured Outputwrite
Calls5
  • vapi.calls.createCreate Callwrite
  • vapi.calls.deleteDelete Calldestructive
  • vapi.calls.getGet Callread
  • vapi.calls.listList Callsread
  • vapi.calls.updateUpdate Callwrite
Chats5
  • vapi.chats.createCreate Chatwrite
  • vapi.chats.create_openai_responseCreate Chat (OpenAI Compatible)write
  • vapi.chats.deleteDelete Chatdestructive
  • vapi.chats.getGet Chatread
  • vapi.chats.listList Chatsread
Evals5
  • vapi.evals.createCreate Evalwrite
  • vapi.evals.deleteDelete Evaldestructive
  • vapi.evals.getGet Evalread
  • vapi.evals.listList Evalsread
  • vapi.evals.updateUpdate Evalwrite
Provider resources5
  • vapi.provider_resources.createCreate Provider Resourcewrite
  • vapi.provider_resources.deleteDelete Provider Resourcedestructive
  • vapi.provider_resources.getGet Provider Resourceread
  • vapi.provider_resources.listList Provider Resourcesread
  • vapi.provider_resources.updateUpdate Provider Resourcewrite
Scorecards5
  • vapi.scorecards.createCreate Scorecardwrite
  • vapi.scorecards.deleteDelete Scorecarddestructive
  • vapi.scorecards.getGet Scorecardread
  • vapi.scorecards.listList Scorecardsread
  • vapi.scorecards.updateUpdate Scorecardwrite
Sessions5
  • vapi.sessions.createCreate Sessionwrite
  • vapi.sessions.deleteDelete Sessiondestructive
  • vapi.sessions.getGet Sessionread
  • vapi.sessions.listList Sessionsread
  • vapi.sessions.updateUpdate Sessionwrite
Simulation personalities5
  • vapi.simulation_personalities.createCreate Personalitywrite
  • vapi.simulation_personalities.deleteDelete Personalitydestructive
  • vapi.simulation_personalities.getGet Personalityread
  • vapi.simulation_personalities.listList Personalitiesread
  • vapi.simulation_personalities.updateUpdate Personalitywrite
Squads5
  • vapi.squads.createCreate Squadwrite
  • vapi.squads.deleteDelete Squaddestructive
  • vapi.squads.getGet Squadread
  • vapi.squads.listList Squadsread
  • vapi.squads.updateUpdate Squadwrite
Tools5
  • vapi.tools.createCreate Toolwrite
  • vapi.tools.deleteDelete Tooldestructive
  • vapi.tools.getGet Toolread
  • vapi.tools.listList Toolsread
  • vapi.tools.updateUpdate Toolwrite
Traffic allocations5
  • vapi.traffic_allocations.createCreate traffic allocationwrite
  • vapi.traffic_allocations.getGet traffic allocationread
  • vapi.traffic_allocations.get_latestGet latest traffic allocationread
  • vapi.traffic_allocations.get_metricsGet traffic split metricsread
  • vapi.traffic_allocations.listList traffic allocationsread
Eval runs4
  • vapi.eval_runs.createCreate Eval Runwrite
  • vapi.eval_runs.deleteDelete Eval Rundestructive
  • vapi.eval_runs.getGet Eval Runread
  • vapi.eval_runs.listList Eval Runsread
Files4
  • vapi.files.deleteDelete Filedestructive
  • vapi.files.getGet Fileread
  • vapi.files.listList Filesread
  • vapi.files.updateUpdate Filewrite
Simulation run items4
  • vapi.simulation_run_items.cancelCancel Simulation Run Itemdestructive
  • vapi.simulation_run_items.generate_suggestionsGenerate Improvement Suggestionswrite
  • vapi.simulation_run_items.getGet Simulation Run Itemread
  • vapi.simulation_run_items.listList Simulation Run Itemsread
Simulation runs4
  • vapi.simulation_runs.cancelCancel Simulation Rundestructive
  • vapi.simulation_runs.createCreate Simulation Runwrite
  • vapi.simulation_runs.getGet Simulation Runread
  • vapi.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.