StemSplit Vocal Remover & Stem Separator
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STEMSPLIT_API_KEY | Yes | API key, must start with sk_live_ | |
| STEMSPLIT_API_BASE_URL | No | Override for self-hosted or staging | https://stemsplit.io/api/v1 |
| STEMSPLIT_DEFAULT_OUTPUT_DIR | No | Base directory where stems are saved | ~/Downloads/stemsplit |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| separate_stemsA | 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. |
| separate_youtubeA | Submit a YouTube URL to StemSplit. The server fetches the video, separates it into vocals and instrumental (MP3, BEST quality), and returns local file paths once complete. Use this for any youtube.com or youtu.be URL. |
| separate_soundcloudA | Submit a SoundCloud track URL to StemSplit. The server fetches the track, separates it into vocals and instrumental (MP3, BEST quality), and returns local file paths once complete. Use this for any soundcloud.com URL. |
| get_jobA | Fetch the latest state of a stem job, including fresh 1-hour presigned download URLs when COMPLETED. Use for jobs created via separate_stems. |
| list_jobsA | List the authenticated user's recent stem jobs, with optional status filter and pagination. Output URLs are NOT included here; use get_job for a specific job. |
| get_youtube_jobA | Fetch the latest state of a YouTube job, including fresh 1-hour presigned download URLs when COMPLETED. |
| list_youtube_jobsB | List the authenticated user's recent YouTube jobs, with optional status filter and pagination. |
| get_soundcloud_jobA | Fetch the latest state of a SoundCloud job, including fresh 1-hour presigned download URLs when COMPLETED. |
| list_soundcloud_jobsB | List the authenticated user's recent SoundCloud jobs, with optional status filter and pagination. |
| get_balanceA | Return the authenticated user's remaining StemSplit credit balance in seconds, minutes, and a human-readable string. |
| download_stemsA | Download the output stems of a COMPLETED job to a local directory. Presigned URLs are re-fetched fresh on every call so the 1-hour expiry is never a problem. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| karaoke | Take a source audio file or direct URL and produce a karaoke (instrumental-only) version. |
| isolate_dialogue | Extract just the vocals or dialogue from an audio source, removing music and background noise where the model can. |
| sampler_pack | Split an audio file into all six stems (vocals, drums, bass, other, piano, guitar) for sampling and remixing. |
| youtube_instrumental | Submit a YouTube URL and return a local path to the instrumental (no vocals). |
| soundcloud_instrumental | Submit a SoundCloud URL and return a local path to the instrumental (no vocals). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| balance | Live credit balance for the configured StemSplit API key. |
| recent-jobs | The 20 most recent stem jobs for the configured API key. |
TDQS
Scored across 11 tools
Each tool maps to a distinct action-resource combination: submitting, retrieving, listing, downloading, or checking balance, further split by source where needed. The separate_youtube and separate_soundcloud tools explicitly route by URL type, and get/list functions are namespaced to their job type, so an agent is unlikely to pick the wrong one.
All tools follow a lower_snake_case verb_noun pattern such as separate_*, get_*, list_*, and download_*. Source-specific variants like get_youtube_job and list_soundcloud_jobs extend the noun consistently without introducing a different convention.
With 11 tools, the surface is well scoped for a stem-separation service: three submission paths, matching job retrieval and listing for each, plus a download helper and a balance check. Every tool covers a needed part of the workflow without redundancy.
The core lifecycle is covered: submit, wait or poll, retrieve status and URLs, and download outputs for audio, YouTube, and SoundCloud jobs. Missing cancellation or deletion of jobs is a minor gap, but it does not block the main separation workflow.