Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fern/cli/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The Vapi CLI is the official command-line interface that brings world-class deve
- Initialize Vapi in existing projects
- Manage assistants, phone numbers, and calls from your terminal
- Forward webhooks to your local development server
- Turn your IDE into a Vapi expert with MCP integration
- Turn your coding agent into a Vapi expert with the [Vapi MCP server](/sdk/mcp-server)

## Installation

Expand Down
127 changes: 105 additions & 22 deletions fern/sdk/mcp-server.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
title: Vapi MCP Server
title: Vapi MCP server
subtitle: Connect Vapi to AI assistants with Model Context Protocol (MCP)
slug: sdk/mcp-server
description: Connect Claude, Codex, Cursor, VS Code and other MCP clients to the hosted Vapi MCP Server, sign in with your Vapi account, and manage assistants, phone numbers, and calls.
description: Connect Claude, Codex, Cursor, VS Code, Hermes, and other MCP clients to the hosted Vapi MCP server, sign in with your Vapi account, and search the docs or manage assistants, calls, tools, and simulations.
---

## Overview

The **Vapi MCP Server** exposes Vapi APIs as tools via the Model Context Protocol (MCP), so you can manage assistants, phone numbers, and calls from any MCP-compatible AI assistant (like Claude) or agent framework.
The **Vapi MCP server** exposes Vapi APIs as tools via the Model Context Protocol (MCP), so you can manage assistants, phone numbers, and calls from any MCP-compatible AI assistant (like Claude) or agent framework.

Use this server to connect your AI workflows to real-world telephony, automate voice tasks, and build richer conversational agents.

Expand All @@ -20,7 +20,7 @@ Use this server to connect your AI workflows to real-world telephony, automate v
</Tip>

