Vapi MCP for Cursor
This project implements a Model Context Protocol (MCP) server for integrating Vapi’s voice AI capabilities with Cursor.
Setup Instructions
1. Project Structure
The Vapi MCP server is structured as follows:
vapi-mcp-server/- Main server codesrc/- TypeScript source filesdist/- Compiled JavaScript output.env- Environment variables for API keys
2. Environment Configuration
Create a .env file in the vapi-mcp-server directory with the following variables:
# Vapi API Keys
VAPI_ORG_ID=your-org-id
VAPI_PRIVATE_KEY=your-private-key
VAPI_KNOWLEDGE_ID=your-knowledge-id
VAPI_JWT_PRIVATE=your-jwt-private
# Environment
NODE_ENV=development
3. Building the Server
To build the server:
cd vapi-mcp/vapi-mcp-server
npm install
npm run build
4. Configuration in Cursor
Important: Avoiding “Client Closed” Errors
When configuring the Vapi MCP server in Cursor’s MCP settings, pay attention to the following crucial details:
Working Directory: The
cwdparameter is required to ensure the server runs in the correct directory and can access the.envfile properly.Environment Variables: Must be explicitly provided in the configuration, even if they exist in the
.envfile.Module Type: The server uses ES modules, so the
package.jsonmust include"type": "module".
Here’s the correct configuration for .cursor/mcp.json:
"Vapi Voice AI Tools": {
"command": "node",
"type": "stdio",
"args": [
"/Users/matthewcage/Documents/AA-GitHub/MCP/vapi-mcp/vapi-mcp-server/dist/index.js"
],
"cwd": "/Users/matthewcage/Documents/AA-GitHub/MCP/vapi-mcp/vapi-mcp-server",
"env": {
"VAPI_ORG_ID": "your-org-id",
"VAPI_PRIVATE_KEY": "your-private-key",
"VAPI_KNOWLEDGE_ID": "your-knowledge-id",
"VAPI_JWT_PRIVATE": "your-jwt-private",
"NODE_ENV": "development"
}
}
Troubleshooting
“Client Closed” Error in Cursor
If you see “Client Closed” in the Cursor MCP Tools panel:
- Check Working Directory: Ensure the
cwdparameter is set correctly in your mcp.json - Verify Environment Variables: Make sure all required environment variables are passed in the configuration
- Check Module Type: Ensure
package.jsonhas"type": "module" - Inspect Permissions: Make sure the dist/index.js file is executable (
chmod +x dist/index.js) - Test Server Directly: Run the server manually to check for errors:
cd vapi-mcp/vapi-mcp-server node --trace-warnings dist/index.js
Module Not Found Errors
If you get “Error: Cannot find module” when running:
- Check Working Directory: Are you running from the correct directory?
- Rebuild: Try rebuilding the project with
npm run build - Dependencies: Ensure all dependencies are installed with
npm install
Available Tools
The Vapi MCP server provides the following tools:
- vapi_call - Make outbound calls using Vapi’s voice AI
- vapi_assistant - Manage voice assistants (create, get, list, update, delete)
- vapi_conversation - Retrieve conversation details from calls
Lessons Learned
When integrating with Cursor’s MCP:
- Always specify the
cwdparameter to ensure the server runs in the correct directory - Pass all required environment variables directly in the MCP configuration
- For ES modules, ensure package.json has
"type": "module"and tsconfig.json uses appropriate module settings - Test the server directly before configuring in Cursor
- Always specify the
The server command path must be absolute and correctly formed in the Cursor MCP config
Using stdio transport type is required for proper integration with Cursor
Vapi Voice AI Tools
Project Details
- mrgeeko/vapi-mcp
- Last Updated: 4/7/2025
Recomended MCP Servers
大模型代理策略:支持 OpenAI 代理、nginx方式、node方式
unreal-blender-mcp
MCP Server for Worldpay APIs
A simple POC to expose Mythic as a MCP server
This repo is an extension of PostgreSQL MCP Server providing functionalities to create tables, insert entries, update entries,...
This read-only MCP Server allows you to connect to Microsoft Teams data from Claude Desktop through CData JDBC...





