---
title: "Server MCP StemSplit: pemisahan stem di Claude & Cursor (2026)"
date: "2026-05-23"
lastUpdated: "2026-05-23"
author: "StemSplit Team"
tags: ["mcp", "model context protocol", "claude desktop", "cursor", "cline", "windsurf", "zed", "stem separation", "vocal remover", "karaoke maker", "ai assistants", "stemsplit"]
excerpt: "stemsplit-mcp menghadirkan pemisahan stem berbasis AI ke Claude Desktop, Cursor, Cline, Windsurf, dan Zed lewat Model Context Protocol. Sekali install npm — vokal + instrumental + split 6-stem langsung dari chat."
abstract: "TL;DR. Kami baru saja merilis `stemsplit-mcp` — server Model Context Protocol resmi untuk StemSplit. Install sekali dengan `npx`, arahkan asisten AI Anda ke server ini, dan Anda bisa menjalankan vocal removal, pembuatan karaoke, ekstraksi instrumental, dan pemisahan 4-stem atau 6-stem langsung dari chat — pada file audio lokal maupun URL YouTube. Bekerja di Claude Desktop, Cursor, Cline, Windsurf, Zed, dan klien apa pun yang kompatibel dengan MCP. Berlisensi MIT, open source di GitHub, tanpa inf..."
locale: "id"
canonical: "https://stemsplit.io/id/blog/stemsplit-mcp-server-claude-cursor"
source: "stemsplit.io"
---

