Connect the VocalRemover audio toolbox to your AI assistant and start editing audio with natural language.
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
The free audio tools and the paid AI tools both use this token; the difference is only whether conversion-minute credits are charged.
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).
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" }
}
}
}
Native remote MCP — add to the client's mcp.json.
{
"mcpServers": {
"vocalremover": {
"url": "https://vocalremover.com/mcp/audio",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
One command — native remote MCP, no bridge.
claude mcp add --transport http \
vocalremover https://vocalremover.com/mcp/audio \
-H "Authorization: Bearer YOUR_API_TOKEN"
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"],
)
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.
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
| 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. |
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.
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.
"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.
©2026 VocalRemover. All rights reserved.