Vapi MCP Server
OfficialVapi MCP サーバー
Vapiモデル コンテキスト プロトコルサーバーを使用すると、関数呼び出しを通じて Vapi API と統合できます。
クロードデスクトップセットアップ
Claude Desktopを開き、CMD + ,を押してSettingsに移動します。Developerタブをクリックします。Edit Configボタンをクリックします。これにより、ファイル エクスプローラーで
claude_desktop_config.jsonファイルが開きます。Vapi ダッシュボード ( https://dashboard.vapi.ai/org/api-keys ) から Vapi API キーを取得します。
claude_desktop_config.jsonファイルに以下の行を追加してください。詳細はこちらをご覧ください。設定ファイルを編集した後、Claude Desktop を再起動します。
{
"mcpServers": {
"vapi-mcp-server": {
"command": "npx",
"args": [
"-y",
"@vapi-ai/mcp-server"
],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
}
}
}
Claude Desktop の使用例
Vapi ダッシュボード ( https://dashboard.vapi.ai/phone-numbers ) を使用して電話番号を作成またはインポートします。
Vapi ダッシュボード ( https://dashboard.vapi.ai/assistants ) の既存の「予約スケジューラ」テンプレートを使用して、新しいアシスタントを作成します。
Claude Desktop が Vapi MCP サーバーを使用するように構成し、Claude Desktop アプリを再起動してください。
クロードに通話の開始またはスケジュールを依頼してください。以下の例をご覧ください。
**例1:**即時通話をリクエストする
I'd like to speak with my ShopHelper assistant to talk about my recent order. Can you have it call me at +1234567890?**例2:**将来の通話をスケジュールする
I need to schedule a call with Mary assistant for next Tuesday at 3:00 PM. My phone number is +1555123456.Related MCP server: Lark MCP Server
リモートSSE接続
Server-Sent Events (SSE) トランスポート経由で Vapi の MCP サーバーに接続するには:
SSEトランスポートを使用して、任意のMCPクライアントから
https://mcp.vapi.ai/sseに接続します。Vapi APIキーをベアラートークンとしてリクエストヘッダーに含める
ヘッダーの例:
Authorization: Bearer your_vapi_api_key_here
この接続により、ローカル サーバーを実行せずに Vapi の機能にリモートでアクセスできます。
発達
# Install dependencies
npm install
# Build the server
npm run buildローカル サーバーを使用するようにclaude_desktop_config.json更新します。
{
"mcpServers": {
"vapi-local": {
"command": "node",
"args": [
"<path_to_vapi_mcp_server>/dist/index.js"
],
"env": {
"VAPI_TOKEN": "<your_vapi_token>"
}
},
}
}テスト
このプロジェクトには 2 種類のテストがあります。
ユニットテスト
ユニット テストでは、モックを使用して、Vapi への実際の API 呼び出しを行わずに MCP サーバーをテストします。
# Run unit tests
npm run test:unitエンドツーエンドテスト
E2E テストでは、Vapi への実際の API 呼び出しを使用して完全な MCP サーバーを実行します。
# Set your Vapi API token
export VAPI_TOKEN=your_token_here
# Run E2E tests
npm run test:e2e注: E2E テストでは、環境に有効な Vapi API トークンを設定する必要があります。
すべてのテストを実行
すべてのテストを一度に実行するには:
npm test参考文献
サポートされているアクション
Vapi MCP サーバーは、統合用に次のツールを提供します。
アシスタントツール
list_assistants: すべてのVapiアシスタントを一覧表示しますcreate_assistant: 新しい Vapi アシスタントを作成するupdate_assistant: 既存の Vapi アシスタントを更新しますget_assistant: IDでVapiアシスタントを取得する
通話ツール
list_calls: すべてのVapi呼び出しを一覧表示しますcreate_call: 発信コールを作成するget_call: 特定の通話の詳細を取得します
注:
create_callアクションは、即時実行または将来の実行のための呼び出しのスケジュール設定をサポートします。
電話番号ツール
list_phone_numbers: すべてのVapi電話番号を一覧表示しますget_phone_number: 特定の電話番号の詳細を取得します
Vapiツール
list_tools: すべてのVapiツールを一覧表示しますget_tool: 特定のツールの詳細を取得します
Available Tools
13 toolscreate_assistantB
Creates a new Vapi assistant
| Name | Required | Description | Default |
|---|---|---|---|
| llm | No | LLM configuration | |
| name | Yes | Name of the assistant | |
| voice | No | Voice configuration | |
| toolIds | No | IDs of tools to use with this assistant | |
| transcriber | No | Transcription configuration | |
| firstMessage | No | First message to say to the user | Hello, how can I help you today? |
| instructions | No | Instructions for the assistant | You are a helpful assistant. |
| firstMessageMode | No | This determines who speaks first, either assistant or user | assistant-speaks-first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the tool creates an assistant, with no insight into side effects, authentication needs, rate limits, or what happens on success/failure. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, non-wasteful sentence. It is front-loaded with the action. However, for a complex tool with 8 parameters, slightly more context might be warranted, but it remains appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, nested objects, no output schema) and absence of annotations, the description is inadequate. It does not explain return values, relationship to other entities (e.g., tools), or typical workflow integration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific meaning beyond the schema; it simply states the tool's purpose. No extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (creates) and resource (new Vapi assistant), and implicitly distinguishes from sibling tools like create_call or create_tool. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., update_assistant) or any context about prerequisites or typical use cases. It lacks any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_callC
Creates a outbound call
| Name | Required | Description | Default |
|---|---|---|---|
| customer | No | Customer information | |
| assistantId | No | ID of the assistant to use for the call | |
| scheduledAt | No | ISO datetime string for when the call should be scheduled (e.g. "2025-03-25T22:39:27.771Z") | |
| phoneNumberId | No | ID of the phone number to use for the call | |
| assistantOverrides | No | Overrides for the assistant configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey all behavioral traits. It only mentions 'outbound call' without disclosing side effects (e.g., cost, permissions, idempotency) or whether the call may be scheduled (as indicated by the scheduledAt parameter).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but contains a grammatical error ('a outbound'). It lacks structure and fails to earn its place with substantial content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (5 parameters, nested objects) and no output schema, the description omits crucial details like what the call creation returns, how scheduling works, and any necessary prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptive titles in the schema, so the description adds no additional meaning. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates an outbound call, distinguishing it from read tools like get_call or list_calls. However, it lacks precision about what creating a call entails (e.g., immediate dialing vs scheduling).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_assistant or when to avoid it. Missing context on prerequisites or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_toolC
Creates a new Vapi tool
| Name | Required | Description | Default |
|---|---|---|---|
| sms | No | SMS tool configuration - to send text messages | |
| name | No | Name of the function/tool | |
| type | Yes | Type of the tool to create | |
| function | No | Custom function tool configuration - for custom server-side functions | |
| apiRequest | No | API Request tool configuration - for HTTP API integration | |
| description | No | Description of what the function/tool does | |
| transferCall | No | Transfer call tool configuration - to transfer calls to destinations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It only says 'creates', implying mutation, but offers no details on side effects, idempotency, or what changes occur. The agent is left to infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks substantive content. It is front-loaded but too sparse to be fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 7 parameters and no output schema, the description is grossly incomplete. It fails to explain what the tool returns or any post-creation behavior, making it insufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema—no examples, relationships, or usage tips for the nested parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Creates a new Vapi tool' clearly states the action and the resource. It distinguishes from sibling tools like create_assistant or create_call due to the explicit mention of 'tool'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for creation. The schema indicates 'type' is required, but the description does not elaborate on use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assistantB
Gets a Vapi assistant by ID
| Name | Required | Description | Default |
|---|---|---|---|
| assistantId | Yes | ID of the assistant to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits, but it only states a simple retrieval. It omits whether the operation is read-only, requires authentication, or has any side effects. The minimal description does not compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, direct sentence conveys the core purpose efficiently. While it lacks detail, for a simple get operation, the conciseness is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 parameter, no output schema, no annotations), the description is minimally adequate but lacks completeness regarding return value, error conditions, or behavioral traits. Could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter ('assistantId') with 100% coverage, so the description adds no extra meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Gets' and the resource 'Vapi assistant by ID,' making the purpose unambiguous. It naturally distinguishes itself from sibling tools like 'create_assistant' or 'list_assistants'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'list_assistants' for multiple, 'update_assistant' for modifications). No context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_callB
Gets details of a specific call
| Name | Required | Description | Default |
|---|---|---|---|
| callId | Yes | ID of the call to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral disclosure. It only says 'gets details' but does not specify whether it is read-only, what happens on missing IDs, or any authorization requirements. Lacks any behavioral context beyond the bare function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no extraneous words. Efficiently communicates the core purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description offers no details about return format, errors, or pagination. For a simple get tool, this may be sufficient, but the lack of any additional context (like example usage or notes) makes it incomplete for an agent to fully understand the behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (callId described as 'ID of the call to get'). The description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Gets details of a specific call'. It distinguishes from sibling tools like list_calls (listing) and create_call (creating), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or what to do if the call ID is invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_phone_numberC
Gets details of a specific phone number
| Name | Required | Description | Default |
|---|---|---|---|
| phoneNumberId | Yes | ID of the phone number to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description says 'Gets details' implying a read-only operation, but no annotations are provided to confirm safety. It does not disclose any behavioral traits such as rate limits, authentication requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It efficiently communicates the core purpose but does not earn its place with extra detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should at least hint at the return value (e.g., 'returns phone number details'). It does not, making it incomplete for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (phoneNumberId described adequately). The description adds no additional meaning beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Gets details' with a specific resource ('phone number'), distinguishing it from sibling tools like list_phone_numbers (list) and create_phone_number (create). However, it lacks specificity about what 'details' include.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. For example, it doesn't mention that list_phone_numbers should be used to get all numbers, and this is for a single number by ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toolB
Gets details of a specific tool
| Name | Required | Description | Default |
|---|---|---|---|
| toolId | Yes | ID of the tool to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only operation but does not explicitly state that no modifications occur or that it is safe. A simple 'Reads and returns tool details without side effects' would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence. No wasted words, but it is minimal. Could include more context without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and no output schema, the description is adequate. However, it does not hint at the return structure or any prerequisites (e.g., tool must exist), which would be helpful for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers toolId with 100% description, so the description adds no additional semantics. Baseline at 3 is appropriate. It could clarify the expected format (e.g., UUID), but is not necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Gets details of a specific tool' clearly identifies the action (getting) and the resource (tool). It distinguishes from siblings like list_tools by specifying a single tool. However, it omits what specific details are retrieved, making it slightly less than perfectly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives like list_tools. The description does not mention that this tool is for retrieving a single tool by ID, while list_tools is for enumerating all tools. This lack of differentiation forces the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assistantsA
Lists all Vapi assistants
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It says 'lists all' but does not mention pagination, limits, ordering, or any other behavioral traits beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, one sentence with no unnecessary words. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is adequate but lacks contextual depth such as scope (e.g., all assistants for the user) or any behavioral notes. Could be more complete but satisfies basic needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters (100% coverage), so the description does not need to add parameter details. Baseline is 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all Vapi assistants, using a specific verb and resource. It distinguishes from sibling tools like get_assistant (single) and create_assistant (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_assistant for a single assistant). Does not specify any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_callsB
Lists all Vapi calls
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'Lists all Vapi calls' with no details on return size, pagination, or rate limits, leaving behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Could be slightly more informative without bloat, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameters, and no annotations, the description is too minimal; it doesn't explain return format, pagination, or side effects for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema; schema description coverage is 100%. Description adds no extra param info but baseline for 0 params is 4, and the description is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Lists' and resource 'Vapi calls', distinguishing it from siblings like get_call (single call) and list_assistants (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; e.g., no mention that get_call is for a specific call or that list_assistants lists different resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_phone_numbersA
Lists all Vapi phone numbers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic function. It does not disclose behavioral traits such as read-only nature, pagination, rate limits, or any filters. The description is too sparse to inform about potential side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is maximally concise and focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is minimally adequate. However, it lacks information on pagination, response format, or whether all phone numbers are truly listed without limits. It could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters in the input schema, so the description does not need to explain param semantics. Baseline for 0 params is 4, and no additional information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Lists' and clearly identifies the resource 'all Vapi phone numbers'. It distinguishes from sibling tools like list_assistants, list_calls, list_tools, and get_phone_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or when not to use it. The intended usage context is implicit but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_toolsA
Lists all Vapi tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency, but it only states 'Lists all Vapi tools.' It does not disclose whether the operation is read-only, if there are any side effects, rate limits, or pagination behavior. This is insufficient for a comprehensive understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that concisely states the tool's function with no extraneous words. It is appropriately front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description is adequate but minimal. It could benefit from mentioning return format, pagination, or ordering, which are common for list operations. Still, it is complete enough for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. Since there are no parameters to explain, the description does not need to add parameter semantics. Baseline for 0 parameters is 4, and no deficiency is noted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lists all Vapi tools' clearly specifies the verb (lists) and the resource (Vapi tools). It distinguishes from sibling tools like list_assistants and list_phone_numbers by naming the specific resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the name and description imply it is the sole tool for listing tools, there is no mention of context, restrictions, or alternatives, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assistantC
Updates an existing Vapi assistant
| Name | Required | Description | Default |
|---|---|---|---|
| llm | No | New LLM configuration | |
| name | No | New name for the assistant | |
| voice | No | New voice configuration | |
| toolIds | No | New IDs of tools to use with this assistant | |
| assistantId | Yes | ID of the assistant to update | |
| transcriber | No | New transcription configuration | |
| firstMessage | No | First message to say to the user | |
| instructions | No | New instructions for the assistant | |
| firstMessageMode | No | This determines who speaks first, either assistant or user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only states 'Updates an existing Vapi assistant'. It omits side effects, idempotency, partial update behavior, error conditions, and required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it lacks structure or additional context such as usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema, no annotations), the description provides insufficient context about behavior, return values, or how updates are applied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description adds no extra meaning beyond the schema's property descriptions (e.g., 'New name', 'New IDs').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Updates') and the resource ('an existing Vapi assistant'), distinguishing it from siblings like create_assistant, get_assistant, and list_assistants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_assistant or get_assistant, nor are there prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_toolC
Updates an existing Vapi tool
| Name | Required | Description | Default |
|---|---|---|---|
| sms | No | SMS tool configuration - to send text messages | |
| name | No | Name of the function/tool | |
| toolId | Yes | ID of the tool to update | |
| function | No | Custom function tool configuration - for custom server-side functions | |
| apiRequest | No | API Request tool configuration - for HTTP API integration | |
| description | No | Description of what the function/tool does | |
| transferCall | No | Transfer call tool configuration - to transfer calls to destinations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should compensate but only states 'updates an existing Vapi tool'. It does not disclose whether the update is partial or full, what permissions are needed, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise. However, it is too terse and omits essential behavioral details, making it less helpful than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, nested objects, no output schema, no annotations), the description is insufficient. It does not explain the update semantics (e.g., partial vs full replacement) or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a detailed description in the schema. The tool description adds no additional meaning beyond what is already provided in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'updates' and the resource 'existing Vapi tool', making the purpose unambiguous. However, it does not specify which fields can be updated, relying on the schema for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_tool or delete_tool. The description lacks any context about typical usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action: assistants, calls, phone numbers, and tools are clearly separated, with list/get/create/update operations uniquely identified. There is no functional overlap between any tools.
All 13 tools follow a consistent verb_noun pattern with lowercase and underscores, such as list_assistants, create_call, get_phone_number. The convention is uniform across all resources.
With 13 tools spanning three core resource types, the count is well within the optimal range. Each tool serves a distinct purpose with no redundancy.
Assistants and tools have full CRUD except delete operations, while phone numbers lack create/update/delete and calls lack update/delete. These are minor gaps but may reflect API constraints; core read and update workflows are covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Integrate Connext AI into agentic workflows, enabling Connext product-aware assistance.
A Model Context Protocol server for Wix AI tools
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables integration with Vapi's voice AI platform to manage assistants, create and schedule phone calls with dynamic variables, and manage phone numbers through function calling.601MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI models to send messages to Lark users and manage calendar events (list, create, add attendees) through the Model Context Protocol.136MIT
- AlicenseNot gradedqualityDmaintenanceProvides a standardized interface for interacting with Falai's tools and services through the Model Context Protocol, enabling AI assistants to leverage Falai capabilities.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to seamlessly take HubSpot actions and interact with your HubSpot data through the Model Context Protocol.22,588MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/VapiAI/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server