Releases: StemSplit/stemsplit-mcp
v0.2.0
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
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-mcpOr run directly:
npx -y stemsplit-mcpConfiguration
See README for Claude Desktop and Cursor config snippets.
Tools
separate_stems— local files and direct audio URLsseparate_youtube— YouTube videos via server-side downloadget_job/list_jobs— job status and historyget_youtube_job/list_youtube_jobs— YouTube job status and historyget_balance— remaining creditsdownload_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.