Audio MCP Server Documentation - Vocal Remover

Audio MCP Server Documentation

Connect the VocalRemover audio toolbox to your AI assistant and start editing audio with natural language.

Overview

The server speaks the Model Context Protocol over Streamable HTTP. Point any MCP client at the endpoint below and authenticate with a VocalRemover API token. Files are passed as public http(s) URLs (up to 100 MB) and results come back as downloadable URLs.

Endpoint:  https://vocalremover.com/mcp/audio
Transport: Streamable HTTP (POST)
Auth:      Authorization: Bearer YOUR_API_TOKEN

Quickstart

  1. Get a free API token on the API page.
  2. Add the server to your client using a snippet below.
  3. Ask: "Remove the vocals from ."

Authentication

  1. Create a free account and open the API page.
  2. Generate an API token.
  3. Add it as a Bearer token in your MCP client config (see below).

The free audio tools and the paid AI tools both use this token; the difference is only whether conversion-minute credits are charged.

Client setup

Add the server to your AI client. Claude Desktop uses the mcp-remote bridge; Cursor, Windsurf, Cline, Zed and Claude Code support remote MCP natively with a Bearer token; ChatGPT and the Claude.ai web app add it as a custom connector and sign in via OAuth (see below).

Claude Desktop

Add to claude_desktop_config.json, then restart Claude.

{
  "mcpServers": {
    "vocalremover": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://vocalremover.com/mcp/audio",
        "--header", "Authorization:${AUTH}"
      ],
      "env": { "AUTH": "Bearer YOUR_API_TOKEN" }
    }
  }
}

Cursor · Windsurf · Cline · Zed

Native remote MCP — add to the client's mcp.json.

{
  "mcpServers": {
    "vocalremover": {
      "url": "https://vocalremover.com/mcp/audio",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Claude Code (CLI)

One command — native remote MCP, no bridge.

claude mcp add --transport http \
  vocalremover https://vocalremover.com/mcp/audio \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Anthropic Messages API (build your own agent)

Attach the server to a Claude API call with the MCP connector beta header:

client.beta.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Remove vocals from https://example.com/song.mp3"}],
    mcp_servers=[{
        "type": "url",
        "url": "https://vocalremover.com/mcp/audio",
        "name": "vocalremover",
        "authorization_token": "YOUR_API_TOKEN",
    }],
    betas=["mcp-client-2025-11-20"],
)

ChatGPT (custom connector)

In ChatGPT settings, enable Developer mode, open Apps & Connectors → Create, and add a custom connector pointing at the server URL below. ChatGPT runs the OAuth flow — you sign in to VocalRemover and approve access; no token to paste. (Requires a plan with custom connectors, e.g. Plus/Pro/Business/Enterprise.)

https://vocalremover.com/mcp/audio

No custom-connector access on your plan? Create a Custom GPT instead and add an Action that imports our OpenAPI schema with API-key (Bearer) auth.

Claude.ai web app (custom connector)

In Claude.ai, go to Settings → Connectors → Add custom connector, paste the server URL, and connect. Claude runs the OAuth flow — sign in to VocalRemover and approve. (Available on Pro, Max, Team and Enterprise.)

https://vocalremover.com/mcp/audio

Tools

Tool Tier Parameters What it does
probe_audio Free url Return a file's duration, bitrate, format and estimated credit cost.
convert_audio Free url, format Re-encode audio to mp3, wav, flac, ogg, m4a, aac or opus and return a download URL.
trim_audio Free url, start_seconds, duration_seconds Cut a section out of an audio file and return a download URL.
extract_audio Free url Extract the audio track from a video file as MP3.
separate_audio Credits url, task Start AI separation (vocals, instrumental, lead_vocals, stems, denoise, dereverb). Returns a job_id.
check_audio_job Free job_id Poll a separation job and get the output download URLs when it is done.
check_balance Free Show how many conversion-minute credits the account has left.

Uploading local files

Tools take a public URL. If the file is on the user's machine, call the free create_upload tool to get a one-time upload URL, POST the file to it (no token needed), then pass the returned file_url to any audio tool. The upload link and file expire after 1 hour. Never base64 a real audio file — it is far too large for a tool argument.

Assistant calls:  create_upload { "filename": "song.mp3" }
            ->  { "upload_url": "https://vocalremover.com/api/uploads/01h...",
                  "file_url":   "https://vocalremover.com/storage/mcp-uploads/01h....mp3",
                  "upload_page":"https://vocalremover.com/upload/01h..." }

# Upload the bytes (model's sandbox, a terminal, or the user's browser):
curl -F "file=@song.mp3" "https://vocalremover.com/api/uploads/01h..."
            ->  { "file_url": "https://vocalremover.com/storage/mcp-uploads/01h....mp3" }

Assistant calls:  separate_audio { "url": "", "task": "vocals" }

No way to make web requests (e.g. a sandboxed assistant)? Send the user the upload_page link to drop the file in a browser, then continue with the file_url.

Example: remove vocals

Just ask your assistant in plain language:

You: Remove the vocals from https://example.com/song.mp3

Assistant calls:  separate_audio { "url": "...", "task": "vocals" }
            ->  { "job_id": "01H...", "status": "in_process_queue" }

Assistant calls:  check_audio_job { "job_id": "01H..." }
            ->  { "done": true, "outputs": [
                    { "track": "vocals",        "download_url": "https://..." },
                    { "track": "instrumentals", "download_url": "https://..." }
                ] }

The free tools work the same way — for example "convert this file to wav" calls convert_audio and returns a download URL instantly, with no credits used.

Things to try

  • Remove the vocals from https://example.com/song.mp3 and give me the karaoke track.
  • Split this track into stems — vocals, drums, bass, guitar and piano.
  • Convert https://example.com/interview.m4a to MP3 at 128 kbps.
  • Extract just the audio from this video: https://example.com/clip.mp4
  • Denoise this podcast and remove the room echo: https://example.com/episode.wav
  • Make an 8D version and trim it to 30 seconds.
  • What is the duration and bitrate of https://example.com/track.flac?
  • Check my credit balance.

Limits & notes

  • Input files must be public http(s) URLs, up to 100 MB each.
  • AI separation runs asynchronously — always poll check_audio_job for the result.
  • Credits are charged per minute of audio, only for AI separation.
  • The free audio tools never use credits.

Privacy & security

  • Your audio is fetched from the URL you pass, processed, and deleted — we do not store your files.
  • Your API token is scoped to your account; revoke it any time from the API page.
  • The endpoint is HTTPS only; we block URLs that resolve to private/internal addresses.

Troubleshooting

"Authentication required": The token is missing or the header is wrong — it must be exactly Authorization: Bearer YOUR_API_TOKEN.

"Could not download the file": The URL must be public — no login wall, and it must not redirect to a private address.

A separation job seems stuck: AI jobs are asynchronous — poll check_audio_job after 10–30 seconds until done is true.

Claude Desktop will not connect: Make sure Node/npx is installed and on your PATH, use mcp-remote@latest, and fully restart Claude after editing the config.

Back to the MCP server overview

MB Kimarta
Company code: 307547815
VAT No.: LT100019494111
Address: Maironio g. 14-11, Kaunas, Lithuania
Email: info@vocalremover.com