Files
suno-mcp-server/.opencode/skills/suno/SKILL.md
T

14 KiB
Raw Blame History

name, description
name description
suno Используй когда пользователь просит создать музыку, текст песни, кавер, ремикс, мэшап, видео, или работать с Suno AI Music API. Покрывает генерацию музыки, тексты, разделение вокала/стемов, Persona, стили и конвертацию.

Suno Music API Skill

Этот skill описывает MCP-сервер для работы с Suno API через opencode.

Лимиты и цены

  • Rate limit: 20 запросов на 10 секунд.
  • Стоимость кредита: $0.005 USD.
  • Кредиты не истекают.
  • Сгенерированные файлы хранятся 15 дней.

Прокси

Если сервис недоступен из вашей сети, MCP сервер поддерживает прокси через переменные окружения (в порядке приоритета):

SUNO_HTTP_PROXY=http://user:pass@proxy:8080
HTTPS_PROXY=http://proxy:8080
HTTP_PROXY=http://proxy:8080

Основные сценарии

1. Сгенерировать песню с нуля

suno_generate_music
  prompt: "Мелодичный инди-фолк с акустической гитарой, мягким вокалом, ностальгическое настроение"
  customMode: false
  instrumental: false
  model: "V4_5ALL"

Вернёт taskId. Затем нужно подождать и вызвать:

suno_get_task_status
  taskId: "..."

Результат: 2 трека с audio_url, title, tags, duration, prompt.

2. Сгенерировать песню в кастомном режиме

suno_generate_music
  prompt: "[Verse] Ночной город, огни витрин..."
  customMode: true
  instrumental: false
  style: "Synthwave, cinematic, 80s"
  title: "Neon Rain"
  model: "V4_5"

В customMode: true поля style и title обязательны. Если instrumental: false — ещё и prompt (он станет точным текстом песни).

3. Получить текст песни

suno_generate_lyrics
  prompt: "Песня о путешествии, вдохновляющая, indie pop"

Полученный текст можно передать в suno_generate_music(prompt=текст, customMode=true).

4. Разделить вокал и музыку

suno_separate_vocals
  taskId: "<taskId генерации>"
  audioId: "<id трека>"

Для продвинутого разделения по инструментам:

suno_separate_stems
  taskId: "<taskId>"
  audioId: "<id трека>"

5. Сделать кавер существующего аудио

suno_upload_and_cover
  uploadUrl: "https://example.com/my-song.mp3"
  customMode: true
  instrumental: false
  style: "Jazz"
  title: "Jazz Version"
  prompt: "[Verse] Smooth jazz arrangement..."
  model: "V4_5ALL"

6. Создать персону из трека

suno_generate_persona
  taskId: "<taskId>"
  audioId: "<id трека>"

Бесплатно. Возвращает personaId, который потом можно использовать в suno_generate_music (personaId + personaModel: style_persona) для единого стиля.

7. Узнать промпт по готовому треку

suno_get_task_status
  taskId: "<taskId генерации>"

В ответе будут поля prompt, title, tags для каждого трека.

Полный список инструментов

Инструмент Назначение Кредиты
suno_generate_music Генерация музыки 12
suno_generate_lyrics Генерация текста 0.4
suno_generate_sounds Звуки/амбиенты/лупы 2.5
suno_extend_music Продлить трек 12
suno_replace_section Заменить фрагмент трека 5
suno_add_vocals Добавить вокал на инструментал 12
suno_add_instrumental Добавить инструментал к вокалу 12
suno_upload_and_cover Загрузить аудио и сделать кавер 12
suno_upload_and_extend Загрузить аудио и продлить 12
suno_generate_mashup Мэшап из двух аудио 12
suno_separate_vocals Вокал + минус 10
suno_separate_stems Разделение по инструментам 20
suno_create_video Видео из трека 2
suno_create_cover Обложка трека 0
suno_convert_to_wav Конвертация в WAV 0.4
suno_boost_style Улучшить описание стиля 0.4
suno_generate_persona Создать персону из трека 0
suno_get_task_status Статус и метаданные трека 0
suno_get_timestamped_lyrics Текст с таймкодами 0.5
suno_get_lyrics_details Детали генерации текста 0
suno_get_wav_details Детали конвертации WAV 0
suno_get_vocal_separation_details Детали разделения 0
suno_get_video_details Детали видео 0
suno_get_credits Остаток кредитов 0

Выбор модели

Модель Длина Когда использовать
V4 до 4 мин Лучшее качество звука
V4_5 до 8 мин Умные промпты, быстрее
V4_5PLUS до 8 мин Более насыщенный звук
V4_5ALL до 8 мин Лучшая структура песни
V5 до 8 мин Высокая музыкальность, скорость
V5_5 до 8 мин Персонализированные голоса

Лимиты символов в customMode

Поле V4 V4_5 / V4_5PLUS / V4_5ALL / V5 / V5_5
prompt 3000 5000
style 200 1000
title 80 100

В customMode: false только prompt, максимум 500 символов.

Prompt Engineering Guide

Когда пользователь просит создать песню, агент должен вести себя как Suno AI Master Assistant: профессионально, дружелюбно, на русском языке. Перед генерацией анализируй историю чата и учитывай ранее выбранные жанры и стили.

Три обязательных блока промпта

Каждый промпт для suno_generate_music (особенно в customMode: true) должен состоять из трёх блоков:

Блок А: Lyrics (текст с мета-тегами)

///*****///

[Verse]
Текст куплета
Четыре строки по 6–10 слогов

[Chorus | anthemic chorus | stacked harmonies]
Текст припева
Мощный, запоминающийся хук

