--- name: suno description: Используй когда пользователь просит создать музыку, текст песни, кавер, ремикс, мэшап, видео, или работать с Suno AI Music API. Покрывает генерацию музыки, тексты, разделение вокала/стемов, Persona, стили и конвертацию. --- # Suno Music API Skill Этот skill описывает MCP-сервер для работы с [Suno API](https://sunoapi.org) через 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: "" audioId: "" ``` Для продвинутого разделения по инструментам: ``` suno_separate_stems taskId: "" audioId: "" ``` ### 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: "" audioId: "" ``` Бесплатно. Возвращает `personaId`, который потом можно использовать в `suno_generate_music` (`personaId` + `personaModel: style_persona`) для единого стиля. ### 7. Узнать промпт по готовому треку ``` suno_get_task_status 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 символов. ## Рекомендации по промптам - Опиши жанр, настроение, инструменты, темп, энергию. - Для вокальных треков в `customMode` пиши текст в формате `[Verse] ... [Chorus] ...`. - Избегай противоречивых описаний. - Для повторяемого стиля используй `suno_generate_persona`. ## Обработка ошибок | Код | Причина | |---|---| | 400 | Неверные параметры | | 401 | Неверный API ключ | | 429 | Недостаточно кредитов | | 430 | Слишком частые запросы | | 455 | Технические работы | Если async-задача не завершилась за 15 минут, сервер вернёт таймаут — используй `suno_get_task_status` позже.