{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm-vapi-ai-mcp-server","slug":"vapi-ai-mcp-server","name":"@vapi-ai/mcp-server","type":"mcp","url":"https://github.com/VapiAI/mcp-server#readme","page_url":"https://unfragile.ai/vapi-ai-mcp-server","categories":["mcp-servers"],"tags":["vapi","mcp","model-context-protocol","ai","claude","voice-api","tool-calling"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm-vapi-ai-mcp-server__cap_0","uri":"capability://tool.use.integration.mcp.protocol.server.implementation.for.vapi.voice.api","name":"mcp protocol server implementation for vapi voice api","description":"Implements the Model Context Protocol (MCP) specification as a server that exposes Vapi's voice API capabilities through standardized MCP resources and tools. The server translates MCP client requests (from Claude or other MCP-compatible clients) into Vapi API calls, handling protocol serialization, request routing, and response marshaling. Uses stdio or HTTP transport to communicate with MCP clients, enabling seamless integration of voice AI capabilities into Claude and other LLM applications without custom integration code.","intents":["I want to use Vapi's voice API directly from Claude without writing custom API integration code","I need to expose Vapi voice capabilities as standardized MCP tools that any MCP client can discover and use","I want to build a voice-enabled AI agent that can make phone calls through Vapi using Claude as the reasoning engine"],"best_for":["AI developers building voice agents with Claude as the LLM backbone","Teams integrating Vapi voice capabilities into existing MCP-compatible applications","Builders prototyping multi-modal AI systems combining text reasoning with voice interaction"],"limitations":["Requires Vapi API key and valid Vapi account with active credits or subscription","MCP protocol overhead adds latency compared to direct REST API calls (typically 50-150ms per round-trip)","Limited to Vapi's supported voice models and features — no custom voice synthesis or advanced audio processing","Stdio transport has bandwidth limitations for large audio payloads or high-frequency tool calls"],"requires":["Node.js 16+ or compatible JavaScript runtime","Vapi API key (obtainable from https://dashboard.vapi.ai)","MCP client that supports stdio or HTTP transport (Claude Desktop, custom MCP client, etc.)","@vapi-ai/mcp-server package from npm"],"input_types":["MCP tool call requests (JSON-RPC 2.0 format)","Vapi API parameters (phone numbers, assistant configs, call settings)","Text prompts and conversation context from MCP clients"],"output_types":["MCP tool results (JSON-RPC 2.0 responses)","Call status and metadata (call IDs, duration, transcripts)","Structured call logs and analytics data"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_1","uri":"capability://tool.use.integration.vapi.call.initiation.and.management.through.mcp.tools","name":"vapi call initiation and management through mcp tools","description":"Exposes Vapi's call creation and management APIs as discoverable MCP tools that clients can invoke to initiate phone calls, configure assistant behavior, and retrieve call status. The server translates MCP tool calls into authenticated Vapi REST API requests, handling credential management, request validation, and response transformation. Supports parameterized call configuration including assistant selection, phone number targeting, and custom variables, enabling dynamic voice interaction workflows driven by LLM reasoning.","intents":["I want to programmatically initiate a phone call to a specific number using a Vapi assistant from within a Claude conversation","I need to configure call parameters (assistant, phone number, variables) dynamically based on LLM reasoning before making the call","I want to retrieve the status and results of a Vapi call that was initiated earlier in an agent workflow"],"best_for":["AI agents that need to make outbound calls as part of multi-step workflows","Customer service automation systems using voice as a primary interaction channel","Developers building voice-first AI applications with Claude as the orchestration layer"],"limitations":["Call initiation is asynchronous — responses return call IDs immediately but actual call completion happens out-of-band","No built-in polling or webhook integration — clients must manually query call status or implement external polling","Limited to Vapi's supported phone numbers and regions — international calling subject to Vapi's carrier limitations","Call parameters must match Vapi's schema — no validation or transformation of invalid configurations before API submission"],"requires":["Valid Vapi API key with call-making permissions","Pre-configured Vapi assistant (created in Vapi dashboard)","Destination phone number in E.164 format or Vapi-compatible format","MCP client capable of invoking tools with structured parameters"],"input_types":["MCP tool parameters: assistant ID, phone number, custom variables, call configuration options","Vapi API authentication credentials (API key passed via environment or configuration)"],"output_types":["Call initiation response: call ID, status, timestamp","Call status queries: current state, duration, transcript (when available)","Call metadata: assistant used, phone number, variables, cost"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_2","uri":"capability://memory.knowledge.assistant.configuration.and.metadata.exposure.via.mcp.resources","name":"assistant configuration and metadata exposure via mcp resources","description":"Exposes Vapi assistant configurations and metadata as MCP resources that clients can query and list, enabling dynamic assistant selection and configuration inspection. The server fetches assistant definitions from Vapi's API and presents them as structured MCP resources with full configuration details (voice settings, system prompts, tools, etc.). Clients can discover available assistants, inspect their capabilities, and reference them by ID when initiating calls, supporting dynamic workflow adaptation based on assistant features.","intents":["I want to list all available Vapi assistants and their configurations to choose the right one for a task","I need to inspect an assistant's system prompt, voice settings, and available tools before using it in a call","I want to dynamically select an assistant based on the conversation context or user requirements"],"best_for":["Multi-assistant voice systems where assistant selection is context-dependent","Developers building admin or monitoring dashboards for Vapi assistants","AI agents that need to reason about which assistant is best suited for a given task"],"limitations":["Resource listing is read-only — assistant creation and modification must happen outside the MCP server (in Vapi dashboard)","Metadata refresh is not real-time — changes to assistants in Vapi dashboard may take time to propagate to MCP clients","No filtering or search capabilities — clients must enumerate all assistants and filter client-side","Assistant configurations may contain sensitive data (API keys, system prompts) — requires careful access control"],"requires":["Valid Vapi API key with read permissions for assistants","MCP client that supports resource listing and retrieval","Pre-existing Vapi assistants in the account"],"input_types":["MCP resource queries: list all assistants, get specific assistant by ID"],"output_types":["Structured assistant metadata: ID, name, voice settings, system prompt, tools, model configuration","Assistant list with summary information for discovery"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_3","uri":"capability://tool.use.integration.stdio.and.http.transport.abstraction.for.mcp.protocol.communication","name":"stdio and http transport abstraction for mcp protocol communication","description":"Implements both stdio and HTTP transport layers for MCP protocol communication, allowing the server to operate in different deployment contexts (Claude Desktop via stdio, web applications via HTTP). The server handles transport-specific serialization (JSON-RPC 2.0 over stdio with newline delimiters, HTTP POST with JSON bodies), connection lifecycle management, and error handling. Clients can choose transport based on their environment, enabling the same MCP server implementation to work across desktop, web, and server-side applications.","intents":["I want to run the Vapi MCP server in Claude Desktop using stdio transport for local integration","I need to deploy the Vapi MCP server as an HTTP service that web applications can connect to","I want to support both desktop and web clients connecting to the same MCP server implementation"],"best_for":["Developers deploying MCP servers in heterogeneous environments (desktop + web + server)","Teams building Claude Desktop integrations that also need web accessibility","Infrastructure teams standardizing on MCP for AI tool integration across platforms"],"limitations":["Stdio transport has inherent latency and bandwidth limitations — not suitable for high-frequency or large-payload operations","HTTP transport requires network connectivity and introduces additional security considerations (CORS, authentication, TLS)","No automatic transport selection — clients must explicitly configure which transport to use","Transport-specific error handling may differ — stdio errors manifest as process termination, HTTP errors as status codes"],"requires":["Node.js runtime with stdio and HTTP server capabilities","For stdio: parent process that can spawn and manage child processes (Claude Desktop, custom MCP client)","For HTTP: network accessibility and optional TLS certificates for production deployments"],"input_types":["MCP protocol messages in JSON-RPC 2.0 format","Transport-specific framing (newline-delimited for stdio, HTTP POST body for HTTP)"],"output_types":["MCP protocol responses in JSON-RPC 2.0 format","Transport-specific response framing (stdout for stdio, HTTP response body for HTTP)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_4","uri":"capability://safety.moderation.vapi.api.authentication.and.credential.management","name":"vapi api authentication and credential management","description":"Manages Vapi API authentication by accepting API keys through environment variables or configuration files and automatically injecting credentials into all outbound Vapi API requests. The server handles credential validation, error handling for authentication failures, and secure credential storage (avoiding hardcoding in logs or responses). Implements request signing and header injection for Vapi's REST API, abstracting authentication complexity from MCP clients.","intents":["I want to securely provide my Vapi API key to the MCP server without hardcoding it in client code","I need the MCP server to automatically authenticate all Vapi API calls on my behalf","I want to rotate or update my Vapi credentials without restarting the MCP server"],"best_for":["Production deployments requiring secure credential management","Teams using environment-based configuration for secrets (Docker, Kubernetes, CI/CD)","Developers building multi-tenant systems where credentials vary per request"],"limitations":["Credentials must be provided at server startup — no dynamic credential injection per request","No built-in credential rotation or expiration handling — relies on external secret management systems","API key is stored in memory — vulnerable to memory dumps or process inspection if server is compromised","No audit logging of API calls — cannot track which operations used which credentials"],"requires":["Valid Vapi API key (obtainable from https://dashboard.vapi.ai)","Environment variable VAPI_API_KEY or configuration file with API key","Secure environment for server deployment (not exposed to untrusted users)"],"input_types":["Vapi API key as environment variable or configuration"],"output_types":["Authenticated Vapi API requests with Authorization headers"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_5","uri":"capability://safety.moderation.error.handling.and.response.transformation.for.vapi.api.failures","name":"error handling and response transformation for vapi api failures","description":"Implements comprehensive error handling for Vapi API failures, translating Vapi-specific error responses into MCP-compatible error formats that clients can understand and act upon. The server catches HTTP errors, network failures, and API validation errors from Vapi, transforms them into MCP error responses with descriptive messages, and provides actionable error codes. Handles transient failures with retry logic (exponential backoff) for idempotent operations, improving reliability of voice call workflows.","intents":["I want clear error messages when a Vapi API call fails so I can debug integration issues","I need the MCP server to automatically retry transient failures (network timeouts, rate limits) without client intervention","I want to distinguish between recoverable errors (rate limit) and permanent errors (invalid assistant ID) in my client code"],"best_for":["Production voice agents requiring high reliability and graceful degradation","Teams building error recovery logic into AI workflows","Developers debugging integration issues between Claude and Vapi"],"limitations":["Retry logic only applies to idempotent operations — non-idempotent calls (initiating calls) may fail without retry to avoid duplicate operations","Error messages are limited to Vapi's API response format — may lack context about the original MCP request","No exponential backoff configuration — uses fixed retry strategy that may not suit all use cases","Timeout handling is basic — no circuit breaker pattern to prevent cascading failures"],"requires":["Vapi API that returns structured error responses","MCP client that can handle error responses in JSON-RPC 2.0 error format"],"input_types":["Vapi API error responses (HTTP status codes, error bodies)"],"output_types":["MCP error responses with error codes and descriptive messages","Retry attempts with exponential backoff for transient failures"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_6","uri":"capability://safety.moderation.request.validation.and.parameter.schema.enforcement","name":"request validation and parameter schema enforcement","description":"Validates incoming MCP tool calls against Vapi API parameter schemas before submitting requests, catching invalid configurations early and providing detailed validation errors to clients. The server enforces type checking, required field validation, and constraint checking (e.g., phone number format, assistant ID existence) at the MCP layer. Uses JSON Schema or similar validation mechanisms to ensure all requests conform to Vapi's API expectations, reducing failed API calls and improving user experience.","intents":["I want validation errors for invalid parameters before the MCP server attempts to call Vapi's API","I need to understand what parameters are required and what formats are expected for each Vapi operation","I want to catch configuration errors early in development rather than discovering them in production"],"best_for":["Development teams building voice agents with strict quality requirements","Automated testing frameworks that need to validate MCP tool parameters","Developers new to Vapi who need guidance on valid parameter formats"],"limitations":["Validation is limited to schema-level checks — cannot validate business logic (e.g., whether an assistant actually exists without API call)","Schema definitions must be maintained in sync with Vapi's API — outdated schemas may reject valid parameters","Validation errors may be verbose and technical — not always user-friendly for non-technical users","No custom validation rules — limited to standard JSON Schema constraints"],"requires":["JSON Schema definitions for Vapi API parameters","MCP client that can handle validation error responses"],"input_types":["MCP tool call parameters in JSON format"],"output_types":["Validation success (request proceeds to Vapi API)","Validation error responses with detailed error messages and field-level feedback"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-vapi-ai-mcp-server__cap_7","uri":"capability://data.processing.analysis.call.transcript.and.result.retrieval.with.structured.data.extraction","name":"call transcript and result retrieval with structured data extraction","description":"Provides MCP tools to retrieve completed call transcripts, recordings, and structured results from Vapi, extracting and formatting call data for downstream processing. The server queries Vapi's call history API, transforms raw call data into structured formats (JSON with transcript, duration, cost, etc.), and exposes this data through MCP resources or tool results. Supports filtering and pagination for retrieving call history, enabling agents to analyze past interactions and extract insights.","intents":["I want to retrieve the transcript of a completed Vapi call to analyze what was discussed","I need to extract structured data from call results (duration, cost, outcome) for logging or analytics","I want to list recent calls and filter them by date, assistant, or phone number for reporting"],"best_for":["Voice agents that need to analyze call outcomes and extract insights","Analytics and reporting systems tracking voice interaction metrics","Quality assurance teams reviewing call transcripts and agent performance"],"limitations":["Transcript retrieval is asynchronous — transcripts may not be immediately available after call completion (typically 5-30 seconds delay)","No real-time transcript streaming — only post-call transcript retrieval is supported","Transcript accuracy depends on Vapi's speech-to-text engine — may contain errors or misrecognitions","Call data retention is subject to Vapi's retention policies — old calls may be deleted automatically","No built-in analytics or aggregation — clients must implement their own analysis logic"],"requires":["Completed Vapi calls with call IDs","Vapi API key with read permissions for call history","MCP client that can handle structured data responses"],"input_types":["Call ID for specific call retrieval","Filter parameters: date range, assistant ID, phone number, status"],"output_types":["Structured call data: ID, timestamp, duration, cost, status","Call transcript with speaker labels and timing","Call metadata: assistant used, phone number, variables, outcome"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":31,"verified":false,"data_access_risk":"high","permissions":["Node.js 16+ or compatible JavaScript runtime","Vapi API key (obtainable from https://dashboard.vapi.ai)","MCP client that supports stdio or HTTP transport (Claude Desktop, custom MCP client, etc.)","@vapi-ai/mcp-server package from npm","Valid Vapi API key with call-making permissions","Pre-configured Vapi assistant (created in Vapi dashboard)","Destination phone number in E.164 format or Vapi-compatible format","MCP client capable of invoking tools with structured parameters","Valid Vapi API key with read permissions for assistants","MCP client that supports resource listing and retrieval"],"failure_modes":["Requires Vapi API key and valid Vapi account with active credits or subscription","MCP protocol overhead adds latency compared to direct REST API calls (typically 50-150ms per round-trip)","Limited to Vapi's supported voice models and features — no custom voice synthesis or advanced audio processing","Stdio transport has bandwidth limitations for large audio payloads or high-frequency tool calls","Call initiation is asynchronous — responses return call IDs immediately but actual call completion happens out-of-band","No built-in polling or webhook integration — clients must manually query call status or implement external polling","Limited to Vapi's supported phone numbers and regions — international calling subject to Vapi's carrier limitations","Call parameters must match Vapi's schema — no validation or transformation of invalid configurations before API submission","Resource listing is read-only — assistant creation and modification must happen outside the MCP server (in Vapi dashboard)","Metadata refresh is not real-time — changes to assistants in Vapi dashboard may take time to propagate to MCP clients","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.15959192874743922,"quality":0.26,"ecosystem":0.6000000000000001,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.902Z","last_scraped_at":"2026-04-22T08:08:13.650Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":314,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=vapi-ai-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=vapi-ai-mcp-server"}},"signature":"r4nomgvX/zHFtEnmv04q1bVxhuhbbGP9fyTq2AxK1G9xzWMszwzHPT3OM0rhJBdfnbz3vfrITRG7YUTIRODCAw==","signedAt":"2026-06-21T03:32:52.947Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/vapi-ai-mcp-server","artifact":"https://unfragile.ai/vapi-ai-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=vapi-ai-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}