[Bridge]
Текст бриджа
Контраст с основной частью

[break 0.5]

[Chorus]
Повтор припева
(RISE UP NOW!)

Правила:

  • Разделитель ///*****/// в самом верху, чтобы промпт не «протекал» в вокал.
  • Мета-теги: [Verse], [Chorus], [Bridge], [Pre-Chorus], [Intro], [Outro].
  • Уточнение стиля секции через |: [Chorus | anthemic chorus | stacked harmonies].
  • Паузы: [break 0.5] или [break 1.0 sek].
  • Бэк-вокал в круглых скобках: (RISE UP NOW!).
  • Строка: 6–10 слогов, секция: обычно 4 строки.
  • Не размечай ударения заглавными буквами — Suno v5 и v5.5 самостоятельно хорошо ориентируются в ударениях.

Блок Б: Style (окно стиля)

Используй иерархическую структуру, разделённую точками:

genre: indie folk rock, 2020s bedroom pop.
vocal: [baritone male vocal], [raspy vocal tone], emotional delivery.
instrumentation: [nylon string guitar], [TR-808 kit], [warm analog synth pad].
recording & mastering: high quality studio recording, balanced EQ, crystal clear vocals, wide stereo image.

Важно: учитывай лимиты длины style:

Модель Лимит style
V4 200 символов
V4_5 / V4_5PLUS / V4_5ALL / V5 / V5_5 1000 символов

Если стиль не влезает — сокращай менее важные части, сохраняя жанр и ключевые инструменты.

Блок В: Negative Prompt (исключения)

Передаётся в параметр negativeTags как список через запятые без слова no:

trap, male vocals, distortion, sawtooth synths, harsh highs, muddiness

Золотые правила по жанрам

Жанр Что прописывать
Disco [Arrangement: groove-based, repetitive, no development], four-on-the-floor kick, lush strings
Latin Фокус на перкуссии: piano montuno, congas, bongos, clave. Меньше акцент на гармонии
Blues 12-bar form, shuffle feel, electric guitar, walking bass. Избегай поп-структур
Brazilian Funk TR-808, tamborim syncopation, monophonic synth bass, Portuguese vocal samples
Electronic Конкретные типы синтеза: FM synthesis bass, wavetable movement, granular pads. Избегай общих «saw synth»
Rock live drum kit, electric guitars, bass guitar, analog saturation
Jazz upright bass, brushed drums, piano trio, warm room reverb

Управление вокалом

Задача Что писать в Style / Lyrics
Припев выше октавой Style: chorus sung ONE OCTAVE HIGHER. Lyrics: `[Chorus
Без вокального интро NO vocal intro, instrumental intro only, vocal starts with first verse
Сухой вокал dry vocal recording, close-mic vocal, no reverb tails, minimal processing
Многослойный хор stacked harmonies, doubled vocals, group choir backing
Шёпот intimate whisper vocal, breathy tone, close microphone

Пример полного промпта

Пользователь: «Сделай энергичный рок-трек о восхождении на гору, мужской вокал».

Lyrics (передаётся в prompt):

///*****///

[Intro]
[instrumental intro only, no vocal]

[Verse]
Тяжёлый шаг, камень за камнем
Ветер рвёт дыханье, но не сбить меня
Каждый метр — битва, каждый вздох — победа
Вершина ближе, сердце как маяк

[Pre-Chorus]
Тень долины позади
Там, где страх остался жить

[Chorus | anthemic chorus | stacked harmonies]
Я поднимаюсь выше!
К небу, к солнцу, к огню!
Я поднимаюсь выше!
(RISE UP NOW!)
Никто не остановит путь мой

[break 0.5]

[Verse]
Снег под ногами, холод в руках
Но внутри пылает жар, что не погасить

[Chorus | SING ONE OCTAVE HIGHER]
Я поднимаюсь выше!
К небу, к солнцу, к огню!
Я поднимаюсь выше!
(RISE UP NOW!)

Style (передаётся в style):

genre: anthemic alternative rock, 2010s stadium rock.
vocal: [powerful male vocal], [baritone lead], raspy emotional tone, shouted gang vocals.
instrumentation: [live drum kit], [crunch electric guitar], [driving bass guitar], [piano accents], [synth pad layers].
recording & mastering: high quality studio recording, punchy drums, wide stereo guitars, clear vocal, analog warmth.

Negative Prompt (передаётся в negativeTags):

trap, electronic beats, female vocals, jazz chords, muddiness, weak drums

Вызов генерации

suno_generate_music
  prompt: "///*****///\n\n[Intro]..."
  customMode: true
  instrumental: false
  style: "genre: anthemic alternative rock..."
  title: "Восхождение"
  negativeTags: "trap, electronic beats, female vocals, jazz chords, muddiness, weak drums"
  model: "V4_5ALL"

Память и предпочтения

Если пользователь ранее запрашивал определённые жанры (например, «Philly Disco» или «Funk Carioca»), используй их автоматически в новых запросах, если это уместно.

Проверка перед отправкой

  • customMode, instrumental, model указаны
  • Для customMode: true заполнены style и title
  • Для вокального трека (instrumental: false) заполнен prompt с текстом
  • style не превышает лимит символов для выбранной модели
  • negativeTags — список через запятые, без no
  • Ударения не размечены заглавными буквами

Обработка ошибок

Код Причина
400 Неверные параметры
401 Неверный API ключ
429 Недостаточно кредитов
430 Слишком частые запросы
455 Технические работы

Если async-задача не завершилась за 15 минут, сервер вернёт таймаут — используй suno_get_task_status позже.