mcp-vapi
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VAPI_API_KEY | Yes | Your Vapi private API key from dashboard.vapi.ai |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vapi_list_assistantsB | List all voice assistants in your Vapi account. Returns IDs, names, and config. |
| vapi_get_assistantB | Get full details of a specific Vapi assistant by ID, including its model, voice, and prompt config. |
| vapi_create_assistantC | Create a new Vapi voice assistant. You can set its name, first message, system prompt, LLM model, voice, and more. |
| vapi_update_assistantC | Update an existing assistant (partial update — only send the fields you want to change). |
| vapi_delete_assistantA | Permanently delete a Vapi assistant. This cannot be undone. |
| vapi_create_callB | Fire an outbound call using a Vapi assistant. Needs your Vapi phone number ID and the customer's number in E.164 format (+14155550100). |
| vapi_list_callsC | List calls with optional filters. Returns call IDs, status, cost, and basic info. |
| vapi_get_callB | Get full details of a call including transcript, recording URL, cost, end reason, and summary. |
| vapi_end_callA | Force-end an active Vapi call. Useful if a call gets stuck or needs to be terminated from a workflow. |
| vapi_list_phone_numbersA | List all phone numbers in your Vapi account. Use the IDs when creating calls. |
| vapi_get_phone_numberC | Get details of a specific Vapi phone number. |
| vapi_list_squadsB | List all squads in your account. Squads are groups of assistants that hand off to each other. |
| vapi_get_squadB | Get details of a specific squad including its member assistants. |
| vapi_create_squadB | Create a squad of assistants that can hand off to each other on a call. Great for receptionist → qualifier → closer flows. |
| vapi_update_squadC | Update a squad — rename it or change its members. |
| vapi_delete_squadC | Permanently delete a squad. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Each tool has a clearly distinct purpose targeting specific resources (assistants, calls, squads, phone numbers) and actions (create, get, list, update, delete, end). No overlap exists; for example, vapi_create_assistant and vapi_update_assistant are clearly differentiated by their operations on the same resource.
All tools follow a consistent verb_noun pattern with the prefix 'vapi_' (e.g., vapi_create_assistant, vapi_get_call, vapi_list_squads). The naming is uniform across all 16 tools, using snake_case and clear action-resource pairs without any deviations.
With 16 tools, the server is well-scoped for managing Vapi's core entities (assistants, calls, squads, phone numbers). Each tool serves a specific CRUD or operational function, and the count aligns with the domain's complexity without being excessive or insufficient.
The tool set provides complete CRUD and lifecycle coverage for all key resources: assistants, calls, squads, and phone numbers. It includes creation, retrieval, listing, updating, and deletion, plus operational tools like vapi_end_call, ensuring no gaps for agent workflows in this domain.