Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can connect Vapi to an MCP server by creating an MCP tool in the Vapi Dashboard, entering the server URL, adding that tool to an assistant, and publishing the assistant. Vapi uses Streamable HTTP (shttp) by default; its documentation marks SSE as deprecated. You can also reverse the direction: an MCP client can connect to Vapi’s own MCP server at https://mcp.vapi.ai/mcp using a Vapi API key.

Choose which way you want to connect

“Integrate MCP with Vapi” can mean either of two different setups. Decide which one you need before creating credentials or tools:

  • External MCP server → Vapi assistant: Your assistant calls tools hosted by an MCP provider. This is the usual choice when you want an assistant to use a connected service such as a CRM, email account, or automation platform during a call or chat.
  • Vapi MCP server → external MCP client: A client such as Claude Desktop connects to Vapi and can manage or inspect Vapi resources through MCP tools.

If your aim is instead to give an IDE assistant Vapi-specific documentation and examples, use the Vapi CLI workflow described below; it is separate from connecting a runtime assistant to a third-party MCP server.

Connect an external MCP server to a Vapi assistant

Before you start

  • Get the MCP server URL from your provider. It may contain a token, so treat the full URL as a secret.
  • Decide which specific actions your assistant needs. A server can expose many tools, and Vapi discovers the complete list that the server makes available.
  • Use a server compatible with Streamable HTTP unless the provider specifically requires SSE.

Create the MCP tool in the Dashboard

  1. In the Vapi Dashboard, open Tools and choose Create Tool → MCP.
  2. Enter a name and an invocation description that tell the assistant what the tools are for and when they should be used. For example, a CRM tool description might say: “Use the CRM tools when the caller asks to look up or update a customer.”
  3. Enter your provider’s MCP server URL. Leave the protocol set to shttp (Streamable HTTP) unless the server requires SSE.
  4. Save the tool, open the assistant’s Tools tab, add the MCP tool, and publish the assistant.
  5. Test a call or chat that should invoke one of the imported tools. Confirm both that the assistant selects the correct action and that the downstream service receives the intended request.

The MCP tool is a container for the server’s tools, not itself an action the model should invoke. Vapi connects to the server, discovers the tools it exposes, and makes those definitions available to the assistant.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create the same tool through the API

For API-based configuration, the server address belongs in server.url. The following is the minimal shape of a tool configuration; replace the example URL and description with values appropriate to your server.

{
  "type": "mcp",
  "function": {
    "name": "crm_mcp",
    "description": "Use the CRM tools when the caller asks to look up or update a customer"
  },
  "server": {
    "url": "https://your-mcp-provider.example/mcp"
  },
  "metadata": {
    "protocol": "shttp"
  }
}

Optional server settings include server.headers; use them only when your server’s authentication or configuration requires them. Vapi’s documented configuration also uses metadata.protocol to specify the transport. Keep credentials out of source control and avoid putting a secret-bearing URL in logs or shared configuration.

What happens during an invocation

Vapi imports the complete tool list exposed by the MCP server rather than selecting individual tools in the assistant configuration. When the model decides an imported tool is relevant, Vapi opens a new MCP connection for that invocation and forwards identifiers such as X-Call-Id or X-Chat-Id; chat sessions may also include X-Session-Id. If an action needs to identify the active conversation, use the identifiers your server receives rather than assuming a persistent connection.

Limit exposure at the provider as well as in your assistant instructions. Vapi recommends exposing only the tools the assistant needs. A large imported tool list can consume context and contribute to latency or timeout risk; large tool responses create similar pressure. Filter or summarize data at the server where possible, and describe a fallback response for when a tool is unavailable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Connect an MCP client to Vapi

Vapi also provides an MCP server at https://mcp.vapi.ai/mcp. An MCP client authenticates with your Vapi API key in the HTTP Authorization: Bearer header. The following example uses mcp-remote in an MCP client configuration:

{
  "mcpServers": {
    "vapi-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.vapi.ai/mcp",
        "--header",
        "Authorization: Bearer ${VAPI_TOKEN}"
      ],
      "env": {
        "VAPI_TOKEN": "YOUR_VAPI_API_KEY"
      }
    }
  }
}
  1. Set VAPI_TOKEN to a valid Vapi API key using your client’s secure environment-variable or secret-management mechanism. Do not commit a real key to a shared configuration file.
  2. Save the MCP client configuration and restart the client so it loads the server entry.
  3. Check that the client can list available tools, then try a low-risk read operation before enabling any operation that changes data or creates a call.

The Vapi MCP server exposes operations that include listing and creating assistants and calls, inspecting phone numbers, and listing or retrieving tools. The exact operation you can perform depends on the available tools and the permissions associated with the key. Use a key with only the access needed for the client’s task.

Give an IDE assistant Vapi documentation

If your goal is to help an IDE assistant answer Vapi implementation questions, rather than let a live Vapi assistant call third-party tools, the Vapi CLI provides vapi mcp setup. It has targets for Cursor, Windsurf, and VS Code and creates the relevant workspace configuration. Restart the IDE after setup if the MCP server does not appear. If it still fails, check the IDE’s output logs, confirm that npm is available, and update the installed Vapi MCP package if the documentation appears stale.

Choose MCP, API Request, or Function tools