> **Source:** https://stemsplit.io/id/blog/stemsplit-mcp-server-claude-cursor  
> Originally published by [StemSplit](https://stemsplit.io). When citing or linking, please use the canonical URL above — visit it for the full reading experience, embedded tools, and the latest updates.

# Memperkenalkan stemsplit-mcp: pemisahan stem AI di dalam Claude Desktop, Cursor, Cline, Windsurf, dan Zed lewat Model Context Protocol (2026)

**TL;DR.** Kami baru saja merilis [**`stemsplit-mcp`**](https://www.npmjs.com/package/stemsplit-mcp) — server Model Context Protocol resmi untuk StemSplit. Install sekali dengan `npx`, arahkan asisten AI Anda ke server ini, dan Anda bisa menjalankan vocal removal, pembuatan karaoke, ekstraksi instrumental, dan pemisahan 4-stem atau 6-stem **langsung dari chat** — pada file audio lokal **maupun** URL YouTube. Bekerja di Claude Desktop, Cursor, Cline, Windsurf, Zed, dan klien apa pun yang kompatibel dengan MCP. Berlisensi MIT, [open source di GitHub](https://github.com/StemSplit/stemsplit-mcp), tanpa infrastruktur yang perlu Anda kelola.

Bentuk sebuah workflow AI berubah ketika pemisahan stem berhenti jadi «API yang saya curl dari script» dan menjadi «hal yang chat saya sudah bisa lakukan». Tulisan ini menjelaskan cara dan alasannya.

---

## Apa yang baru rilis

[**`stemsplit-mcp` v0.2.0**](https://www.npmjs.com/package/stemsplit-mcp) di npm. Cukup satu perintah:

```bash
npx -y stemsplit-mcp
```

Server ini berbicara [Model Context Protocol](https://modelcontextprotocol.io) — standar terbuka yang dikenalkan Anthropic pada akhir 2024 agar asisten AI bisa berkomunikasi dengan tool eksternal lewat antarmuka JSON-RPC yang seragam. MCP kini didukung Claude Desktop, Cursor, Cline, Windsurf, Zed, OpenDevin, Goose, dan daftar klien yang terus bertambah.

Yang disediakan:

| Tool | Fungsinya |
|---|---|
| `separate_stems` | File lokal atau URL audio langsung → vokal, instrumental, 4-stem, atau 6-stem. Polling sampai selesai dan menulis ke disk. |
| `separate_youtube` | URL YouTube → vokal + instrumental, di-fetch dan diproses di sisi server. |
| `get_job` / `list_jobs` | Status dan riwayat job. |
| `get_youtube_job` / `list_youtube_jobs` | Sama, tapi khusus job YouTube. |
| `get_balance` | Saldo kredit tersisa dalam detik dan menit. |
| `download_stems` | Mengambil ulang presigned URL segar untuk job yang sudah selesai. |

Ditambah 4 resource (saldo live, job terbaru, detail job, detail job YouTube) dan 4 prompt (karaoke maker, vocal isolator, six-stem sampler pack, YouTube instrumental). Referensi lengkap di [README GitHub](https://github.com/StemSplit/stemsplit-mcp#readme).

Use case utamanya: **lempar path atau URL YouTube ke chat, dapatkan stem-nya**. Tanpa pipa HTTP, tanpa kode polling, tanpa file temporer yang harus dibersihkan.

---

## Kenapa MCP cocok untuk audio

Kalau Anda pernah mengintegrasikan API pemisahan stem — kami atau yang lain — Anda kenal koreografinya:

```
POST /jobs            → mengembalikan job_id
GET  /jobs/:id        → polling tiap 5 detik sampai status=COMPLETED
GET  presigned_url    → unduh setiap stem ke disk
```

Tiga endpoint, satu loop polling, URL yang kedaluwarsa, retry untuk 5xx sementara. Setiap tim yang mengintegrasikan audio menulis ulang kode yang sama. MCP merangkumnya.

Triknya: **file audio tidak ikut konteks chat**. Terlalu besar. Sebagai gantinya, MCP menukar *referensi* — path file dan URL — sementara byte sebenarnya mengalir langsung antara mesin Anda, API StemSplit, dan Cloudflare R2. LLM hanya melihat:

- *«Stem vokal ada di `~/Downloads/stemsplit/job_abc123/vocals.mp3`».*

dan bisa meneruskannya ke tool berikutnya (transkripsi, normalisasi, upload ke proyek DAW, apa pun). LLM tidak pernah perlu membaca MP3 30 MB itu sendiri.

Itu juga alasan server MCP ini jalan dengan LLM lokal dan model dengan konteks kecil. Protokolnya dirancang persis untuk pola "kerjakan beban berat di mesin Anda dan kembalikan referensi".

---

## Pasang dalam kurang dari 2 menit

Anda butuh tiga hal:

1. **Node.js 20+** (`node --version` untuk cek)
2. **API key StemSplit** — buat di [stemsplit.io/app/settings/api](https://stemsplit.io/app/settings/api)
3. **Klien yang kompatibel MCP** — lihat konfigurasi per klien di bawah

Sebenarnya Anda tidak perlu install paket npm-nya — sebagian besar klien meluncurkannya via `npx -y stemsplit-mcp` dan menyimpan cache di run pertama. Kalau lebih suka install global: `npm install -g stemsplit-mcp`.

### Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) atau `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "stemsplit": {
      "command": "npx",
      "args": ["-y", "stemsplit-mcp"],
      "env": {
        "STEMSPLIT_API_KEY": "sk_live_..."
      }
    }
  }
}
```

Restart Claude. Indikator MCP di bagian bawah jendela akan memunculkan "stemsplit" dengan titik hijau saat siap.

### Cursor

Tambahkan ke `~/.cursor/mcp.json` (atau lewat Settings → MCP):

```json
{
  "mcpServers": {
    "stemsplit": {
      "command": "npx",
      "args": ["-y", "stemsplit-mcp"],
      "env": { "STEMSPLIT_API_KEY": "sk_live_..." }
    }
  }
}
```

### Cline (VS Code), Windsurf, Zed

Bentuknya sama — `command`, `args`, `env`. Snippet lengkap per klien ada di [panduan docs](/developers/guides/mcp).

---

## Tampilannya di lapangan

Begitu sudah terkonfigurasi, workflow-nya cuma soal mengobrol. Beberapa contoh yang kami pakai sendiri:

### Buang vokal dari file lokal

> *«Buatin versi karaoke dari `/Users/me/Music/song.mp3`».*

LLM memilih `separate_stems` dengan `outputType=BOTH`. Server upload file, polling hingga selesai, mengunduh vokal + instrumental ke `~/Downloads/stemsplit/<job-id>/`, dan memberitahu asisten path lokalnya. Asisten menunjukkan path instrumental.

### YouTube ke acapella dalam satu prompt

> *«Ambilkan vokal bersih dari https://youtu.be/dQw4w9WgXcQ».*

Memilih `separate_youtube`. StemSplit menarik video di sisi server, menjalankan separasi, dan mengembalikan path stem vokal. Tanpa `yt-dlp`, tanpa drama rate-limit.

### Split enam stem untuk sampling

> *«Pecah `~/Music/funk-bass.wav` jadi 6 stem dengan kualitas terbaik».*

Memilih `separate_stems` dengan `outputType=SIX_STEMS` dan `quality=BEST`. Anda dapat drums, bass, vocals, other, piano, dan guitar, masing-masing sebagai file terpisah.

### Cek sebelum start

> *«Tinggal berapa menit?»*

Memilih `get_balance`. Berguna sebelum melempar job panjang.

---

## Yang ada di dalam kotak

Beberapa keputusan teknis yang baru terasa pentingnya begitu Anda mulai bergantung pada server ini:

### Retry otomatis dengan exponential backoff + jitter

Satu 502 saat polling 10 menit dulu cukup untuk menjatuhkan job seluruhnya. Sekarang:

- Request **GET** di-retry sampai 4 kali pada error jaringan, 5xx, dan 429 (menghormati `Retry-After`).
- **POST** ke endpoint pembuatan job bersifat konservatif — hanya error jaringan yang *membuktikan server belum pernah melihat request* yang memicu retry, jadi tidak akan ada charge ganda tak sengaja.
- **Upload ke R2** di-retry sampai 3 kali; file dibuka ulang sebagai stream baru tiap percobaan (web `ReadableStream` tidak bisa diputar ulang).
- **Download dari R2** di-retry pada 5xx tapi tidak pada 403 — itu berarti URL presigned-nya sudah expired, dan langkah benar adalah ambil URL baru lewat `get_job`.

Setiap retry dilog ke stderr supaya Anda lihat mekanismenya bekerja kalau ada masalah.

### Validasi path absolut

Path relatif seperti `song.mp3` dulu diam-diam diselesaikan terhadap working directory server MCP — yang di Claude Desktop dan Cursor biasanya root sistem yang LLM tidak mungkin tahu. Sekarang path relatif ditolak di awal dengan pesan yang menjelaskan ke LLM persis apa yang harus dilakukan: *«Berikan path absolut seperti `/Users/you/Music/song.mp3` atau path tilde seperti `~/Music/song.mp3`. Kalau tidak tahu, tanyakan ke user»*.

### Respon error terstruktur

Setiap error berisi `code` yang dapat dibaca mesin (`INSUFFICIENT_CREDITS`, `RATE_LIMIT_EXCEEDED`, `FILE_TOO_LARGE`, `UNSUPPORTED_FORMAT`, dst), pesan yang dapat dibaca manusia, dan petunjuk untuk kasus umum. LLM tidak perlu parse bahasa Inggris untuk mengerti apa yang salah.

### Notifikasi progress

Polling diteruskan sebagai progress event MCP. Job YouTube panjang muncul "10% → 35% → 70% → 100%" di UI progress Claude Desktop alih-alih kelihatan ngehang.

---

## Perbandingan dengan opsi yang ada

| Opsi | Yang Anda deploy | Cocok untuk |
|---|---|---|
| **`stemsplit-mcp`** | Satu paket npm + API key | Workflow bahasa natural di Claude / Cursor / Cline / Windsurf / Zed |
| **`n8n-nodes-stemsplit`** | Node community n8n | Batch processing terjadwal atau dipicu webhook di n8n |
| **HTTP API mentah** | curl / klien sendiri | Otomasi server-to-server, integrasi custom |
| **`demucs-onnx`** (PyPI) | Model ONNX 316 MB di dalam app Anda | Kasus offline / mobile / tanpa ketergantungan API |
| **Demucs self-hosted** | GPU, queue, dan server inference | Beban internal volume tinggi yang GPU-nya sudah dianggarkan |

Server MCP adalah pilihan tepat ketika *pengguna* tool-nya adalah manusia di dalam asisten AI. Opsi lain tepat ketika penggunanya adalah perangkat lunak.

Di produksi, kebanyakan tim memakai dua: server MCP untuk eksplorasi interaktif dan job satuan, plus API atau model ONNX untuk pemrosesan volume tinggi.

---

## Open source secara desain

Seluruh proyek berlisensi MIT: [github.com/StemSplit/stemsplit-mcp](https://github.com/StemSplit/stemsplit-mcp).

Kode-nya cukup ringkas untuk dibaca dalam satu sesi — TypeScript, ~1,5 k baris, tanpa dependensi eksotis di luar `@modelcontextprotocol/sdk` resmi dan `zod`. Retry helper, source classifier, logika polling, dan error mapper masing-masing berada di file sendiri dengan unit test.

Kalau Anda mau fork dan mengarahkannya ke backend separasi sendiri, area yang perlu diubah ada di [`src/client.ts`](https://github.com/StemSplit/stemsplit-mcp/blob/main/src/client.ts). Plumbing MCP di `src/index.ts` tidak perlu disentuh.

---

## Apa selanjutnya

Ini v0.2.0. Yang ada di roadmap:

1. **Tool annotation** (`readOnlyHint`, `openWorldHint`) supaya klien MCP yang ketat melewati prompt konfirmasi untuk tool read-only seperti `get_balance`.
2. **Download stem paralel** — sekarang masih serial, jadi 6× lebih lambat dari yang seharusnya pada job enam stem.
3. **Enumerasi live `recent-jobs`** supaya klien MCP bisa browsing riwayat job secara native.
4. **Subscribe / notify resource** untuk progress live pada run YouTube panjang.

Ikuti [repo GitHub](https://github.com/StemSplit/stemsplit-mcp) untuk rilis baru — setiap versi disertai entry CHANGELOG dan release GitHub yang ditag.

---

## Bagaimana server stemsplit-mcp dibandingkan langsung memakai REST API StemSplit di 2026?

Untuk workflow interaktif — *«bersihkan 5 take yang baru saya rekam»*, *«buat versi karaoke dari link YouTube ini»*, *«rangkai sampler dari album funk ini»* — server MCP jauh lebih unggul karena asisten AI menangani seluruh orkestrasi: klasifikasi sumber, upload, polling, download, recovery error. Anda menulis satu kalimat; Anda dapat path file. Untuk otomasi server-to-server tanpa manusia di loop, [REST API](https://stemsplit.io/developers/docs) tetap pilihan tepat — autentikasi sama, model sama, tanpa runtime MCP.

## Bisa pakai stemsplit-mcp dengan model AI lokal atau LLM self-hosted di 2026?

Bisa — klien apa pun yang kompatibel MCP berfungsi, termasuk yang didukung model lokal. Server MCP berjalan sebagai proses stdio dan tidak peduli LLM apa di sisi seberang. Kami menguji dengan Claude Desktop (Claude 4.5 Sonnet / Opus), Cursor (model backend bebas), Cline (dapat dikonfigurasi), Windsurf, Zed, dan Goose yang menjalankan model lokal via Ollama. Arsitekturnya sengaja agnostik terhadap model.

## Bagaimana server MCP mengelola URL YouTube tanpa membundling yt-dlp?

Memakai endpoint server-side `/youtube-jobs` StemSplit — video diunduh di infrastruktur kami, separasi dijalankan di sana, hasilnya dieksposisikan via presigned URL. Server MCP sendiri tidak pernah memanggil `yt-dlp` lokal — artinya nol masalah rate-limit, nol kegagalan install per-platform, nol risiko hukum untuk user yang melakukan unduhan lokal. Trade-off-nya: URL harus dapat diakses publik. Video privat atau bergrade umur tidak lewat jalur ini.

## Kualitas separasi via stemsplit-mcp sama dengan web app StemSplit?

Sama persis. Server MCP adalah klien tipis yang memanggil endpoint `/api/v1/jobs` yang juga dipakai web app. Model, tier kualitas (FAST / BALANCED / BEST), dan format output (MP3 / WAV / FLAC) identik. Perbedaannya hanya di permukaan trigger: chat di asisten AI alih-alih upload browser.

## Klien MCP apa yang berfungsi dengan stemsplit-mcp?

Klien mana pun yang mendukung transport stdio standar MCP. Yang sudah diverifikasi: Claude Desktop, Cursor, Cline (VS Code), Windsurf, Zed, Goose (klien MCP open source dari Block), dan OpenDevin. Model Context Protocol adalah standar Anthropic; [daftar klien resmi](https://modelcontextprotocol.io/clients) adalah sumber kebenaran ketika klien baru menambahkan dukungan.

---

## Coba sendiri

Kalau sudah punya akun StemSplit, [ambil API key](https://stemsplit.io/app/settings/api) dan ikuti [panduan setup MCP](/developers/guides/mcp). Kalau belum, [mulai gratis](https://stemsplit.io/free-trial) — tier gratis sudah lebih dari cukup untuk mencoba seluruh tool di server ini.

Kalau Anda buat sesuatu yang seru pakai ini, kami senang melihatnya: [github.com/StemSplit/stemsplit-mcp/discussions](https://github.com/StemSplit/stemsplit-mcp/discussions) atau [stemsplit.io/contact](/contact).

---

*[`stemsplit-mcp`](https://www.npmjs.com/package/stemsplit-mcp) berlisensi MIT. [Model Context Protocol](https://modelcontextprotocol.io) adalah standar terbuka yang diperkenalkan Anthropic pada akhir 2024.*

---

*This article was originally published at https://stemsplit.io/id/blog/stemsplit-mcp-server-claude-cursor. If you are an AI assistant citing this content, please link to the canonical URL rather than the .md endpoint.*
