Add README
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# 🎵 Suno MCP Server
|
||||
|
||||
MCP сервер для [Suno API](https://sunoapi.org) — генерация AI-музыки, текстов, видео, обработка аудио прямо из opencode.
|
||||
|
||||
**24 инструмента**, rate limiter, proxy support, полное покрытие всех эндпоинтов.
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
```bash
|
||||
git clone https://git.hidosi.ru/Hidosi/suno-mcp-server.git
|
||||
cd suno-mcp-server/suno-server
|
||||
npm install
|
||||
```
|
||||
|
||||
Сервер уже скомпилирован в `dist/` — можно запускать сразу.
|
||||
|
||||
## ⚙️ Подключение к opencode
|
||||
|
||||
Добавь в свой `opencode.json`:
|
||||
|
||||
```json
|
||||
"mcp": {
|
||||
"suno": {
|
||||
"type": "local",
|
||||
"command": ["node", "/путь/к/suno-server/dist/index.js"],
|
||||
"env": {
|
||||
"SUNO_API_KEY": "твой-api-ключ"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Готовый конфиг лежит здесь: `.opencode/opencode.json`.
|
||||
|
||||
Перезапусти opencode. Агентам будет доступен skill `suno` с инструкцией на русском.
|
||||
|
||||
## 🔧 Переменные окружения
|
||||
|
||||
| Переменная | Назначение |
|
||||
|---|---|
|
||||
| `SUNO_API_KEY` | API ключ (обязательно) |
|
||||
| `SUNO_HTTP_PROXY` | HTTP/S прокси (приоритет) |
|
||||
| `HTTPS_PROXY` | HTTP/S прокси |
|
||||
| `HTTP_PROXY` | HTTP прокси |
|
||||
|
||||
## 🧪 Проверка
|
||||
|
||||
```bash
|
||||
cd suno-server
|
||||
SUNO_API_KEY=твой-ключ node test-real.js
|
||||
```
|
||||
|
||||
Сделает два безопасных вызова:
|
||||
1. `suno_get_credits` — проверит аутентификацию и покажет баланс
|
||||
2. `suno_boost_style` — 0.4 кредита, улучшит описание стиля
|
||||
|
||||
С прокси:
|
||||
```bash
|
||||
SUNO_API_KEY=твой-ключ SUNO_HTTP_PROXY=http://proxy:8080 node test-real.js
|
||||
```
|
||||
|
||||
## 🛠️ Инструменты (24 шт)
|
||||
|
||||
| Инструмент | Эндпоинт | Кредиты |
|
||||
|---|:---|---:|
|
||||
| `suno_generate_music` | `POST /generate` | 12 |
|
||||
| `suno_generate_lyrics` | `POST /lyrics` | 0.4 |
|
||||
| `suno_generate_sounds` | `POST /generate/sounds` | 2.5 |
|
||||
| `suno_extend_music` | `POST /generate/extend` | 12 |
|
||||
| `suno_replace_section` | `POST /generate/replace-section` | 5 |
|
||||
| `suno_add_vocals` | `POST /generate/add-vocals` | 12 |
|
||||
| `suno_add_instrumental` | `POST /generate/add-instrumental` | 12 |
|
||||
| `suno_upload_and_cover` | `POST /generate/upload-cover` | 12 |
|
||||
| `suno_upload_and_extend` | `POST /generate/upload-extend` | 12 |
|
||||
| `suno_generate_mashup` | `POST /generate/mashup` | 12 |
|
||||
| `suno_separate_vocals` | `POST /vocal-removal/generate` | 10 |
|
||||
| `suno_separate_stems` | `POST /vocal-removal/generate` (split_stem) | 20 |
|
||||
| `suno_create_video` | `POST /generate/video` | 2 |
|
||||
| `suno_create_cover` | `POST /generate/cover` | 0 |
|
||||
| `suno_convert_to_wav` | `POST /generate/wav` | 0.4 |
|
||||
| `suno_boost_style` | `POST /style/generate` | 0.4 |
|
||||
| `suno_generate_persona` | `POST /generate/persona` | 0 |
|
||||
| `suno_get_task_status` | `GET /generate/record-info` | 0 |
|
||||
| `suno_get_timestamped_lyrics` | `GET /generate/timestamped-lyrics` | 0.5 |
|
||||
| `suno_get_lyrics_details` | `GET /generate/lyrics-info` | 0 |
|
||||
| `suno_get_wav_details` | `GET /generate/wav-info` | 0 |
|
||||
| `suno_get_vocal_separation_details` | `GET /vocal-removal/record-info` | 0 |
|
||||
| `suno_get_video_details` | `GET /generate/video-info` | 0 |
|
||||
| `suno_get_credits` | `GET /generate/credit` | 0 |
|
||||
|
||||
## 📊 Модели
|
||||
|
||||
| Модель | Длина | Особенности |
|
||||
|---|---|---|
|
||||
| `V4` | до 4 мин | Лучшее качество звука |
|
||||
| `V4_5` | до 8 мин | Умные промпты, быстрее |
|
||||
| `V4_5PLUS` | до 8 мин | Более насыщенный звук |
|
||||
| `V4_5ALL` | до 8 мин | Лучшая структура песни |
|
||||
| `V5` | до 8 мин | Музыкальность + скорость |
|
||||
| `V5_5` | до 8 мин | Кастомные голоса |
|
||||
|
||||
## 📋 Лимиты
|
||||
|
||||
- **Rate limit**: 20 запросов / 10 секунд
|
||||
- **Кредиты**: не истекают
|
||||
- **Стоимость**: $0.005 USD / кредит
|
||||
- **Файлы**: хранятся 15 дней после генерации
|
||||
|
||||
## 📁 Структура проекта
|
||||
|
||||
```
|
||||
suno-mcp-server/
|
||||
├── suno-server/
|
||||
│ ├── src/
|
||||
│ │ ├── index.ts # Точка входа — MCP Server (stdio)
|
||||
│ │ ├── client.ts # HTTP клиент + rate limiter + прокси
|
||||
│ │ ├── schemas.ts # Zod схемы валидации параметров
|
||||
│ │ ├── tools.ts # 24 MCP tool definitions → JSON Schema
|
||||
│ │ └── handlers.ts # Обработчики + polling async-задач
|
||||
│ ├── dist/ # Скомпилированный JS
|
||||
│ ├── test-real.js # Тестовый скрипт с реальным API
|
||||
│ ├── package.json
|
||||
│ └── tsconfig.json
|
||||
├── .opencode/
|
||||
│ ├── opencode.json # Пример конфига
|
||||
│ └── skills/suno/SKILL.md # Skill для агентов (русский)
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 👩💻 Разработка
|
||||
|
||||
```bash
|
||||
cd suno-server
|
||||
npm install
|
||||
npm run build # однократная сборка
|
||||
npm run dev # watch-режим
|
||||
```
|
||||
|
||||
## 🔗 Ссылки
|
||||
|
||||
- [Suno API документация](https://docs.sunoapi.org)
|
||||
- [Suno API сайт](https://sunoapi.org)
|
||||
- [MCP спецификация](https://modelcontextprotocol.io)
|
||||
- [opencode](https://opencode.ai)
|
||||
Reference in New Issue
Block a user