<Note>
If an earlier CLI release configured `@vapi-ai/mcp-docs-server` in your agent, replace that legacy entry with the hosted connection below. Existing agent configurations are not removed automatically.
If an earlier CLI release configured `@vapi-ai/mcp-docs-server` in your agent, replace that legacy entry with the hosted connection below, or with the [documentation server](#search-the-docs-without-signing-in) if you only need docs search. Existing agent configurations are not removed automatically.
</Note>

## Server URL and sign-in
Expand Down Expand Up @@ -163,26 +163,109 @@ Once connected, try asking your agent: "List my Vapi assistants."

---

## Core Tools
## Search the docs without signing in

The Vapi MCP Server exposes these actions as MCP tools:
For documentation search alone, connect your agent to Vapi's documentation MCP server at `https://docs.vapi.ai/_mcp/server`. It needs no account and provides a `searchDocs` tool. The Vapi MCP server's `ask_vapi_docs` tool runs the same search.

| Tool | Description | Example Usage |
|------------------------|--------------------------------------------------|-----------------------------------------------|
| `list_assistants` | List all Vapi assistants | Show all configured assistants |
| `create_assistant` | Create a new Vapi assistant | Add a new assistant for a use case |
| `get_assistant` | Get a Vapi assistant by ID | View assistant config |
| `list_calls` | List all calls | Review call activity |
| `create_call` | Create an outbound call (now or scheduled) | Initiate or schedule a call |
| `get_call` | Get details for a specific call | Check status or result of a call |
| `list_phone_numbers` | List all Vapi phone numbers | See available numbers |
| `get_phone_number` | Get details of a specific phone number | Inspect a phone number |
| `list_tools` | List all available Vapi tools | Tool discovery |
| `get_tool` | Get details of a specific tool | Tool integration info |
If your client can't connect to a remote server directly, run it through the `mcp-remote` adapter:

<Note>
<b>Scheduling calls:</b> The <code>create_call</code> action supports scheduling with the optional <code>scheduledAt</code> parameter.
</Note>
```json
{
"mcpServers": {
"vapi-docs": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://docs.vapi.ai/_mcp/server"]
}
}
}
```

---

## Available tools

The Vapi MCP server exposes the tools below.

### Connection

| Tool | Description |
|-----------------------|-------------------------------------------------------------------------------------|
| `get_connection_info` | Show the Vapi user, organization, and OAuth client this connection is authorized as |

### Documentation and reference

| Tool | Description |
|------------------|-----------------------------------------------------------------------------|
| `ask_vapi_docs` | Search Vapi documentation and return relevant passages with source URLs |
| `get_api_schema` | Look up a schema in the Vapi API reference, the OpenAPI spec the SDKs are generated from |
| `search_skills` | Find Vapi agent skills in the public `VapiAI/skills` repository |
| `load_skill` | Read a public Vapi skill or one of its supporting files |

The `load_skill` tool returns instructions for the agent to follow. It does not install skills or run scripts.

### Assistants

| Tool | Description |
|--------------------|------------------------------------|
| `list_assistants` | List all Vapi assistants |
| `get_assistant` | Get a Vapi assistant by ID |
| `create_assistant` | Create a new Vapi assistant |
| `update_assistant` | Update an existing Vapi assistant |

### Calls

| Tool | Description |
|---------------|------------------------------------|
| `list_calls` | List all calls |
| `get_call` | Get details for a specific call |
| `create_call` | Create an outbound call, now or scheduled |

To schedule a call, pass the optional `scheduledAt` parameter to `create_call`.

<Info>
The `create_call` tool places a real phone call.
</Info>

### Phone numbers

| Tool | Description |
|----------------------|----------------------------------------|
| `list_phone_numbers` | List all Vapi phone numbers |
| `get_phone_number` | Get details of a specific phone number |

### Vapi tools

| Tool | Description |
|---------------|-----------------------------------|
| `list_tools` | List all Vapi tools |
| `get_tool` | Get details of a specific tool |
| `create_tool` | Create a new Vapi tool |
| `update_tool` | Update an existing Vapi tool |

### Simulations

These tools drive [simulations](/observability/simulations-overview), which test an assistant against an AI tester.

| Tool | Description |
|----------------------------------|-----------------------------------------------------------------------------|
| `list_simulation_personalities` | List simulation personalities, which set how the AI tester behaves |
| `create_simulation_personality` | Create a personality that sets how the AI tester behaves |
| `list_simulation_scenarios` | List simulation scenarios, the AI tester's intent and the checks that decide pass or fail |
| `create_simulation_scenario` | Create a scenario: AI tester instructions plus the evaluations that decide pass or fail |
| `list_simulations` | List simulations, each pairing one scenario with one personality |
| `create_simulation` | Create a simulation that pairs a scenario with a personality |
| `list_simulation_suites` | List simulation suites, which are named groups of simulations |
| `create_simulation_suite` | Create a suite that groups simulations so they can be run together |
| `run_simulations` | Start a run of simulations or suites against an assistant or squad |
| `list_simulation_runs` | List simulation runs, newest first |
| `get_simulation_run` | Get a run with its status, item counts, and item summaries |
| `get_simulation_run_item` | Get one run item in full, including results, call snapshots, and transcript |

<Info>
Each `run_simulations` tool call starts a billed simulation run. For more information, see [Simulations overview](/observability/simulations-overview).
</Info>

Which tools succeed depends on your role in the organization you signed in to. A call that your role doesn't permit fails with an authorization error.

---

Expand All @@ -204,7 +287,7 @@ If you're building your own MCP client, use an [MCP SDK](https://modelcontextpro
</Accordion>

<Accordion title="How do I use a different organization?">
Each connection is bound to the organization you picked when you signed in. To switch, disconnect or clear the authentication in your client and sign in again. To use several organizations at once, add the server once per organization under different names, such as `vapi-prod` and `vapi-staging`.
Each connection is bound to the organization you picked when you signed in. Ask your agent to run the `get_connection_info` tool to see which user and organization it is using. To switch, disconnect or clear the authentication in your client and sign in again. To use several organizations at once, add the server once per organization under different names, such as `vapi-prod` and `vapi-staging`.
</Accordion>

<Accordion title="What can the connection access?">
Expand Down
Loading