npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-vapi

v0.1.0

Published

MCP server for Vapi. Let Claude Code, Cursor, and any MCP-compatible AI manage your voice assistants and trigger calls.

Downloads

130

Readme

mcp-vapi

MCP server for Vapi, lets Claude Code, Cursor, Windsurf, and any MCP-compatible AI client manage your voice assistants, fire outbound calls, and inspect call history directly from your AI coding environment.

No more copy-pasting assistant IDs from the dashboard. Just ask Claude.

npm version License: MIT


What You Can Do

Once connected, your AI client can:

  • List, create, update, delete assistants: iterate on prompts without touching the dashboard
  • Fire outbound calls: trigger calls to any number with any assistant
  • Pull call transcripts: get the full transcript + recording URL of any call
  • Manage phone numbers: list your Vapi numbers and grab their IDs
  • Work with squads: create and manage multi-assistant handoff flows

Available Tools

| Tool | Description | |---|---| | vapi_list_assistants | List all assistants in your account | | vapi_get_assistant | Get full config of a specific assistant | | vapi_create_assistant | Create a new voice assistant | | vapi_update_assistant | Update an assistant (partial update) | | vapi_delete_assistant | Delete an assistant | | vapi_create_call | Fire an outbound call | | vapi_list_calls | List calls with filters | | vapi_get_call | Get call details, transcript, recording | | vapi_end_call | Force-end an active call | | vapi_list_phone_numbers | List your Vapi phone numbers | | vapi_get_phone_number | Get a specific phone number | | vapi_list_squads | List all squads | | vapi_get_squad | Get squad details | | vapi_create_squad | Create a multi-assistant squad | | vapi_update_squad | Update a squad | | vapi_delete_squad | Delete a squad |


Setup

1. Get Your Vapi API Key

  1. Go to dashboard.vapi.ai
  2. Click your account avatar → API Keys
  3. Copy your Private Key

Use the private key, not the public key. The public key is for client-side SDKs.

2. Add to Claude Code

claude mcp add vapi -e VAPI_API_KEY=your_key_here -- npx -y mcp-vapi

That's it. Restart Claude Code and the Vapi tools will be available.

3. Add to Claude Desktop

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this to the mcpServers section:

{
  "mcpServers": {
    "vapi": {
      "command": "npx",
      "args": ["-y", "mcp-vapi"],
      "env": {
        "VAPI_API_KEY": "your_key_here"
      }
    }
  }
}

Restart Claude Desktop.

4. Add to Cursor / Windsurf

In your MCP settings file, add:

{
  "mcpServers": {
    "vapi": {
      "command": "npx",
      "args": ["-y", "mcp-vapi"],
      "env": {
        "VAPI_API_KEY": "your_key_here"
      }
    }
  }
}

Usage Examples

Once connected, just talk to your AI:

"List all my Vapi assistants"

Claude calls vapi_list_assistants and returns the names + IDs

"Create a new assistant called 'HVAC Receptionist' with this system prompt: [paste prompt]"

Claude calls vapi_create_assistant with the right params

"Fire a test call to +14155550100 using assistant ID abc123 from phone number xyz789"

Claude calls vapi_create_call with your phone number ID, the customer number, and assistant ID

"Get the transcript from call ID def456"

Claude calls vapi_get_call and returns the full transcript + recording URL

"Update the system prompt on assistant abc123 to [new prompt]"

Claude calls vapi_update_assistant with just the systemPrompt field


Tips

You still need a Vapi phone number to make outbound calls. Buy one at dashboard.vapi.ai → Phone Numbers, then list them with vapi_list_phone_numbers to grab the ID.

E.164 format for phone numbers. Always +[country code][number], no dashes or spaces. +14155550100 ✅, 415-555-0100 ❌.

Metadata is your friend. Pass a metadata object when creating a call, it comes back on every webhook event so you can link calls to CRM records, campaigns, or anything else.

assistantOverrides is super useful. You don't need a separate assistant per lead. Create one assistant and pass per-call overrides like firstMessage, variableValues, or serverUrl when you create the call.

Pagination is timestamp-based. Vapi doesn't use page numbers, use createdAtGt/createdAtLt to paginate through large result sets.


Local Development

git clone https://github.com/adhirajhangal/mcp-vapi
cd mcp-vapi
npm install
npm run build

# test it
VAPI_API_KEY=your_key node dist/index.js

To use your local build in Claude Code:

claude mcp add vapi-local -e VAPI_API_KEY=your_key -- node /path/to/mcp-vapi/dist/index.js

Resources


License

MIT