vapi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| provision_clientA | Create the client's Vapi assistant from the inbound answering template and save a secret-free local client record. Reuses an existing local record by default. |
| apply_templateA | Render a local template with the client's settings and PATCH the existing Vapi assistant. Optional overrides are deep-merged last. |
| set_prompt_and_voiceB | Update selected first-message, system-prompt, model, and voice fields while preserving the assistant's other model settings and attached tool IDs. |
| attach_phoneA | Bind an existing Vapi phone-number ID, or create/import a number from a provider-specific Vapi REST body. The client assistantId is always enforced. |
| attach_toolsA | Create reusable Vapi tools and/or attach existing tool IDs, preserving current assistant model configuration. Supports transfer, callback, calendar, CRM, API-request, and MCP tool payloads accepted by Vapi. |
| set_structured_outputsA | Create structured outputs attached to the client assistant. With no definitions, uses the template schema for name, number, reason, callback window, and transfer outcome. |
| smoke_test_callA | Place a real, potentially billable outbound call using the client assistant. Requires explicit confirmation. Optionally poll and return transcript and structured data. |
| list_client_statusA | Read the local client record and current Vapi assistant, bound phone, and latest call. Partial remote failures are returned in errors. |
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 8 tools
Each tool focuses on a distinct aspect of client provisioning (creation, calling, templates, prompts, phone, tools, outputs, status), but 'apply_template' and 'set_prompt_and_voice' both modify assistant settings, which could cause minor confusion. 'smoke_test_call' is clearly separate.
All names use snake_case with verb_noun pattern (provision_client, attach_phone, list_client_status), but verbs vary in style: 'provision' and 'apply' are less conventional than 'set', 'attach', 'list'. 'smoke_test_call' is a multi-word verb, a minor deviation.
8 tools is within the ideal range for a client lifecycle management server, covering provisioning, configuration, and testing. It feels slightly heavy but each tool serves a clear purpose, so it is well-scoped.
The tools cover create, read/status, update (apply_template, set_prompt_and_voice), and attach resources, but there is no explicit delete/deprovision tool, which is a notable gap for a lifecycle. The smoke_test and structured outputs are nice-to-haves, but the missing teardown functionality is a gap.