---
title: "MCP-сервер StemSplit: разделение стемов в 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 приносит ИИ-разделение стемов в Claude Desktop, Cursor, Cline, Windsurf и Zed через Model Context Protocol. Одна npm-установка — вокал, минусовка и сплит на 6 стемов прямо из чата."
abstract: "TL;DR. Мы только что выпустили `stemsplit-mcp` — официальный сервер Model Context Protocol для StemSplit. Установите его один раз через `npx`, направьте ИИ-ассистента на сервер, и можно запускать удаление вокала, генерацию караоке, извлечение минусовок и полное разделение на 4 или 6 стемов прямо из чата — на локальных аудиофайлах или YouTube-ссылках. Работает в Claude Desktop, Cursor, Cline, Windsurf, Zed и любом другом MCP-совместимом клиенте. Лицензия MIT, open source на GitHub, инфраструктуру..."
locale: "ru"
canonical: "https://stemsplit.io/ru/blog/stemsplit-mcp-server-claude-cursor"
source: "stemsplit.io"
---

> **Source:** https://stemsplit.io/ru/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.

# Представляем stemsplit-mcp: ИИ-разделение стемов внутри Claude Desktop, Cursor, Cline, Windsurf и Zed через Model Context Protocol (2026)

**TL;DR.** Мы только что выпустили [**`stemsplit-mcp`**](https://www.npmjs.com/package/stemsplit-mcp) — официальный сервер Model Context Protocol для StemSplit. Установите его один раз через `npx`, направьте ИИ-ассистента на сервер, и можно запускать удаление вокала, генерацию караоке, извлечение минусовок и полное разделение на 4 или 6 стемов **прямо из чата** — на локальных аудиофайлах **или** YouTube-ссылках. Работает в Claude Desktop, Cursor, Cline, Windsurf, Zed и любом другом MCP-совместимом клиенте. Лицензия MIT, [open source на GitHub](https://github.com/StemSplit/stemsplit-mcp), инфраструктуру держать не нужно.

Форма ИИ-воркфлоу меняется, когда разделение стемов перестаёт быть «API, в который я curl-ом стучусь из скрипта», и становится «штукой, которую мой чат и так умеет». В этом посте — как и зачем.

---

## Что только что вышло

[**`stemsplit-mcp` v0.2.0**](https://www.npmjs.com/package/stemsplit-mcp) на npm. Запуск — одна команда:

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

Сервер говорит на [Model Context Protocol](https://modelcontextprotocol.io) — открытом стандарте, который Anthropic выпустила в конце 2024 года, чтобы ИИ-ассистенты общались с внешними инструментами через единый JSON-RPC интерфейс. MCP поддерживают Claude Desktop, Cursor, Cline, Windsurf, Zed, OpenDevin, Goose и растущий список других клиентов.

Что он предоставляет:

| Инструмент | Что делает |
|---|---|
| `separate_stems` | Локальный файл или прямой аудио-URL → вокал, минусовка, 4 или 6 стемов. Поллит до завершения и пишет на диск. |
| `separate_youtube` | YouTube-ссылка → вокал + минусовка, скачиваются и обрабатываются на сервере. |
| `get_job` / `list_jobs` | Статус и история задач. |
| `get_youtube_job` / `list_youtube_jobs` | То же, но для YouTube-задач. |
| `get_balance` | Остаток кредитов в секундах и минутах. |
| `download_stems` | Заново получает свежие presigned URL и скачивает стемы из уже завершённой задачи. |

Плюс 4 ресурса (живой баланс, последние задачи, детали задачи, детали YouTube-задачи) и 4 prompt-а (создание караоке, изоляция вокала, шестистемный сэмплер-пак, YouTube-минусовка). Полная справка — в [README на GitHub](https://github.com/StemSplit/stemsplit-mcp#readme).

Главный сценарий: **бросаете в чат путь или YouTube-ссылку — получаете стемы**. Без HTTP-обвязки, без кода поллинга, без временных файлов, которые надо потом убирать.

---

## Почему MCP — правильный формат для аудио

Если вы хоть раз интегрировали API для разделения стемов — наш или чужой — вы знаете этот танец:

```
POST /jobs            → возвращает job_id
GET  /jobs/:id        → поллим каждые 5 с, пока status=COMPLETED
GET  presigned_url    → качаем каждый стем на диск
```

Три эндпоинта, цикл поллинга, истекающие URL, ретраи на временные 5xx. Каждая команда, которая интегрирует аудио, переписывает один и тот же код. MCP сворачивает всё это в одно.

Фокус в том, что **аудиофайлы не путешествуют через контекст чата** — они слишком большие. Вместо этого MCP обменивается *ссылками* — путями файлов и URL — а реальные байты текут между вашим компьютером, API StemSplit и Cloudflare R2. LLM видит только:

- *«Стем вокала находится по пути `~/Downloads/stemsplit/job_abc123/vocals.mp3`».*

И может цепочкой передать это следующему инструменту (транскрибировать, нормализовать, загрузить в DAW-проект — что угодно). Сам 30-мегабайтный MP3 LLM никогда не читает.

Поэтому этот MCP-сервер прекрасно работает и с локальными LLM, и с моделями с маленьким контекстом. Протокол задизайнен ровно под паттерн «делай тяжёлую работу на своей машине и возвращай ссылку».

---

## Установка меньше чем за 2 минуты

Понадобится три вещи:

1. **Node.js 20+** (`node --version` чтобы проверить)
2. **API-ключ StemSplit** — генерируется на [stemsplit.io/app/settings/api](https://stemsplit.io/app/settings/api)
3. **MCP-совместимый клиент** — конфиги по клиентам ниже

На самом деле сам npm-пакет ставить не обязательно — большинство клиентов запускают сервер через `npx -y stemsplit-mcp` и кешируют при первом запуске. Если хочется глобальную установку: `npm install -g stemsplit-mcp`.

### Claude Desktop

Откройте `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) или `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

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

Перезапустите Claude. В индикаторе MCP в нижней части окна появится «stemsplit» с зелёным кружком, когда всё готово.

### Cursor

Добавьте в `~/.cursor/mcp.json` (или через Settings → MCP):

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

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

Структура та же — `command`, `args`, `env`. Полные сниппеты по клиентам — в [руководстве docs](/developers/guides/mcp).

---

## Как это выглядит на практике

После настройки рабочий процесс — это просто разговор. Несколько примеров, которые мы используем сами:

### Убрать вокал из локального файла

> *«Сделай караоке-версию из `/Users/me/Music/song.mp3`».*

LLM выбирает `separate_stems` с `outputType=BOTH`. Сервер загружает файл, поллит до завершения, скачивает вокал + минусовку в `~/Downloads/stemsplit/<job-id>/` и сообщает ассистенту локальные пути. Ассистент показывает вам путь к минусовке.

### YouTube → акапелла за один промт

> *«Достань чистый вокал из https://youtu.be/dQw4w9WgXcQ».*

Выбирает `separate_youtube`. StemSplit на стороне сервера скачивает видео, прогоняет разделение, возвращает путь к стему вокала. Никакого `yt-dlp` и танцев с лимитами.

### Шесть стемов для семплирования

> *«Разбей `~/Music/funk-bass.wav` на все 6 стемов в максимальном качестве».*

Выбирает `separate_stems` с `outputType=SIX_STEMS` и `quality=BEST`. Получаете drums, bass, vocals, other, piano и guitar — каждый в отдельном файле.

### Превэри́тельная проверка

> *«Сколько минут у меня осталось?»*

Выбирает `get_balance`. Удобно перед запуском длинной задачи.

---

## Что внутри коробки

Несколько решений, которые начинают играть роль, как только сервер становится частью рабочего процесса:

### Автоматические ретраи с экспоненциальным backoff и jitter

Единственный 502 во время десятиминутного поллинга раньше валил всю задачу. Теперь:

- **GET**-запросы ретраятся до 4 раз на сетевых ошибках, 5xx и 429 (с учётом `Retry-After`).
- **POST** на эндпоинты создания задач — консервативно. Ретраи только на сетевых ошибках, которые *доказывают, что сервер запрос не видел*, так что двойного списания не случится.
- **Загрузки в R2** ретраятся до 3 раз. На каждую попытку файл переоткрывается как свежий стрим (web-`ReadableStream` нельзя перематывать).
- **Скачивания из R2** ретраятся на 5xx, но никогда на 403 — 403 означает, что presigned URL истёк, и правильный путь — взять свежий через `get_job`.

Каждый ретрай логируется в stderr, чтобы вы видели, как механика работает, если что-то пошло не так.

### Валидация абсолютных путей

Раньше относительные пути вроде `song.mp3` молча разрешались относительно рабочей директории MCP-сервера. Для Claude Desktop и Cursor это обычно системный root, о котором LLM знать не может. Теперь относительные пути отвергаются сразу с сообщением, объясняющим LLM, что делать: *«Передайте абсолютный путь типа `/Users/you/Music/song.mp3` или путь с тильдой типа `~/Music/song.mp3`. Если не знаете — спросите пользователя»*.

### Структурированные ответы об ошибках

Каждая ошибка содержит машиночитаемый `code` (`INSUFFICIENT_CREDITS`, `RATE_LIMIT_EXCEEDED`, `FILE_TOO_LARGE`, `UNSUPPORTED_FORMAT` и т.д.), человекочитаемое сообщение и подсказки для распространённых случаев. LLM не нужно парсить английский, чтобы понять, что произошло.

### Уведомления о прогрессе

Полл-итерации пробрасываются как progress-события MCP. Длинные YouTube-задачи показывают в прогресс-UI Claude Desktop «10% → 35% → 70% → 100%» вместо того, чтобы выглядеть зависшими.

---

## Сравнение с существующими опциями

| Опция | Что разворачиваем | Хорошо подходит для |
|---|---|---|
| **`stemsplit-mcp`** | Один npm-пакет + API-ключ | Натурально-языковые сценарии в Claude / Cursor / Cline / Windsurf / Zed |
| **`n8n-nodes-stemsplit`** | Community-нода n8n | Шедулинг и webhook-batch-обработка в n8n |
| **Голый HTTP API** | curl / собственный клиент | Server-to-server автоматизация, кастомные интеграции |
| **`demucs-onnx`** (PyPI) | ONNX-модель на 316 МБ в вашем приложении | Офлайн / мобильные / случаи без зависимости от API |
| **Self-hosted Demucs** | GPU, очередь и сервер инференса | Высокообъёмные внутренние нагрузки, где GPU уже стоят |

MCP-сервер — правильный выбор, когда *пользователь* инструмента — это человек внутри ИИ-ассистента. Остальные опции — когда пользователем является программа.

В продакшене большинство команд использует две сразу: MCP-сервер для интерактивных задач и разовых джобов, плюс либо API, либо ONNX-модели для высокообъёмной обработки.

---

## Open source by design

Весь проект под MIT: [github.com/StemSplit/stemsplit-mcp](https://github.com/StemSplit/stemsplit-mcp).

Кодовая база достаточно компактная, чтобы прочитать за один заход — TypeScript, ~1,5 тыс. строк, без экзотических зависимостей кроме официального `@modelcontextprotocol/sdk` и `zod`. Ретрай-хелпер, классификатор источников, логика поллинга и маппер ошибок — каждый в своём файле с юнит-тестами.

Если хотите форкнуть и направить на собственный бэкенд разделения, поверхность изменений — в [`src/client.ts`](https://github.com/StemSplit/stemsplit-mcp/blob/main/src/client.ts). MCP-обвязка в `src/index.ts` остаётся.

---

## Что дальше

Это v0.2.0. В планах:

1. **Аннотации инструментов** (`readOnlyHint`, `openWorldHint`) — чтобы строгие MCP-клиенты пропускали запрос подтверждения для read-only инструментов вроде `get_balance`.
2. **Параллельная скачка стемов** — сейчас серийная, что в 6 раз медленнее, чем могло бы быть на шестистемных задачах.
3. **Живая enumeration `recent-jobs`** — чтобы MCP-клиенты могли нативно просматривать историю задач.
4. **Subscribe / notify на ресурсах** — для живого прогресса длинных YouTube-задач.

Следите за [репозиторием на GitHub](https://github.com/StemSplit/stemsplit-mcp) — каждая версия выходит с записью в CHANGELOG и тегированным GitHub Release.

---

## Чем stemsplit-mcp отличается от прямого использования REST API StemSplit в 2026 году?

Для интерактивных сценариев — *«почисти эти 5 дублей, что я только что записал»*, *«сделай караоке-версию из этой YouTube-ссылки»*, *«собери сэмплер из этого фанк-альбома»* — MCP-сервер существенно лучше, потому что всю оркестровку (классификацию источника, загрузку, поллинг, скачивание, обработку ошибок) берёт на себя ИИ-ассистент. Вы пишете одну фразу — получаете локальные пути. Для server-to-server автоматизации без человека в петле подходит [REST API](https://stemsplit.io/developers/docs) — те же аутентификация и модели, но без MCP-рантайма.

## Можно ли использовать stemsplit-mcp с локальными ИИ-моделями или self-hosted LLM в 2026?

Да — любой MCP-совместимый клиент работает, включая клиентов с локальными моделями. MCP-сервер живёт как stdio-процесс и не знает, какой LLM на другой стороне. Мы проверили работу с Claude Desktop (Claude 4.5 Sonnet / Opus), Cursor (любая backend-модель), Cline (конфигурируемый), Windsurf, Zed и Goose с локальными моделями через Ollama. Архитектура намеренно model-agnostic.

## Как MCP-сервер работает с YouTube-ссылками без yt-dlp в комплекте?

Через серверный эндпоинт `/youtube-jobs` StemSplit — видео скачивается на нашей инфраструктуре, там же запускается разделение, результат отдаётся через presigned URL. Сам MCP-сервер `yt-dlp` локально не зовёт никогда. Это значит: ноль проблем с rate-limit, ноль платформо-зависимых установок, ноль юридических рисков для пользователей, гоняющих скачивания у себя. Компромисс — URL должен быть публично доступным; приватные и возрастные ограниченные видео по этому пути не пройдут.

## Качество разделения через stemsplit-mcp такое же, как в веб-приложении StemSplit?

Да — буквально одинаковое. MCP-сервер — это тонкий клиент, который вызывает тот же эндпоинт `/api/v1/jobs`, что и веб-приложение. Модели, уровни качества (FAST / BALANCED / BEST) и форматы вывода (MP3 / WAV / FLAC) идентичны. Разница только в точке запуска — чат в ИИ-ассистенте вместо браузерного upload.

## Какие MCP-клиенты совместимы с stemsplit-mcp?

Любой клиент с поддержкой стандартного MCP stdio-транспорта. Проверенные клиенты: Claude Desktop, Cursor, Cline (VS Code), Windsurf, Zed, Goose (open-source MCP-клиент от Block), OpenDevin. Model Context Protocol — стандарт Anthropic; [официальный список клиентов](https://modelcontextprotocol.io/clients) — источник истины по мере появления новых.

---

## Попробуйте

Если у вас уже есть аккаунт StemSplit, [сгенерируйте API-ключ](https://stemsplit.io/app/settings/api) и пройдите [руководство по установке MCP](/developers/guides/mcp). Если нет — [начните бесплатно](https://stemsplit.io/free-trial). Бесплатного тарифа более чем достаточно, чтобы попробовать каждый инструмент сервера.

Если соберёте что-нибудь интересное — покажите: [github.com/StemSplit/stemsplit-mcp/discussions](https://github.com/StemSplit/stemsplit-mcp/discussions) или [stemsplit.io/contact](/contact).

---

*[`stemsplit-mcp`](https://www.npmjs.com/package/stemsplit-mcp) — под MIT-лицензией. [Model Context Protocol](https://modelcontextprotocol.io) — открытый стандарт, представленный Anthropic в конце 2024 года.*

---

*This article was originally published at https://stemsplit.io/ru/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.*
