Skip to main content

MCP Server Guide

~5 min

Run StemSplit from inside Claude, Cursor, Cline, Windsurf, Zed, and any MCP client

What is the StemSplit MCP server?

stemsplit-mcp is the official Model Context Protocol server for StemSplit. Install it once with npm, point your AI assistant at it, and you can run vocal removal, karaoke generation, instrumental extraction, and 4-stem / 6-stem separation directly from chat — on local audio files or YouTube URLs.

Prerequisites

  • Node.js 20 or newer (node --version)
  • StemSplit account with an API key (generate one)
  • An MCP-compatible client (Claude Desktop, Cursor, Cline, Windsurf, Zed, etc.)
1

Install the MCP server

You don't actually need to install anything — the easiest path is to let your MCP client run it via npx. If you prefer a global install:

npm install -g stemsplit-mcp
2

Get your API key

  1. Log in to StemSplit Settings
  2. Open the API Keys section
  3. Click Create New Key, name it "MCP Client", and copy the sk_live_… value
3

Configure your MCP client

Pick the client you use. The config is the same shape everywhere — point at npx -y stemsplit-mcp and set STEMSPLIT_API_KEY in the env.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows:

{
  "mcpServers": {
    "stemsplit": {
      "command": "npx",
      "args": ["-y", "stemsplit-mcp"],
      "env": {
        "STEMSPLIT_API_KEY": "sk_live_..."
      }
    }
  }
}

Restart Claude Desktop and the server will appear in the MCP indicator at the bottom of the chat window.

Cursor

Add to ~/.cursor/mcp.json (or use Settings → MCP):

{
  "mcpServers": {
    "stemsplit": {
      "command": "npx",
      "args": ["-y", "stemsplit-mcp"],
      "env": {
        "STEMSPLIT_API_KEY": "sk_live_..."
      }
    }
  }
}

Cline (VS Code)

Open Cline's settings, find MCP Servers, click Edit MCP Settings, and add the same JSON block as above. Cline reloads automatically.

Windsurf

In Settings → Cascade → MCP Servers, add the samemcpServers block. Windsurf will start the server when you open the AI panel.

Zed

Add to your Zed settings.json:

{
  "assistant": {
    "mcp_servers": {
      "stemsplit": {
        "command": "npx",
        "args": ["-y", "stemsplit-mcp"],
        "env": { "STEMSPLIT_API_KEY": "sk_live_..." }
      }
    }
  }
}
4

Try it

Open a new chat in your MCP client and try one of these prompts:

Remove vocals from a local song
Separate the stems of /Users/me/Music/track.mp3 and give me the instrumental.
Build a karaoke track from YouTube
Make a karaoke version of https://youtube.com/watch?v=...
Full 6-stem split for sampling
Split ~/Music/funk.wav into all 6 stems at the best quality and tell me where they are.
Check balance
How many minutes do I have left on my StemSplit account?

Available tools

ToolWhat it does
separate_stemsRun a local file or direct audio URL through StemSplit. Picks vocals, instrumental, both, 4-stem, or 6-stem output. Polls until done and downloads stems to your disk.
separate_youtubeSubmit a YouTube URL — StemSplit fetches the video server-side, separates it, and returns vocals + instrumental.
get_job / list_jobsCheck status and history of stem jobs.
get_youtube_job / list_youtube_jobsSame as above, scoped to YouTube jobs.
get_balanceCurrent credit balance in seconds and minutes.
download_stemsRe-download outputs from any completed job with fresh presigned URLs (handy if you closed the original chat).

The server also ships 4 resources (live balance, recent jobs, job detail, YouTube job detail) and 4 prompts (karaoke maker, vocal isolator, 6-stem sampler pack, YouTube instrumental). See the README for the full reference.

Common use cases

🎤 Karaoke from any song

Drop a YouTube URL or local MP3 into your AI assistant; get back the instrumental in seconds.

🥁 Stem extraction for production

Ask for "the drum stem from this track" and have it saved to your DAW's import folder.

🎙️ Transcription prep

Isolate vocals first, then feed them to your transcription tool for cleaner output.

🎛️ Sample pack building

Six-stem split a session, drop the result into a sampler, and start chopping.

Pro tips

  • • Always pass absolute paths to separate_stems — relative paths resolve against the MCP server's cwd, not your editor's.
  • • Use SIX_STEMS only with quality=BEST (the model only ships this combination).
  • • Set STEMSPLIT_DEFAULT_OUTPUT_DIR in your env to send stems to a specific folder by default.
  • • Stem URLs expire after 1 hour — use download_stems to refresh them on old jobs.