These approaches solve different integration problems. Use the workflow, authentication boundary, and data shape that match the service rather than choosing MCP simply because it is available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Pattern Best fit What to consider
MCP A provider owns a curated tool surface that Vapi should discover at runtime. Vapi imports all tools exposed at the server URL. Control exposure at the provider and keep the list and responses small enough for the assistant’s context and call timing.
API Request An ordinary webhook that accepts and returns JSON. Vapi documents this as the default for a standard JSON webhook. You define the request and response around that endpoint rather than importing a provider’s MCP tool list.
Function A workflow that needs Vapi’s tool-calls envelope or call, assistant, and artifact context. Choose this when the Vapi-specific execution context or envelope is part of the integration contract.

Provider setup and permissions

Make

For Make, create an on-demand scenario, create a least-privilege MCP token, restrict which scenarios it can access, and use the resulting connection URL as the Vapi server URL. Make management scopes may expose tools that can change data, so do not grant them unless the assistant’s job requires those actions.

Zapier

Vapi’s documentation describes a Zapier MCP URL-generation flow and records Zapier’s claim of “over 7,000+ apps and 30,000+ actions.” That is a vendor claim shown in Vapi’s documentation as accessed September 29, 2026, not an independent count; verify current availability and limits with Zapier before designing around it.

Composio

In Composio, select a tool such as Gmail, connect the account through Composio’s authentication flow, create a server, and copy its generated URL into Vapi. Confirm that the connected account and server expose only the operations the assistant needs.

Security, reliability, and cost considerations

  • Protect secrets: MCP URLs may contain credentials, and Vapi API keys authorize access to Vapi resources. Store them in a secret manager or protected environment variables, rotate them if exposed, and do not paste them into prompts or public issue reports.
  • Use least privilege: Restrict access at the MCP provider and connected account. Keep the assistant’s instructions clear about when it may call a tool and what it must not change without confirmation.
  • Plan for runtime discovery: A server’s full tool list is introduced to the assistant context. Remove unrelated operations at the provider rather than expecting the model to ignore a large catalog reliably.
  • Bound response size: Return the fields the assistant needs, not entire records or long histories. Excessive tool output can crowd the context, delay a response, or contribute to timeouts.
  • Account for connection behavior: Vapi opens a new MCP connection for each invocation. Do not build a server workflow that depends on one long-lived connection carrying state between separate tool calls; use the call, chat, or session identifiers when correlation is needed.
  • Budget the whole workflow: No MCP-specific price or quota is established here. Check the current terms for Vapi and the chosen provider, and account for any usage-based charges in the downstream service as well as call volume and retries.

Troubleshooting common MCP integration problems

Symptom Likely cause What to check or change
The MCP tool cannot connect The URL is incorrect, inaccessible, or uses a transport the server does not support. Check the complete URL and provider status. Use shttp by default; select SSE only if the server requires it.
The assistant does not use the tool The tool was not added to the assistant, the assistant was not published, or its description does not make the tool’s purpose clear. Verify the assistant’s Tools tab, publish the current version, and give the tool and assistant clear instructions about when it applies.
Unexpected tools appear Vapi discovers the complete tool list exposed by the server. Restrict the server’s exposed tools or create a more narrowly scoped server connection. Do not rely on the model to disregard unwanted operations.
Tool calls are slow or time out A long tool catalog, large response, slow downstream service, or provider-side delay may be involved. Reduce the exposed tool list and response fields, check provider latency, and make the assistant’s fallback behavior explicit.
A client rejects Vapi authentication The API key is missing, invalid, or not sent as a bearer token. Verify the Authorization: Bearer header in the client configuration and confirm that the environment variable resolves to the intended key.
An IDE does not show the Vapi MCP server The IDE has not reloaded its workspace configuration or cannot run the configured package. Restart the IDE, inspect its output logs, check that npm is available, and update the installed Vapi MCP package if needed.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If the task you want to automate is taking clean website screenshots, ScreenshotNeo is an alternative to try first: it provides a screenshot API and MCP server for developers. This is a separate screenshot workflow, not a claim that ScreenshotNeo is a Vapi MCP endpoint. Its MCP server is for AI agents using Claude, Cursor, or another MCP client; use the documented ScreenshotNeo API call below when you need a direct HTTP request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

One GET request returns a screenshot. The example saves a WebP capture of Stripe:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for request options. Before capture, it can accept cookie or consent banners as a visitor and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server includes take_screenshot, get_page_info, and capture_pdf.

ScreenshotNeo also supports full-page and CSS-selector captures, device presets and custom viewports, dark mode, PDF settings, custom CSS and JavaScript, request blocking, custom headers and cookies, caching, signed image links, async jobs, and bulk capture. The Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots. Learn about ScreenshotNeo or sign up for 1,000 free screenshots a month with no card.

Frequently Asked Questions

Can I connect more than one MCP server to a Vapi assistant?

The documented setup creates MCP tools and adds tools to an assistant. If you need multiple providers, configure their MCP tools separately and verify the assistant’s available tool list after publishing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does connecting the Vapi MCP server make Vapi a third-party MCP client?

No. The Vapi endpoint is for an external MCP client to access Vapi tools. To have a Vapi assistant call external tools, configure an MCP server URL as an MCP tool in Vapi.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.