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을 다시 시작합니다.
지엑스피1
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 연결
SSE(Server-Sent Events) 전송을 통해 Vapi의 MCP 서버에 연결하려면:
SSE Transport를 사용하여 모든 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>"
}
},
}
}테스트
이 프로젝트에는 두 가지 유형의 테스트가 있습니다.
단위 테스트
단위 테스트는 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: 특정 전화번호의 세부 정보를 가져옵니다.
바피 도구
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