tunova
Server Details
Generate Suno AI music (v5.5) from any MCP client. Async; billed only on success.
- Status
- Healthy
- Uptime
- 100.0% over 81 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- erliona/tunova-sdk
- GitHub Stars
- 0
- Server Listing
- Tunova
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a clearly distinct role in an async workflow: generate starts a job, check does a single non-blocking status read, and wait polls until completion. The descriptions explicitly differentiate check_song from wait_for_song, preventing misselection.
All three tools follow a consistent snake_case verb_noun pattern: check_song, generate_song, wait_for_song. The shared _song suffix reinforces the domain and predictability.
Three tools is exactly right for a focused async song-generation workflow with start, poll-wait, and single-check operations. No tool feels redundant or missing for the stated purpose.
The core lifecycle is covered: start a generation, wait for completion, and check status. Minor gaps exist—no cancel/delete job, no list jobs, and no retrieval of past results beyond job_id—but agents can work around these for the primary flow.
Available Tools
3 toolscheck_songAInspect
Get the current status of a song job by job_id — a single check with no waiting. Returns the audio URLs if complete, an error if it failed, or 'processing' if still rendering.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned by generate_song. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It transparently states the outcome states: 'Returns the audio URLs if complete, an error if it failed, or 'processing' if still rendering.' It also discloses the non-blocking nature ('no waiting'). The description doesn't mention auth or side effects, but for a read-only status check this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main action and key differentiators ('single check with no waiting') are front-loaded, and every clause adds value by specifying behavior and return outcomes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description fully covers what happens: returns URLs on success, error on failure, 'processing' if pending. It also mentions the non-blocking behavior. The sibling names (generate_song, wait_for_song) provide additional context, making this description complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the job_id parameter is fully described in the schema ('The job_id returned by generate_song'). The description only reiterates that the tool works 'by job_id' without adding additional syntax or format details. Baseline 3 applies as the schema already handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get the current status of a song job by job_id'. It uses a specific verb ('Get'), specifies the resource ('song job'), and differentiates itself from siblings by emphasizing 'a single check with no waiting', which distinguishes it from wait_for_song.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys usage context by contrasting this tool with waiting: 'a single check with no waiting'. This implies it should be used for one-shot status checks rather than blocking until completion, effectively differentiating it from wait_for_song. However, it stops short of explicitly stating 'use this when you want to poll' or naming the alternative for waiting scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_songAInspect
Start generating a song with Suno. Returns immediately with a job_id — a full render takes 1-3 minutes, so this does NOT return audio. After calling this, call wait_for_song with the returned job_id to get the audio URL when ready. Costs 10 tokens, billed only on success.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Style/genre, e.g. 'lofi hip hop, mellow, rainy'. Most useful in custom mode. | |
| model | No | Suno model: v6, or v5.5 as a compatibility alias for v6. Optional; the account default is unchanged. | |
| title | No | Song title (custom mode). | |
| custom | No | false (default): describe the song and Suno writes everything. true: `prompt` is the literal lyrics, and `tags`/`title` are used. | |
| prompt | Yes | What the song should be about (simple mode), or the exact lyrics (when custom=true). | |
| instrumental | No | If true, generate without vocals. | |
| idempotency_key | No | Optional logical-request id. Reuse it to recover one submit; use a new value to intentionally generate the same song again or retry after a terminal failed job. When omitted, Tunova derives a stable key from the song arguments for safe automatic retries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses async behavior, that no audio is returned, the 1-3 minute render window, the job_id handoff, and the billing model (charged only on success). It stops short of stating auth/permission requirements or rate limits, but covers the traits an agent most needs to behave correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the action, then async semantics, then the required next call, then cost. Every sentence earns its place and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain returns, and it does: it specifies the job_id response shape and explicitly rules out audio. It also covers timing and cost, leaving nothing an agent needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters, including the v6/v5.5 enum and the custom/idempotency_key mechanics, are already documented in the schema. The description adds no parameter-level information beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start generating a song with Suno') and immediately characterizes the operation as asynchronous, which distinguishes it from sibling check_song and wait_for_song. An agent can tell exactly what this tool initiates without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the follow-up condition and the alternative to use next ('call wait_for_song with the returned job_id'), plus the cost gate ('10 tokens, billed only on success'). It does not explain when the sibling check_song would be preferred over wait_for_song, so the routing guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_songAInspect
Wait for a song job to finish and return the audio when ready. Polls server-side for up to ~45 seconds. If the song is ready, returns the clips with audio URLs. If it is still rendering, returns its status so you can call wait_for_song again with the same job_id. Safe to call repeatedly — it only reads status, never starts a new song.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned by generate_song. | |
| max_wait_seconds | No | How long to wait before returning (default 45, max 55). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and excels. It discloses polling limits (~45 seconds), return behavior on success vs. still rendering, idempotency (safe to call repeatedly), and that it never starts a new song. This is rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose, then behavioral details, then safety. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the polling loop, success/retry paths, and safety profile. It is complete for a two-parameter tool with no annotations, covering both how and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by referencing 'same job_id' for retries and the ~45-second polling window, which complements the schema's max_wait_seconds parameter and clarifies intended usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Wait for a song job to finish and return the audio') and clearly distinguishes itself from siblings: it polls for completion rather than just checking status (check_song) or creating a job (generate_song).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use it after generating a song, and if not ready, call again with the same job_id. It implicitly differentiates from alternatives by stating it returns audio when ready, but does not explicitly mention check_song as an alternative for status-only checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
generate_song2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Suno model version (v5.5 — the only model). Optional; defaults to v5.5."New value: +"Suno model: v6, or v5.5 as a compatibility alias for v6. Optional; the account default is unchanged." - changed
Input schema / properties / model / enumPrevious value: -[ - "v5.5" -]New value: +[ + "v6", + "v5.5" +]
1 tool update
- Changed
generate_song1 field changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Optional logical-request id. Reuse it to recover one submit; use a new value to intentionally generate the same song again or retry after a terminal failed job. When omitted, Tunova derives a stable key from the song arguments for safe automatic retries.", + "maxLength": 128, + "minLength": 1, + "type": "string" +}
1 tool update
- Changed
generate_song2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Suno model version. Omit to use the account default."New value: +"Suno model version (v5.5 — the only model). Optional; defaults to v5.5." - changed
Input schema / properties / model / enumPrevious value: -[ - "v4.5", - "v5", - "v5.5" -]New value: +[ + "v5.5" +]
3 tool updates
- First observed
check_song - First observed
generate_song - First observed
wait_for_song
Related MCP Connectors
Generate full songs with vocals, instrumentals and sound effects from text. One server for Suno, Google Lyria, Mureka, MiniMax, ACE-Step, YuE and ElevenLabs. Your agent can quote the credit cost before generating, start a song, wait for it to finish and return download links. Sign in with OAuth; optional daily credit caps; retries never charge twice.
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
MCP server for Producer/Riffusion AI music generation
Generate AI video, images and audio, and browse your history, from any MCP client.
Related MCP Servers
- AlicenseBqualityBmaintenanceA RunAPI MCP server for the Suno music generation models, enabling task creation (text-to-music, covers, mashups, etc.), polling, and pricing lookup through a single API key.21488 npm1Apache 2.0
- AlicenseAqualityCmaintenanceMCP server that enables generating songs or instrumental music using Suno V6, V6_MINI, and V6_WILD models via the Kie.ai API, with support for checking task status and retrieving audio URLs.21MIT
- AlicenseAqualityDmaintenanceMCP server for Suno music generation API that enables generating lyrics and custom songs with style tags, model selection, and automatic polling for task completion.2MIT
- AlicenseAqualityBmaintenanceAn MCP server that generates music using your Suno account, enabling credit checking, song generation, and MP3 downloads without third-party APIs.2754 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.