suno_cover_music
Transform existing songs into new genres and styles. Create acoustic, jazz, or electronic covers and remixes while preserving original melodies and lyrics.
Instructions
Create a cover or remix version of an existing song in a different style.
This generates a new version of a song with a different arrangement, genre,
or mood while keeping the core melody and lyrics.
Use this when:
- You want to hear a song in a different genre
- You want an acoustic/unplugged version of an electronic song
- You want to remix a song with a different vibe
Returns:
Task ID and the cover audio information.Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| audio_id | Yes | ID of the audio to create a cover of. This is the 'id' field from a previous generation. | |
| prompt | No | Description of how you want the cover to sound. Examples: 'acoustic unplugged version', 'jazz lounge style', '80s synthwave remix' | |
| style | No | Target music style for the cover. Examples: 'jazz, smooth, saxophone', 'acoustic folk, gentle guitar', 'electronic dance, high energy' | |
| model | No | Model version to use for the cover. | chirp-v5-5 |
| callback_url | No | Webhook callback URL for asynchronous notifications. When provided, the API will call this URL when the cover is complete. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- tools/audio_tools.py:220-277 (handler)Main handler function for suno_cover_music tool. Creates a cover or remix version of an existing song in a different style. Uses the @mcp.tool() decorator for registration. Accepts parameters: audio_id, prompt, style, model, and callback_url. Calls client.generate_audio() with action='cover' and returns formatted result.
@mcp.tool() async def suno_cover_music( audio_id: Annotated[ str, Field( description="ID of the audio to create a cover of. This is the 'id' field from a previous generation." ), ], prompt: Annotated[ str, Field( description="Description of how you want the cover to sound. Examples: 'acoustic unplugged version', 'jazz lounge style', '80s synthwave remix'" ), ] = "", style: Annotated[ str, Field( description="Target music style for the cover. Examples: 'jazz, smooth, saxophone', 'acoustic folk, gentle guitar', 'electronic dance, high energy'" ), ] = "", model: Annotated[ SunoModel, Field(description="Model version to use for the cover."), ] = DEFAULT_MODEL, callback_url: Annotated[ str | None, Field( description="Webhook callback URL for asynchronous notifications. When provided, the API will call this URL when the cover is complete." ), ] = None, ) -> str: """Create a cover or remix version of an existing song in a different style. This generates a new version of a song with a different arrangement, genre, or mood while keeping the core melody and lyrics. Use this when: - You want to hear a song in a different genre - You want an acoustic/unplugged version of an electronic song - You want to remix a song with a different vibe Returns: Task ID and the cover audio information. """ payload = { "action": "cover", "audio_id": audio_id, "model": model, "callback_url": callback_url, } if prompt: payload["prompt"] = prompt if style: payload["style"] = style result = await client.generate_audio(**payload) return format_audio_result(result) - core/types.py:6-14 (schema)Schema type definition for SunoModel - a Literal type defining all valid Suno model versions (chirp-v3-0 through chirp-v5-5). Used as the type annotation for the model parameter in suno_cover_music.
SunoModel = Literal[ "chirp-v3-0", "chirp-v3-5", "chirp-v4", "chirp-v4-5", "chirp-v4-5-plus", "chirp-v5", "chirp-v5-5", ] - core/utils.py:43-56 (helper)Helper function format_audio_result used by suno_cover_music to format the API response. Converts the dictionary result to a JSON string with submission guidance for polling.
def format_audio_result(data: dict[str, Any]) -> str: """Format audio generation result as JSON. Args: data: API response dictionary Returns: JSON string representation of the result """ return json.dumps( _with_submission_guidance(data, "suno_get_task", "suno_get_tasks_batch"), ensure_ascii=False, indent=2, ) - tools/__init__.py:1-13 (registration)Registration point where audio_tools module (containing suno_cover_music) is imported, triggering the @mcp.tool() decorator to register the tool with the MCP server.
"""Tools module for MCP Suno server.""" # Import all tools to register them with the MCP server from tools import ( audio_tools, info_tools, lyrics_tools, media_tools, persona_tools, style_tools, task_tools, ) - main.py:183-185 (registration)Reference listing for suno_cover_music in the server's tool listing output. Part of the startup banner that displays available tools.
"name": "suno_cover_music", "description": "Create a cover/remix in a different style", },