Tunova
Allows generating music with Suno (v5.5) through the Tunova REST and MCP interfaces, with async generation and billing only on success.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Tunova SDK
Tiny, zero-dependency clients + MCP manifest for the Tunova music API — generate music with Suno (v5.5) over a simple REST or MCP interface. Generation is async and billed only on success: a failed render refunds itself.
Python →
python/tunova.py— stdlib only, Python 3.8+.Node / TypeScript →
node/tunova.ts— Node 18+ (fetchbuilt in).MCP →
server.json— hosted Streamable-HTTP server athttps://api.tunova.ai/mcp.
Get a key (50 free tokens, no card) at https://tunova.ai. Full reference: https://api.tunova.ai/docs · live status: https://tunova.ai/status.
Tunova is an independent service, not affiliated with or endorsed by Suno. Tracks come from paid Suno plans; review Suno's terms for your use case.
Python
pip install tunovafrom tunova import Tunova
t = Tunova("sk_live_…")
job = t.generate("warm lo-fi piano to study to", model="v5.5")
print(job["clips"][0]["audio_url"] if job["status"] == "complete" else job["error"])Prefer no install? python/tunova.py is stdlib-only — vendor the single file and import it.
Related MCP server: Suno MCP
Node / TypeScript
npm i tunovaimport { Tunova } from "tunova";
const t = new Tunova(process.env.TUNOVA_API_KEY!);
const job = await t.generate("warm lo-fi piano to study to", { model: "v5.5" });
console.log(job.status === "complete" ? job.clips[0]?.audio_url : job.error);Both generate() calls submit a job and poll until the track is delivered. Prefer fire-and-forget?
Use submit() with a callback_url and take an HMAC-signed webhook instead.
MCP — give an AI agent the power to make music
claude mcp add --transport http tunova https://api.tunova.ai/mcp \
--header "X-API-Key: sk_live_…"Tools: generate_song · wait_for_song · check_song. Same API key, same billed-on-success rule.
Verifying webhooks
If you pass callback_url, Tunova POSTs the terminal job with
X-Webhook-Signature: sha256=<hmac> over <X-Webhook-Timestamp>.<rawBody>, keyed with your
whsec_… secret (view/rotate it on the dashboard's API-keys page). Verify against the raw body
before parsing — both SDKs ship a verifier (Tunova.verify_webhook / verifyWebhook).
License
MIT — see LICENSE. The SDK code is yours to use freely; your use of the Tunova API is governed by the terms.
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.
Inputs: job_id (required).
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.
Inputs: prompt (required), tags, model, title, +3 more.
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.
Inputs: job_id (required), max_wait_seconds.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: generate_song starts a job, check_song provides a one-time status check, and wait_for_song polls until completion. The overlap between check_song and wait_for_song is minor since one is a single check and the other is a polling loop.
All tool names follow a consistent verb_noun pattern with underscores (check_song, generate_song, wait_for_song), making the set predictable and easy to navigate.
Three tools is well-scoped for the server's single purpose of generating songs, covering initiation, status checking, and waiting. Each tool is necessary and there is no bloat.
The toolset fully covers the song generation workflow: start a job (generate_song), check status (check_song), and retrieve audio after waiting (wait_for_song). There are no obvious gaps like missing cancellation or listing, which are not necessary for this narrow domain.
Maintenance
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.
MCP server for Producer/Riffusion AI music generation
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
Generate AI video, images and audio, and browse your history, from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables local AI models to automatically generate lyrics and style prompts, then submit songs to Suno via browser automation.MIT
- AlicenseAqualityBmaintenanceAn MCP server that generates music using your Suno account, enabling credit checking, song generation, and MP3 downloads without third-party APIs.2749 PyPIMIT
- 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
- 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.2196 npm2Apache 2.0