Skip to main content
Glama

Split a song into stems (paid via x402)

split_audio

Separate a song at a public URL into stems. This is a PAID action via x402, settled in USDC on Base Sepolia (testnet): call once WITHOUT payment to receive payment requirements, then call again WITH the x402 payment receipt to start the split. Returns a job_id; poll get_split_result for the stem URLs. If the paid endpoint is switched off, the call returns an error; people can split in the browser at https://stemconsole.ai/ instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNovocals = Vocal Remover (2 stems: vocals, instrumental); fast = Basic Split (4 stems: vocals, drums, bass, other); full = Full Separation (6 stems, adds guitar and piano).vocals
paymentNox402 payment payload (base64 X-PAYMENT). Omit on the first call to receive the payment requirements.
filenameNoOptional filename hint if the URL has no audio extension.
audio_urlYesPublic URL of the audio file to split.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false and openWorld=true; the description goes well beyond them by disclosing the payment rail (USDC on Base Sepolia testnet), the exact two-call handshake, the error behavior when the endpoint is switched off, and the asynchronous job_id return. That is precisely the kind of behavioral context structured fields cannot carry.

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?

Four dense sentences with the core action front-loaded, followed by the payment handshake, the result-handoff, and the failure/fallback case. Every sentence contributes decision-relevant information and none is redundant.

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

Completeness5/5

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

For a paid, asynchronous tool with no output schema, the description covers the full lifecycle: how to obtain payment requirements, how to submit payment, that the immediate return is only a job_id, where the stem URLs come from, and what happens on failure. An agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the model enum and the `payment`/`filename`/`audio_url` semantics are already fully documented in the schema. The description reinforces the payment parameter's omit-first-call pattern but adds no syntax or format detail the schema lacks; baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('Separate a song at a public URL into stems') and adds the scope constraint that input comes from a public URL rather than an upload. The paid x402 framing further distinguishes it from free sibling tools like split_songs, so an agent can tell what this call is for at a glance.

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

Usage Guidelines5/5

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

Gives an explicit two-step invocation protocol (call without `payment` to get requirements, call again with the x402 receipt), names the sibling to poll for results (get_split_result), and provides a when-not path via the browser fallback if the paid endpoint is disabled. Nothing about when to use this versus alternatives is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources