Provides Vapi voice AI capabilities via MCP with Cursor for outbound calls, assistants, and conversations.
Configuration
View docs{
"mcpServers": {
"vapi_mcp": {
"command": "node",
"args": [
"/Users/matthewcage/Documents/AA-GitHub/MCP/vapi-mcp/vapi-mcp-server/dist/index.js"
],
"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"
}
}
}
}You deploy a dedicated MCP server that lets Cursor interact with Vapi’s voice AI capabilities. This server runs locally, exposes a standard input/output (stdio) interface, and uses environment variables to securely access your Vapi credentials. When configured correctly, you can manage outbound calls, voice assistants, and conversations through Cursor with reliable, scriptable automation.
Launch the Vapi MCP server from your environment and connect it to Cursor using the stdio transport. You will run a local process that Cursor communicates with over standard input/output. Start the server with the exact command and environment shown in the configuration example, ensuring Cursor points to the same working directory so it can locate the .env file and compiled assets.
After starting, you will see the server register its tools in Cursor, including vapi_call to initiate outbound calls, vapi_assistant to manage voice assistants, and vapi_conversation to retrieve call details. Use these tools to orchestrate voice interactions, manage assistants, or inspect conversations within your Cursor workflow.
Prerequisites: Node.js installed on your machine and a TypeScript project setup if you are building from source.
Step-by-step commands to build and run the MCP server locally:
cd vapi-mcp/vapi-mcp-server
npm install
npm run buildEnvironment configuration is required to connect to Vapi services. Create a file named .env inside the vapi-mcp-server directory and populate the keys shown in the example. If you are running Cursor in development, set NODE_ENV to development.
The MCP server uses ES modules, so ensure your package.json includes the type field set to module. This guarantees proper module resolution during runtime.
Configure the Cursor MCP client to run the local server via the stdio transport. You must provide the working directory (cwd) so the server can access its environment and compiled outputs, pass all necessary environment variables directly in the MCP configuration, and specify the absolute path to the startup script. The following configuration demonstrates the required shape and values.
"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"
}
}If you encounter a "Client Closed" message in Cursor MCP Tools, verify that the working directory (cwd) is correct, ensure all required environment variables are provided, confirm that the server is configured as an ES module (package.json contains "type": "module"), and check that the dist/index.js file is executable. You can also test the server directly by running it in your terminal to surface startup or runtime errors.
If you see module resolution errors, ensure you are in the correct project directory, rebuild the project with npm run build, and confirm all dependencies are installed with npm install.
Make outbound calls using Vapi's voice AI capabilities to initiate and manage communications.
Manage voice assistants by creating, retrieving, listing, updating, and deleting assistants.
Retrieve details about conversations from calls for analysis and auditing.