The Vapi MCP connector routes your AI agent's tool calls to Vapi's own MCP server through Scalekit. Each user connects their own Vapi access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 14 tools.
- Tools
- 14
- What they doRead · write · destructive
- 8 · 6 · 08 read6 write0 destructive
- Users sign in with
- Access token
What you can do
- Manage voice assistants: create, update, and review voice AI assistants and their model and voice settings
- Place outbound calls: start or schedule calls with a chosen assistant and phone number
- Review calls: list calls and fetch a call’s status, duration, and other details
- Manage assistant tools: create, update, and list tools that extend what assistants can do on calls
- Look up phone numbers: list the account’s phone numbers and fetch details for a specific one
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Vapi MCP connection
In AgentKit > Connections, create a Vapi MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
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. Scalekit sends the key as
Authorization: Bearer <token>to the Vapi MCP endpoint athttps://mcp.vapi.ai/mcp.-
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.
-
-
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_namein your code (for example,vapimcp).
-
-
Add a connected account
Connected accounts link a specific user identifier in your system to a Vapi API key. Add one in the dashboard to test. In production, each user adds their own through the authorization link: they enter their credentials on the page it opens.
In the dashboard, to test
-
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
- Your User’s ID — a unique identifier for this user in your system (for example,
-
Click Save.
From your backend, if your app already has the credentials
For example, when users enter them on a settings page in your app:
import { ConnectorStatus } from '@scalekit-sdk/node'const authorizationDetails = {details: {case: 'staticAuth',value: { details: { token: process.env.VAPI_API_KEY } },},};let { connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'vapimcp',identifier: 'user_123', // your user's unique IDauthorizationDetails,});// Make sure the account is ACTIVE before the first tool call.if (connectedAccount?.status !== ConnectorStatus.ACTIVE) {({ connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'vapimcp',identifier: 'user_123',authorizationDetails,}));}authorization_details = {"static_auth": {"token": os.environ["VAPI_API_KEY"]}}response = scalekit_client.actions.upsert_connected_account(connection_name="vapimcp",identifier="user_123",authorization_details=authorization_details,)# Make sure the account is ACTIVE before the first tool call.if response.connected_account.status != "ACTIVE":response = scalekit_client.actions.upsert_connected_account(connection_name="vapimcp",identifier="user_123",authorization_details=authorization_details,) -
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'vapimcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Vapi MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'vapimcp_list_assistants',toolInput: { context: 'Retrieving a customer\'s recent orders to investigate a billing issue and help support determine the appropriate resolution.', llm_model: 'claude-opus-4-8', rationale: 'YOUR_RATIONALE' },})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "vapimcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Vapi MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"context":"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.","llm_model":"claude-opus-4-8","rationale":"YOUR_RATIONALE"},tool_name="vapimcp_list_assistants",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Vapi MCP server credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolvapimcp_get_assistantRetrieves the full configuration of a specific Vapi assistant by ID, including its LLM, voice, transcription settings, tools, and first message.Read-onlyGet assistant
Retrieves the full configuration of a specific Vapi assistant by ID, including its LLM, voice, transcription settings, tools, and first message.
Inputs
assistantIdstringrequired- ID of the assistant to get
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_get_callRetrieves detailed information about a specific Vapi call by ID, including its status, duration, transcript, recording URL, and associated assistant.Read-onlyGet call
Retrieves detailed information about a specific Vapi call by ID, including its status, duration, transcript, recording URL, and associated assistant.
Inputs
callIdstringrequired- ID of the call to get
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_get_phone_numberRetrieves details of a specific Vapi phone number by ID, including its number, provider, and any assistant or squad configuration attached to it.Read-onlyGet 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
phoneNumberIdstringrequired- ID of the phone number to get
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_get_toolRetrieves the full configuration of a specific Vapi tool by ID, including its type (SMS, transfer call, function, or API request) and associated settings.Read-onlyGet 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
toolIdstringrequired- ID of the tool to get
vapimcp_list_assistantsLists all Vapi assistants configured in the account.Read-onlyList assistants
Lists all Vapi assistants configured in the account. Returns a list of assistant objects including their IDs, names, configurations, and settings.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_list_callsLists all Vapi calls in the account.Read-onlyList calls
Lists all Vapi calls in the account. Returns call records including their IDs, status, duration, associated assistant, and transcript metadata.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_list_phone_numbersLists all phone numbers provisioned in the Vapi account.Read-onlyList phone numbers
Lists all phone numbers provisioned in the Vapi account. Returns phone number objects including their IDs, numbers, provider, and associated assistant configurations.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_list_toolsLists all Vapi tools configured in the account.Read-onlyList 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
vapimcp_create_assistantCreates a new Vapi voice AI assistant with the specified configuration.WriteCreate 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
namestringrequired- Name of the assistant
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
firstMessagestring- First message to say to the userdefault
Hello, how can I help you today? firstMessageModestring- This determines who speaks first, either assistant or userone of
assistant-speaks-firstassistant-waits-for-userassistant-speaks-first-with-model-generated-messagedefaultassistant-speaks-first instructionsstring- Instructions for the assistantdefault
You are a helpful assistant. llmstring- LLM configuration
toolIdsarray- IDs of tools to use with this assistant
transcriberobject- Transcription configuration
voiceobject- Voice configuration
vapimcp_create_callInitiates or schedules an outbound Vapi call.WriteCreate 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
assistantIdstring- ID of the assistant to use for the call
assistantOverridesobject- Overrides for the assistant configuration
customerobject- Customer information
phoneNumberIdstring- ID of the phone number to use for the call
scheduledAtstring- ISO datetime string for when the call should be scheduled (e.g. "2025-03-25T22:39:27.771Z")
vapimcp_create_toolCreates a new Vapi tool that can be attached to assistants.WriteCreate 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.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
typestringrequired- Type of the tool to createone of
smstransferCallfunctionapiRequest apiRequestobject- API Request tool configuration - for HTTP API integration
descriptionstring- Description of what the function/tool does
functionobject- Custom function tool configuration - for custom server-side functions
namestring- Name of the function/tool
smsobject- SMS tool configuration - to send text messages
transferCallobject- Transfer call tool configuration - to transfer calls to destinations
vapimcp_send_feedbackSend feedback about this server to its developers.WriteSend Feedback
Send feedback about this server to its developers. Most important: report a missing capability whenever no available tool fits your task, even if you can work around it (feedback_type "missing_capability"). Also welcome: a tool that failed or confused you, an unhelpful error, or something that worked well. This records the feedback; it does not add or change tools. Do not include user PII or sensitive content.
Inputs
feedback_typestringrequired- What kind of feedback this is. Use 'missing_capability' when the tool you needed does not exist in the tool list - nothing failed, the capability is absent (this is the most valuable report; send it even if you found a workaround). Use 'issue' when an existing tool behaved badly: it failed, returned a confusing error, or its description or schema misled you. Use 'praise' when something worked notably well. Use 'other' for anything else.one of
missing_capabilityissuepraiseother llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
summarystringrequired- One self-contained sentence. For 'missing_capability': the capability you needed, e.g. 'No tool to delete multiple cohorts in one call.' For 'issue': the tool and the problem, e.g. 'query-trends rejects relative date ranges with an unclear error.'
detailsstring- Optional longer context: what you tried, exact parameter values, the error text you saw, and any workaround you used. Omit when the summary says it all.
friction_pointsstring- Optional: the specific moments that slowed you down, as short bullet-like sentences, quoting exact tool names, parameters, or error text.
sentimentstring- Optional: how the experience felt overall.one of
positiveneutralnegativemixed suggested_improvementstring- Optional: the concrete change that would have helped, e.g. the tool to add, the description to reword, or the error message to improve.
task_completedboolean- Optional: whether you still completed the user's task despite the problem.
tool_namestring- Optional: the existing tool this feedback is about (for 'issue' or 'praise'). Leave empty for 'missing_capability' - the point is that no tool fits.
vapimcp_update_assistantUpdates an existing Vapi assistant's configuration.WriteUpdate assistant
Updates an existing Vapi assistant's configuration. Only fields you provide will be changed; omitted fields retain their current values.
Inputs
assistantIdstringrequired- ID of the assistant to update
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
firstMessagestring- First message to say to the user
firstMessageModestring- This determines who speaks first, either assistant or userone of
assistant-speaks-firstassistant-waits-for-userassistant-speaks-first-with-model-generated-message instructionsstring- New instructions for the assistant
llmstring- New LLM configuration
namestring- New name for the assistant
toolIdsarray- New IDs of tools to use with this assistant
transcriberobject- New transcription configuration
voiceobject- New voice configuration
vapimcp_update_toolUpdates an existing Vapi tool's configuration.WriteUpdate tool
Updates an existing Vapi tool's configuration. Only fields you provide will be changed. Supports all tool types: sms, transferCall, function, and apiRequest.
Inputs
contextstringrequired- Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
llm_modelstringrequired- The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" â never guess.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
toolIdstringrequired- ID of the tool to update
apiRequestobject- API Request tool configuration - for HTTP API integration
descriptionstring- Description of what the function/tool does
functionobject- Custom function tool configuration - for custom server-side functions
namestring- Name of the function/tool
smsobject- SMS tool configuration - to send text messages
transferCallobject- Transfer call tool configuration - to transfer calls to destinations
No tools match.
Workflows
Tool calling
- Use
vapimcp_list_assistantsto discover existing assistants, thenvapimcp_get_assistantto read a specific assistant’s full configuration before changing it. - Use
vapimcp_create_assistantto provision a new voice AI assistant, andvapimcp_update_assistantto change only the fields you pass — omitted fields keep their current values. - Use
vapimcp_list_phone_numbersandvapimcp_get_phone_numberto find the phone number to call from. - Use
vapimcp_create_callto place an outbound call with a chosen assistant and phone number, thenvapimcp_get_callto read its status, duration, and transcript. - Use
vapimcp_create_toolto add SMS, transfer-call, function, or API-request tools, and attach them to an assistant withvapimcp_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);tool_response = actions.execute_tool( connection_name='vapimcp', identifier='user_123', tool_name='vapimcp_create_call', tool_input={ "assistantId": "YOUR_ASSISTANT_ID", "phoneNumberId": "YOUR_PHONE_NUMBER_ID", "customer": {"number": "+15551234567"}, },)print("Call started:", tool_response)