Use Svara from Claude, Cursor or any MCP client

Let your AI assistant upload a recording and send a native LinkedIn voice note with the Svara MCP server.

The Svara MCP server lets AI assistants that speak the Model Context Protocol (Claude Desktop, Claude Code, Cursor, VS Code and others) use Svara directly. Your assistant can:

  • Upload a recording (MP3, M4A/AAC, OGG/Opus, WAV or WebM, up to 4 MB) and get back an audio_url.
  • Validate a send with a dry run, without delivering anything.
  • Send a native LinkedIn voice note to someone you can already message on LinkedIn.
  • Check delivery (queued, sent, failed, expired) and your plan usage.

The server is open source: github.com/zenmode87/svara-mcp. It is published on npm as svara-mcp.


Prerequisites

  1. A Svara API key. Create one in your dashboard.
  2. The Svara Chrome extension installed.
  3. You are signed in to LinkedIn in that Chrome browser.
  4. Node.js 20 or newer (for npx).

Setup

Every client runs the same command, npx -y svara-mcp, with your key in the SVARA_API_KEY environment variable.

Claude Desktop

Add to claude_desktop_config.json (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "svara": {
      "command": "npx",
      "args": ["-y", "svara-mcp"],
      "env": { "SVARA_API_KEY": "your_svara_api_key" }
    }
  }
}

Claude Code

claude mcp add svara --env SVARA_API_KEY=your_svara_api_key -- npx -y svara-mcp

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "svara": {
      "command": "npx",
      "args": ["-y", "svara-mcp"],
      "env": { "SVARA_API_KEY": "your_svara_api_key" }
    }
  }
}

VS Code

Add to .vscode/mcp.json:

{
  "inputs": [
    { "type": "promptString", "id": "svara-api-key", "description": "Svara API key", "password": true }
  ],
  "servers": {
    "svara": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "svara-mcp"],
      "env": { "SVARA_API_KEY": "${input:svara-api-key}" }
    }
  }
}

Tools

ToolInputsWhat it does
upload_audiofile_pathUploads a local audio file and returns an audio_url. Sends nothing.
send_linkedin_voice_noterecipient, audio_url or file_path, dry_run (default true)Sends a voice note. recipient is a LinkedIn profile URL (preferred) or name. Give exactly one of audio_url or file_path (a file is uploaded first). Nothing is sent unless dry_run is false.
get_send_statusidDelivery status of a send.
get_usagenoneCurrent plan usage and limits.

Example prompt:

Upload ~/Desktop/intro.m4a and do a dry run of sending it to https://www.linkedin.com/in/example. If it validates, send it for real.


Safety

A real send reaches a real person. When dry_run is false, send_linkedin_voice_note sends a LinkedIn message from your own LinkedIn account, and it cannot be unsent.

  • dry_run defaults to true, which validates the request without sending anything.
  • The send tool is marked as destructive, so MCP clients that support tool annotations ask you to confirm before it runs. Keep that confirmation on.
  • Only send to people you can already message on LinkedIn, and only messages you would send yourself.

Sends count against your plan like any other send. Plans and limits: pricing. When you hit a limit, the tool error includes an upgrade link.


Links

Ask Svara

Hey! I'm the Svara assistant. Ask me anything about integrating voice notes into your product.

Powered by Svara