Skip to content

Releases: StemSplit/stemsplit-mcp

v0.2.0

23 May 20:40

Choose a tag to compare

Highlights

  • Retry transient failures across API, R2 uploads, and R2 downloads with exponential backoff + jitter. A single 502 during polling no longer kills the entire job. Honors HTTP `Retry-After` on 429s.
  • Reject relative local paths up-front so the LLM gets a clear, actionable error instead of a confusing "File not found: /song.mp3" downstream.

Details

Retry policy

Surface Attempts Retries on
GET API 4 network errors, 5xx, 429 (Retry-After)
POST /upload 3 network errors, 5xx, 429
POST /jobs, /youtube-jobs 3 network errors only (prevents accidental double-charge on 5xx)
R2 PUT (upload) 3 network errors, 5xx
R2 GET (download) 3 network errors, 5xx (never 403 — that means the presigned URL expired)

Every retry logs to stderr so you can see it working.

Relative-path rejection

`classifySource` now rejects:

  • Relative paths like `song.mp3` or `./Music/track.wav`
  • `file://` URIs

The error message tells the LLM exactly what to do: ask the user for an absolute or `~/`-anchored path.

Tests

64 passing (16 new). Covers retry helper, retry policy matrix, relative-path rejection, and non-retriable POST behavior.

Install

```bash
npx -y stemsplit-mcp@0.2.0
```

Upgrade

If you have it pinned in your MCP client config, change `@0.1.0` to `@0.2.0` (or drop the pin for `latest`).

v0.1.0

23 May 15:27

Choose a tag to compare

First release of stemsplit-mcp — a Model Context Protocol server that lets Claude, Cursor, ChatGPT, and other MCP-compatible AI assistants run AI stem separation on local audio files, direct URLs, and YouTube links via the StemSplit API.

Install

npm install -g stemsplit-mcp

Or run directly:

npx -y stemsplit-mcp

Configuration

See README for Claude Desktop and Cursor config snippets.

Tools

  • separate_stems — local files and direct audio URLs
  • separate_youtube — YouTube videos via server-side download
  • get_job / list_jobs — job status and history
  • get_youtube_job / list_youtube_jobs — YouTube job status and history
  • get_balance — remaining credits
  • download_stems — re-download stems with fresh presigned URLs

Resources & Prompts

  • 4 resources covering quickstart, model picker, format guide, and troubleshooting
  • 4 prompts for common workflows (acapella, karaoke, drum cover, multitrack remix)

Notes

Initial publish was a manual npm publish from local because npm rejects the first publish of a brand-new package with --provenance under stricter 2FA. Subsequent CI publishes from GitHub Actions will include provenance attestations.