# Music

> Create songs and instrumentals with Suno and other music models, then extend, cover, mash up, edit, split and convert them with Nodaro's MCP music tools.

Source: https://nodaro.ai/docs/mcp/tools/music

The **music tools** let an assistant make and edit music in Nodaro. `generate_music` creates a track from a prompt, and the `suno_` tools use Suno's full feature set: songs with your own lyrics, covers, extensions, mashups, section replacement, stems, WAV files and music videos. Every tool needs the `workflows:execute` permission and returns a job id.

| Tool | What it does | Credits |
| --- | --- | --- |
| [`generate_music`](#generate_music) | A track from a prompt | 30 with Suno, 180 with MiniMax |
| [`suno_generate`](#suno_generate) | A song with Suno's full controls | 30 |
| [`suno_lyrics`](#suno_lyrics) | Song lyrics from a theme | 10 |
| [`suno_style_boost`](#suno_style_boost) | Richer style tags from a short description | 10 |
| [`suno_extend`](#suno_extend) | Continues a Suno song | 30 |
| [`suno_upload_extend`](#suno_upload_extend) | Continues an uploaded track | 30 |
| [`suno_cover`](#suno_cover) | The same song in a new style | 30 |
| [`suno_mashup`](#suno_mashup) | Blends two tracks | 30 |
| [`suno_replace_section`](#suno_replace_section) | Generates one part of a Suno song again | 20 |
| [`suno_add_vocals`](#suno_add_vocals) | Adds vocals to a Suno instrumental | 30 |
| [`suno_add_instrumental`](#suno_add_instrumental) | Adds an instrumental layer to a Suno song | 30 |
| [`suno_separate_stems`](#suno_separate_stems) | Splits a Suno song into vocals and instrumental, or stems | 40 |
| [`suno_convert_wav`](#suno_convert_wav) | Converts a Suno song to WAV | 10 |
| [`suno_music_video`](#suno_music_video) | Makes a music video from a Suno song | 10 |

The tools that edit a Suno song need the Nodaro job id of a song made with Suno, passed as `audio_asset_id`. The Suno ids they need are looked up on the server.

## `generate_music`

Creates a music track from a prompt. It works like the [Generate Music](https://nodaro.ai/docs/nodes/audio/generate-music) node.

**Permission:** `workflows:execute`. **Credits:** 30 with a Suno model, 180 with MiniMax.

| Parameter | Type | Notes |
| --- | --- | --- |
| `prompt` | string | The music you want, up to 2,000 characters. Required unless a preset supplies it. |
| `model` | string | `suno-v6` (default, rich detail and natural vocals), `suno-v6_wild` (bolder, less predictable), `suno-v6_mini` (faster), `suno-v5_5`, `suno-v5`, `suno`, or `minimax` for short instrumental loops. |
| `lyrics` | string | The exact words to sing, up to 2,000 characters, with section tags such as `[Verse]` and `[Chorus]` on their own lines. Lyrics switch Suno to custom mode, where they are sung as written. Without lyrics, the model writes its own. |
| `title` | string | The song title, up to 80 characters. Custom mode needs one; without it, the title is "Untitled". |
| `instrumental` | boolean | Music without vocals. |
| `genre`, `mood` | string | The genre and the mood. |
| `duration` | number | Up to 30 seconds. With Suno, it works in custom mode. |
| `presetId` | string | A preset such as **Lo-fi Study**, **Cinematic Trailer** or **EDM Drop**. |

**Returns:** a job id.

## `suno_generate`

Creates an original song with Suno, with every Suno control. It works like the [Suno Create Music](https://nodaro.ai/docs/nodes/audio/suno-create-music) node. The job output holds the Suno ids that the other `suno_` tools use.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `prompt` | string | **Required.** The song, or the inspiration for it, up to 5,000 characters. In custom mode, it describes the style. |
| `model` | string | `V6` (default), `V6_WILD`, `V6_MINI`, `V5_5`, `V5`, `V4_5PLUS`, `V4_5ALL`, `V4_5` or `V4`. |
| `custom_mode` | boolean | Uses your `lyrics` and `style` exactly as written. |
| `lyrics` | string | The full lyrics, up to 5,000 characters. Custom mode only. |
| `style` | string | Style tags, such as `lo-fi hip-hop, melancholy, piano`, up to 500 characters. |
| `negative_style` | string | Styles to avoid, up to 500 characters. |
| `title` | string | Up to 80 characters. |
| `instrumental` | boolean | Music without vocals. |
| `vocal_gender` | string | `male` or `female`. |
| `duration` | number | The song length, from 10 to 360 seconds. Only in custom mode on a V6 model. |
| `style_weight`, `weirdness`, `audio_weight` | number | From 0 to 1: how strongly the style applies, how unusual the result is, and the weight of the audio input. |

**Returns:** a job id.

## `suno_lyrics`

Writes song lyrics from a theme, such as "a heartbreak ballad about summer". Use the result as `lyrics` in `suno_generate` with custom mode.

**Permission:** `workflows:execute`. **Credits:** 10.

| Parameter | Type | Notes |
| --- | --- | --- |
| `prompt` | string | **Required.** The theme, up to 1,000 characters. |

**Returns:** a job id. The lyrics are in the job output, and the card shows them with a **Copy** button.

## `suno_style_boost`

Turns a short style description, such as "lo-fi chill", into richer style tags. Use the result as `style` in `suno_generate`.

**Permission:** `workflows:execute`. **Credits:** 10.

| Parameter | Type | Notes |
| --- | --- | --- |
| `content` | string | **Required.** The style to enhance, up to 5,000 characters. |

**Returns:** a job id. The improved style is in the job output.

## `suno_extend`

Continues a song made with Suno.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno song. |
| `continue_at` | number | The second of the song where the extension starts. |
| `prompt`, `style`, `title` | string | Steer the extension. |
| `vocal_gender` | string | `male` or `female`. |
| `model` | string | `V6` (default) or another Suno version. |

**Returns:** a job id.

## `suno_upload_extend`

Continues a track that was not made with Suno, from a public URL. For a Suno song, use `suno_extend`.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_url` | string | **Required.** The public URL of the track. |
| `continue_at` | number | **Required.** The second where Suno continues. |
| `style`, `negative_style`, `title`, `vocal_gender`, `model` | | As on `suno_generate`. |
| `use_default_params` | boolean | Uses Suno's defaults instead of your style and title. Default `false`. |

**Returns:** a job id.

## `suno_cover`

Makes a cover of a track: the same melody and lyrics in a new musical style. The source can be any Nodaro audio, not only a Suno song.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `prompt` | string | **Required.** The style of the cover, up to 5,000 characters. |
| `audio_url` or `audio_asset_id` | string | The source track. |
| `instrumental` | boolean | An instrumental cover, without vocals. |
| `lyrics` | string | New lyrics. Without them, Suno reuses the lyrics it hears in the source. |
| `custom_mode`, `style`, `title`, `vocal_gender`, `model` | | As on `suno_generate`. |

**Returns:** a job id. Only cover audio you own; the `song-from-reference` recipe explains how to make a similar song from someone else's track. See [Content recipes](https://nodaro.ai/docs/mcp/recipes).

## `suno_mashup`

Blends two tracks into a mashup.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_url_1` or `audio_asset_id_1` | string | The first track. |
| `audio_url_2` or `audio_asset_id_2` | string | The second track. |
| `custom_mode`, `style`, `negative_style`, `title`, `vocal_gender` | | As on `suno_generate`. |

**Returns:** a job id.

## `suno_replace_section`

Generates one part of a Suno song again, and keeps the rest.

**Permission:** `workflows:execute`. **Credits:** 20.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno song. |
| `infill_start_s`, `infill_end_s` | number | **Required.** The part to replace, in seconds. It must last 6 to 60 seconds and at most half of the song. |
| `prompt` | string | **Required.** What the new part should contain, up to 5,000 characters. |
| `tags` | string | **Required.** Style tags for the new part, up to 500 characters. |
| `negative_tags` | string | Styles to keep out of the new part. |
| `full_lyrics` | string | The lyrics of the whole song after the change, both changed and unchanged parts. |
| `title` | string | Up to 80 characters. |

**Returns:** a job id.

## `suno_add_vocals`

Adds vocals to a Suno instrumental.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno instrumental. |
| `model` | string | `V6` (default), `V6_WILD`, `V6_MINI`, `V4_5PLUS`, `V5` or `V5_5`. |

**Returns:** a job id.

## `suno_add_instrumental`

Adds an instrumental layer to a Suno song.

**Permission:** `workflows:execute`. **Credits:** 30.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno song. |
| `model` | string | `V6` (default), `V6_WILD`, `V6_MINI`, `V4_5PLUS`, `V5` or `V5_5`. |

**Returns:** a job id.

## `suno_separate_stems`

Splits a Suno song into vocals and instrumental, or into a stem for each instrument. It works only on songs made with Suno; for other audio, use [`separate_audio`](https://nodaro.ai/docs/mcp/tools/audio#separate_audio).

**Permission:** `workflows:execute`. **Credits:** 40.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno song. |
| `type` | string | `separate_vocal` (default) for vocals and instrumental, or `split_stem` for every instrument. |

**Returns:** a job id.

## `suno_convert_wav`

Converts a Suno song to a lossless WAV file.

**Permission:** `workflows:execute`. **Credits:** 10.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of the Suno song. |

**Returns:** a job id.

## `suno_music_video`

Makes an MP4 music video from a Suno song. The pictures come from the audio, and there is no style or prompt to set. It works like the [Music Video](https://nodaro.ai/docs/nodes/video/music-video) node.

**Permission:** `workflows:execute`. **Credits:** 10.

| Parameter | Type | Notes |
| --- | --- | --- |
| `audio_asset_id` | string | **Required.** The Nodaro job id of a Suno song. Songs from other models, such as MiniMax or ElevenLabs, cannot be used. |

**Returns:** a job id.

## Frequently asked questions

### What is the difference between generate_music and suno_generate?

generate_music is the simple tool for a track from a prompt, with Suno V6 by default and MiniMax for short instrumental loops. suno_generate exposes Suno's own controls, such as custom mode with your lyrics and style, weirdness, style weight and negative styles.

### How much does a Suno song cost?

30 credits per generation, on every Suno version. Lyrics, style boost, WAV conversion and music videos cost 10 credits, and replacing a section costs 20.

### Can I split any song into stems?

suno_separate_stems works only on a song made with Suno in Nodaro. For any other audio, use separate_audio, which splits vocals and instruments with Demucs.

### How do I make a song with my own lyrics?

Call suno_generate with custom_mode set to true, your lyrics with section tags such as [Verse] and [Chorus], and a style. With generate_music, passing lyrics switches to the same custom mode.
