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

187 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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: "<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 символов.
## Рекомендации по промптам
- Опиши жанр, настроение, инструменты, темп, энергию.
- Для вокальных треков в `customMode` пиши текст в формате `[Verse] ... [Chorus] ...`.
- Избегай противоречивых описаний.
- Для повторяемого стиля используй `suno_generate_persona`.
## Обработка ошибок
| Код | Причина |
|---|---|
| 400 | Неверные параметры |
| 401 | Неверный API ключ |
| 429 | Недостаточно кредитов |
| 430 | Слишком частые запросы |
| 455 | Технические работы |
Если async-задача не завершилась за 15 минут, сервер вернёт таймаут — используй `suno_get_task_status` позже.