Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Vapi MCP connector

Bearer TokenCommunicationAI

Vapi is an AI-powered voice platform for building, testing, and deploying voice AI agents. This MCP connector enables AI agents to manage Vapi assistants...

Vapi MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Vapi MCP credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.

    Dashboard setup steps

    Register your Vapi API key with Scalekit so it can authenticate and proxy requests to the Vapi MCP server on behalf of your users. Vapi MCP uses bearer token authentication — there is no redirect URI or OAuth flow. Scalekit sends the key as Authorization: Bearer <token> to the Vapi MCP endpoint at https://mcp.vapi.ai/mcp.

    1. Get a Vapi API key

      • Go to dashboard.vapi.ai/org/api-keys and sign in or create an account.

      • Under API Keys, copy your Private Key. Use the private key — it authorizes server-side calls to the Vapi API.

      • Treat this key as a secret. Anyone with it can manage your assistants, calls, and phone numbers.

    2. Create a connection in Scalekit

      • In the Scalekit dashboard, go to AgentKit > Connections. Find Vapi MCP and click Create.

      • Note the Connection name — you use this as connection_name in your code (for example, vapimcp).

    3. Add a connected account

      Connected accounts link a specific user identifier in your system to a Vapi API key. Add them via the dashboard for testing, or via the Scalekit API in production.

      Via dashboard (for testing)

      • Open the connection you created and click the Connected Accounts tab → Add account.

      • Fill in:

        • Your User’s ID — a unique identifier for this user in your system (for example, user_123)
        • Vapi API key — the private key you copied in step 1
      • Click Save.

      Via API (for production)

      await scalekit.actions.upsertConnectedAccount({
      connectionName: 'vapimcp',
      identifier: 'user_123', // your user's unique ID
      // Security: never hard-code the API key — read it from a secret store or env var.
      credentials: { token: process.env.VAPI_API_KEY },
      });
  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'vapimcp'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'vapimcp_list_assistants',
    toolInput: { rationale: 'YOUR_RATIONALE' },
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Create assistant, call, tool — Creates a new Vapi voice AI assistant with the specified configuration
  • Get assistant, call, phone number — Retrieves the full configuration of a specific Vapi assistant by ID, including its LLM, voice, transcription settings, tools, and first message
  • List assistants, calls, phone numbers — Lists all Vapi assistants configured in the account
  • Update assistant, tool — Updates an existing Vapi assistant’s configuration
Tool calling
  • Use vapimcp_list_assistants to discover existing assistants, then vapimcp_get_assistant to read a specific assistant’s full configuration before changing it.
  • Use vapimcp_create_assistant to provision a new voice AI assistant, and vapimcp_update_assistant to change only the fields you pass — omitted fields keep their current values.
  • Use vapimcp_list_phone_numbers and vapimcp_get_phone_number to find the phone number to call from.
  • Use vapimcp_create_call to place an outbound call with a chosen assistant and phone number, then vapimcp_get_call to read its status, duration, and transcript.
  • Use vapimcp_create_tool to add SMS, transfer-call, function, or API-request tools, and attach them to an assistant with vapimcp_update_assistant.
const toolResponse = await actions.executeTool({
connector: 'vapimcp',
identifier: 'user_123',
toolName: 'vapimcp_create_call',
toolInput: {
assistantId: 'YOUR_ASSISTANT_ID',
phoneNumberId: 'YOUR_PHONE_NUMBER_ID',
customer: { number: '+15551234567' },
},
});
console.log('Call started:', toolResponse.data);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

vapimcp_create_assistant#Creates a new Vapi voice AI assistant with the specified configuration. Configure the assistant's LLM provider, voice, transcription engine, first message, and any tools it should have access to.9 params

Creates a new Vapi voice AI assistant with the specified configuration. Configure the assistant's LLM provider, voice, transcription engine, first message, and any tools it should have access to.

NameTypeRequiredDescription
namestringrequiredName of the assistant
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
firstMessagestringoptionalFirst message the assistant says when a call starts
firstMessageModestringoptionalWhether the assistant speaks first or waits for the user
instructionsstringoptionalSystem instructions for the assistant. Defaults to 'You are a helpful assistant.'
llmstringoptionalLLM configuration. Defaults to OpenAI gpt-4o.
toolIdsstringoptionalIDs of Vapi tools to attach to this assistant
transcriberstringoptionalTranscription configuration. Defaults to Deepgram nova-3.
voicestringoptionalVoice configuration. Defaults to ElevenLabs 'sarah'.
vapimcp_create_call#Initiates or schedules an outbound Vapi call. Specify the assistant and phone number to use, the customer's phone number, and optionally a scheduled time. Use assistantOverrides.variableValues to inject dynamic data into the assistant's prompts.6 params

