Skip to main content
Glama
@jam-jam/convert-mcp

@jam-jam/convert-mcp

by titouannwtt

Get a separated stem

jj_stems_get_file

Fetch a stem file (vocals, instrumental, drums, bass, other) or stems.zip from a completed separation job; download it locally or return a short-lived signed URL.

Instructions

Fetches one result file of a finished separation (GET /stem-tool/jobs/{id}/files/{name}): a stem (vocals, instrumental, drums, bass, other, depending on the number of stems chosen; .mp3, or .flac when the job has format "flac") or all of them as stems.zip. By default the file is downloaded and its local path is returned; with download=false only the signed link is returned, valid for about 60 seconds. Files are kept 24 hours after the separation (410 afterwards); the job must be in state "done" (409 otherwise). Costs no quota (read rate limit).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>",
      "name": "<name>"
    },
    "name": "jj_stems_get_file"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesJob id returned by jj_stems_separate.
nameYesFile to fetch. A name not produced by this job (e.g. drums.mp3 after a 2-stem separation, or a .mp3 name for a FLAC job) answers 404.
downloadNotrue (default): download to a local file and return its path. false: return only the short-lived signed URL.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.2

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: default behavior (downloads and returns a local path), the download=false mode returning a signed link valid ~60 seconds, 24-hour retention with 410, 409 for unfinished jobs, and that it consumes no quota (read rate limit). These are exactly the operational traits an agent needs before invoking.

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

Conciseness4/5

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

One dense but front-loaded sentence plus a parenthetical; every clause (stem types, format, download mode, retention, state precondition, quota) carries information. It is slightly congested but not wasteful.

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 3-parameter read tool with no output schema and no annotations, the description supplies format variability, conditional status codes, retention limits, dual return modes, and cost profile. Nothing an agent needs to call it correctly appears to be missing.

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 already 100%, so the baseline is 3; the description earns extra by clarifying that which stem names exist depends on the number of stems chosen by the job and that .flac names only apply to FLAC-format jobs. That adds real semantic meaning beyond the raw enum, though the schema's own per-parameter descriptions already cover most of the ground.

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 uses a specific verb+resource ('Fetches one result file of a finished separation') and even names the underlying endpoint, so it is unambiguously distinct from jj_stems_get_job (which returns job status, not a file). An agent can select it without opening the schema.

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?

It states the preconditions clearly: the job must be in state 'done' (409 otherwise) and files expire 24 hours after separation (410 afterwards). It also explains the download=true vs download=false split. It does not explicitly point to sibling tools such as jj_stems_get_job for checking job state, so it falls just short of full alternative-routing guidance.

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