Skip to main content
Glama
StemSplit

StemSplit Vocal Remover & Stem Separator

Official
by StemSplit

Separate Stems

separate_stems

Extract vocal, instrumental, or multi-stem components from audio files or direct URLs. Choose from two to six stems, with adjustable quality and output format.

Instructions

Submit an audio file or direct audio URL to StemSplit for stem separation. By default (wait=true), this polls until completion and downloads all output stems to disk, returning local file paths the LLM can hand off to other tools. For YouTube URLs, use separate_youtube instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesLocal absolute path (e.g. /Users/me/song.mp3 or ~/Music/song.wav) or direct audio URL (https://...). Do NOT pass YouTube or SoundCloud URLs here — use separate_youtube for YouTube, separate_soundcloud for SoundCloud.
outputTypeNoWhich stems to extract. VOCALS, INSTRUMENTAL, BOTH (default), FOUR_STEMS (vocals+drums+bass+other), SIX_STEMS (adds piano+guitar — requires quality=BEST).BOTH
qualityNoProcessing quality. FAST, BALANCED, or BEST (default).BEST
outputFormatNoOutput file format. MP3 (default), WAV, or FLAC.MP3
fileNameNoOptional display name for the job (defaults to the source filename).
waitNoIf true (default), block until the job completes and download stems to disk. If false, return job_id immediately and let the caller poll get_job.
timeoutSecondsNoMaximum time to wait for completion when wait=true. Default 600s (10 minutes).
pollIntervalSecondsNoHow often to check job status when wait=true. Default 5s.
outputDirNoDirectory to write stems into when wait=true. Defaults to ~/Downloads/stemsplit/<jobId>/.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry the burden. It explains the default polling behavior, downloading stems to disk, and returning local file paths. It mentions alternative wait=false behavior. However, it omits details like error handling, response format, or potential limitations (e.g., file size limits).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no fluff. The first sentence states the core action, the second describes the default behavior and output, and the third provides a sibling differentiation. Information is front-loaded efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters fully described in the schema and no output schema, the description covers the main workflow, default settings, and a key sibling distinction. It could mention the return type more explicitly (local paths) but overall sufficient for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the default workflow (wait=true), the download behavior, and the alternative tool for YouTube. It complements the schema's detailed parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'submit an audio file or direct audio URL to StemSplit for stem separation' and specifies that it returns local file paths. It also distinguishes from sibling 'separate_youtube' by directing users to that tool for YouTube URLs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: use for audio files/URLs, not YouTube (referring to separate_youtube). However, it does not mention separate_soundcloud for SoundCloud URLs, though the schema does. The default behavior (wait=true) is explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/StemSplit/stemsplit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server