Initiates or schedules an outbound Vapi call. Specify the assistant and phone number to use, the customer's phone number, and optionally a scheduled time. Use assistantOverrides.variableValues to inject dynamic data into the assistant's prompts.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
assistantIdstringoptionalID of the Vapi assistant to use for the call
assistantOverridesstringoptionalRuntime overrides for the assistant configuration
customerstringoptionalCustomer contact information for the outbound call
phoneNumberIdstringoptionalID of the Vapi phone number to call from
scheduledAtstringoptionalISO 8601 datetime to schedule the call (e.g. 2025-03-25T22:39:27.771Z). Omit to call immediately.
vapimcp_create_tool#Creates a new Vapi tool that can be attached to assistants. Supports four tool types: 'sms' for sending text messages, 'transferCall' for transferring calls to destinations, 'function' for custom server-side functions, and 'apiRequest' for HTTP API integrations.8 params

Creates a new Vapi tool that can be attached to assistants. Supports four tool types: 'sms' for sending text messages, 'transferCall' for transferring calls to destinations, 'function' for custom server-side functions, and 'apiRequest' for HTTP API integrations.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
typestringrequiredType of tool to create
apiRequeststringoptionalAPI request tool configuration — provide when type is 'apiRequest'
descriptionstringoptionalDescription of what the tool does
functionstringoptionalFunction tool configuration — provide when type is 'function'
namestringoptionalName of the tool
smsstringoptionalSMS configuration — provide when type is 'sms'
transferCallstringoptionalTransfer call configuration — provide when type is 'transferCall'
vapimcp_get_assistant#Retrieves the full configuration of a specific Vapi assistant by ID, including its LLM, voice, transcription settings, tools, and first message.2 params

Retrieves the full configuration of a specific Vapi assistant by ID, including its LLM, voice, transcription settings, tools, and first message.

NameTypeRequiredDescription
assistantIdstringrequiredID of the assistant to retrieve
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_get_call#Retrieves detailed information about a specific Vapi call by ID, including its status, duration, transcript, recording URL, and associated assistant.2 params

Retrieves detailed information about a specific Vapi call by ID, including its status, duration, transcript, recording URL, and associated assistant.

NameTypeRequiredDescription
callIdstringrequiredID of the call to retrieve
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_get_phone_number#Retrieves details of a specific Vapi phone number by ID, including its number, provider, and any assistant or squad configuration attached to it.2 params

Retrieves details of a specific Vapi phone number by ID, including its number, provider, and any assistant or squad configuration attached to it.

NameTypeRequiredDescription
phoneNumberIdstringrequiredID of the phone number to retrieve
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_get_tool#Retrieves the full configuration of a specific Vapi tool by ID, including its type (SMS, transfer call, function, or API request) and associated settings.2 params

Retrieves the full configuration of a specific Vapi tool by ID, including its type (SMS, transfer call, function, or API request) and associated settings.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
toolIdstringrequiredID of the Vapi tool to retrieve
vapimcp_list_assistants#Lists all Vapi assistants configured in the account. Returns a list of assistant objects including their IDs, names, configurations, and settings.1 param

Lists all Vapi assistants configured in the account. Returns a list of assistant objects including their IDs, names, configurations, and settings.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_list_calls#Lists all Vapi calls in the account. Returns call records including their IDs, status, duration, associated assistant, and transcript metadata.1 param

Lists all Vapi calls in the account. Returns call records including their IDs, status, duration, associated assistant, and transcript metadata.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_list_phone_numbers#Lists all phone numbers provisioned in the Vapi account. Returns phone number objects including their IDs, numbers, provider, and associated assistant configurations.1 param

Lists all phone numbers provisioned in the Vapi account. Returns phone number objects including their IDs, numbers, provider, and associated assistant configurations.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_list_tools#Lists all Vapi tools configured in the account. Vapi tools extend assistant capabilities — types include SMS, transfer call, custom functions, and API request tools.1 param

Lists all Vapi tools configured in the account. Vapi tools extend assistant capabilities — types include SMS, transfer call, custom functions, and API request tools.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
vapimcp_update_assistant#Updates an existing Vapi assistant's configuration. Only fields you provide will be changed; omitted fields retain their current values.10 params

Updates an existing Vapi assistant's configuration. Only fields you provide will be changed; omitted fields retain their current values.

NameTypeRequiredDescription
assistantIdstringrequiredID of the assistant to update
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
firstMessagestringoptionalNew first message the assistant says when a call starts
firstMessageModestringoptionalNew first message mode
instructionsstringoptionalNew system instructions for the assistant
llmstringoptionalNew LLM configuration
namestringoptionalNew name for the assistant
toolIdsstringoptionalNew list of Vapi tool IDs for the assistant
transcriberstringoptionalNew transcription configuration
voicestringoptionalNew voice configuration
vapimcp_update_tool#Updates an existing Vapi tool's configuration. Only fields you provide will be changed. Supports all tool types: sms, transferCall, function, and apiRequest.8 params

Updates an existing Vapi tool's configuration. Only fields you provide will be changed. Supports all tool types: sms, transferCall, function, and apiRequest.

NameTypeRequiredDescription
rationalestringrequiredAlways provide a brief explanation of why you are calling this tool
toolIdstringrequiredID of the Vapi tool to update
apiRequeststringoptionalUpdated API request tool configuration
descriptionstringoptionalNew description for the tool
functionstringoptionalUpdated function tool configuration
namestringoptionalNew name for the tool
smsstringoptionalUpdated SMS configuration
transferCallstringoptionalUpdated transfer call configuration