§01 · MCP Server

One npx away from voice in your editor.

vaanivoice-mcp is a Model Context Protocol server that exposes the four public-API surfaces as typed tools. Drop the config into Claude Code, Cursor, Codex or Cline and your agent can mint voice sessions and provision meeting rooms without you wiring anything.

What it gives the agent

Four tools, mapping 1:1 to the public gateway. Each is a thin shim around a POST /api/public/v1/... call with a Zod-typed body and the standard set of error codes preserved.

ToolEndpointUse it for
vaani_create_textvoice_sessionPOST /textvoice/sessionReal-time voice WS (Gemini Live).
vaani_create_voicebot_sessionPOST /voicebot/sessionEmbed-snippet flavour of textvoice.
vaani_create_meeting_agent_roomPOST /meeting-agent/roomsLiveKit room + Vikash inside.
vaani_create_plain_meeting_roomPOST /meeting/roomsLiveKit room only — no AI.

Key management (/api/api-keys/*) is intentionally not exposed: those routes use Supabase session-cookie auth, not vv_live_…, so they would 401 from a CLI context. Mint and rotate keys in the dashboard.

Install

Terminalbash
npx -y vaanivoice-mcp

That is the only command you ever run by hand. Your MCP host invokes it for you via the config below.

Configure — Claude Code

File: ~/.config/claude-code/mcp.json (macOS / Linux) or %APPDATA%\\claude-code\\mcp.json (Windows).

mcp.jsonjson
{
  "mcpServers": {
    "vaanivoice": {
      "command": "npx",
      "args": ["-y", "vaanivoice-mcp"],
      "env": {
        "VAANI_API_KEY": "vv_live_REPLACE_ME"
      }
    }
  }
}

Configure — Cursor

File: ~/.cursor/mcp.json. Identical shape to Claude Code.

~/.cursor/mcp.jsonjson
{
  "mcpServers": {
    "vaanivoice": {
      "command": "npx",
      "args": ["-y", "vaanivoice-mcp"],
      "env": { "VAANI_API_KEY": "vv_live_REPLACE_ME" }
    }
  }
}

Configure — Codex

File: ~/.codex/config.toml.

config.tomltoml
[mcp_servers.vaanivoice]
command = "npx"
args = ["-y", "vaanivoice-mcp"]

[mcp_servers.vaanivoice.env]
VAANI_API_KEY = "vv_live_REPLACE_ME"

Configure — Cline

Open VS Code → Settings → Cline → MCP Servers, add an entry pointing to npx -y vaanivoice-mcp with VAANI_API_KEY in the env block. Cline reuses the Claude-Code config shape if you prefer JSON.

Verify

Restart your MCP host. In a fresh chat, paste:

Prompt
Use vaanivoice to create a plain meeting room titled "MCP smoke test".

You should get back a real room_url on vaanilabs.in/meet/<code> you can click. If you see 401 Invalid API key — your VAANI_API_KEY is wrong. If you see 402 insufficient_balance — top up the wallet at /billing.

Source & build

Code lives at packages/vaanivoice-mcp/ in the Converlane monorepo. Build with its own tsc:

Build from sourcebash
git clone https://github.com/vaanilabs/vaanivoice
cd vaanivoice/packages/vaanivoice-mcp
npm install
npm run build
node dist/index.js   # stdio server

The package is published unscoped as vaanivoice-mcp on npm — the @vaanilabs org was unavailable at the time of writing.