You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add browser-based OAuth authentication (no API key needed on first use)
- Add vapi_login and vapi_status tools for auth management
- Add Claude Code skill with voice assistant prompt engineering guide
- Update README with Claude Code setup instructions
- Rename package from @vapi-ai/mcp-server to vapi-mcp for simpler npx usage
The OAuth flow works like `gh auth login`:
1. User calls a Vapi tool
2. If not authenticated, local HTTP server starts for OAuth callback
3. Browser opens to Vapi dashboard for sign-in
4. After auth, API key is saved locally for future use
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
After restarting, use `/vapi` or ask Claude to help build a voice assistant. On first use, you'll be prompted to sign in via browser - no API key copy-paste needed.
42
+
43
+
---
44
+
11
45
## Claude Desktop Setup
12
46
13
-
1. Open `Claude Desktop` and press `CMD + ,` to go to `Settings`.
14
-
2. Click on the `Developer` tab.
15
-
3. Click on the `Edit Config` button.
16
-
4. This will open the `claude_desktop_config.json` file in your file explorer.
17
-
5. Get your Vapi API key from the Vapi dashboard (<https://dashboard.vapi.ai/org/api-keys>).
18
-
6. Add the following to your `claude_desktop_config.json` file. See [here](https://modelcontextprotocol.io/quickstart/user) for more details.
19
-
7. Restart the Claude Desktop after editing the config file.
47
+
### With OAuth (No API Key)
48
+
49
+
```json
50
+
{
51
+
"mcpServers": {
52
+
"vapi": {
53
+
"command": "npx",
54
+
"args": ["-y", "vapi-mcp"]
55
+
}
56
+
}
57
+
}
58
+
```
59
+
60
+
### With API Key
20
61
21
-
### Local Configuration
62
+
If you prefer to use an API key directly, get one from the [Vapi dashboard](https://dashboard.vapi.ai/org/api-keys):
22
63
23
64
```json
24
65
{
25
66
"mcpServers": {
26
-
"vapi-mcp-server": {
67
+
"vapi": {
27
68
"command": "npx",
28
-
"args": [
29
-
"-y",
30
-
"@vapi-ai/mcp-server"
31
-
],
69
+
"args": ["-y", "vapi-mcp"],
32
70
"env": {
33
71
"VAPI_TOKEN": "<your_vapi_token>"
34
72
}
@@ -39,10 +77,12 @@ The Vapi [Model Context Protocol](https://modelcontextprotocol.com/) server allo
39
77
40
78
### Remote Configuration
41
79
80
+
Connect to Vapi's hosted MCP server:
81
+
42
82
```json
43
83
{
44
84
"mcpServers": {
45
-
"vapi-mcp": {
85
+
"vapi": {
46
86
"command": "npx",
47
87
"args": [
48
88
"mcp-remote",
@@ -58,48 +98,47 @@ The Vapi [Model Context Protocol](https://modelcontextprotocol.com/) server allo
58
98
}
59
99
```
60
100
61
-
### Example Usage with Claude Desktop
101
+
---
62
102
63
-
1. Create or import a phone number using the Vapi dashboard (<https://dashboard.vapi.ai/phone-numbers>).
64
-
2. Create a new assistant using the existing 'Appointment Scheduler' template in the Vapi dashboard (<https://dashboard.vapi.ai/assistants>).
65
-
3. Make sure to configure Claude Desktop to use the Vapi MCP server and restart the Claude Desktop app.
66
-
4. Ask Claude to initiate or schedule a call. See examples below:
103
+
## Example Usage
67
104
68
-
**Example 1:** Request an immediate call
105
+
### Create a Voice Assistant
69
106
70
-
```md
71
-
I'd like to speak with my ShopHelper assistant to talk about my recent order. Can you have it call me at +1234567890?
107
+
Ask Claude:
72
108
```
73
-
74
-
**Example 2:** Schedule a future call
75
-
76
-
```md
77
-
I need to schedule a call with Mary assistant for next Tuesday at 3:00 PM. My phone number is +1555123456.
109
+
I want to build a voice assistant that can schedule appointments
78
110
```
79
111
80
-
**Example 3:**Make a call with dynamic variables
112
+
### Make an Outbound Call
81
113
82
-
```md
83
-
I want to call +1234567890 with my appointment reminder assistant. Use these details:
114
+
```
115
+
Call +1234567890 using my appointment reminder assistant with these details:
84
116
- Customer name: Sarah Johnson
85
117
- Appointment date: March 25th
86
118
- Appointment time: 2:30 PM
87
-
- Doctor name: Dr. Smith
88
119
```
89
120
121
+
### Schedule a Future Call
122
+
123
+
```
124
+
Schedule a call with my support assistant for next Tuesday at 3:00 PM to +1555123456
125
+
```
126
+
127
+
---
128
+
90
129
## Using Variable Values in Assistant Prompts
91
130
92
-
The `create_call` action supports passing dynamic variables through `assistantOverrides.variableValues`. These variables can be used in your assistant's prompts using double curly braces: `{{variableName}}`.
131
+
The `create_call` action supports passing dynamic variables through `assistantOverrides.variableValues`. Use double curly braces in your assistant's prompts: `{{variableName}}`.
93
132
94
-
### Example Assistant Prompt with Variables
133
+
### Example Prompt with Variables
95
134
96
135
```
97
136
Hello {{customerName}}, this is a reminder about your appointment on {{appointmentDate}} at {{appointmentTime}} with {{doctorName}}.
98
137
```
99
138
100
139
### Default Variables
101
140
102
-
The following variables are automatically available (no need to pass in variableValues):
141
+
These are automatically available (no need to pass):
103
142
104
143
-`{{now}}` - Current date and time (UTC)
105
144
-`{{date}}` - Current date (UTC)
@@ -109,131 +148,118 @@ The following variables are automatically available (no need to pass in variable
109
148
-`{{year}}` - Current year (UTC)
110
149
-`{{customer.number}}` - Customer's phone number
111
150
112
-
For more details on default variables and advanced date/time formatting, see the [official Vapi documentation](https://docs.vapi.ai/assistants/dynamic-variables#default-variables).
151
+
See [Vapi documentation](https://docs.vapi.ai/assistants/dynamic-variables#default-variables) for advanced date/time formatting.
113
152
114
-
## Remote MCP
153
+
---
115
154
116
-
To connect to Vapi's MCP server remotely:
155
+
## Remote MCP Server
117
156
118
-
### Streamable HTTP (Recommended)
157
+
Connect to Vapi's hosted MCP server from any MCP client:
119
158
120
-
The default and recommended way to connect is via Streamable HTTP Transport:
159
+
### Streamable HTTP (Recommended)
121
160
122
-
- Connect to `https://mcp.vapi.ai/mcp` from any MCP client using Streamable HTTP Transport
123
-
- Include your Vapi API key as a bearer token in the request headers
124
-
- Example header: `Authorization: Bearer your_vapi_api_key_here`
The Vapi MCP Server provides the following tools for integration:
213
-
214
-
### Assistant Tools
215
-
216
-
-`list_assistants`: Lists all Vapi assistants
217
-
-`create_assistant`: Creates a new Vapi assistant
218
-
-`update_assistant`: Updates an existing Vapi assistant
219
-
-`get_assistant`: Gets a Vapi assistant by ID
220
-
221
-
### Call Tools
222
-
223
-
-`list_calls`: Lists all Vapi calls
224
-
-`create_call`: Creates an outbound call with support for:
225
-
- Immediate or scheduled calls
226
-
- Dynamic variable values through `assistantOverrides`
227
-
-`get_call`: Gets details of a specific call
228
-
229
-
> **Note:** The `create_call` action supports scheduling calls for immediate execution or for a future time. You can also pass dynamic variables using `assistantOverrides.variableValues` to personalize assistant messages.
230
-
231
-
### Phone Number Tools
232
-
233
-
-`list_phone_numbers`: Lists all Vapi phone numbers
234
-
-`get_phone_number`: Gets details of a specific phone number
0 commit comments