Tunova

io.github.erlionaPublished by GitHub account erlionav0.1.1Updated Nov 2, 2026

Generate Suno AI music (v5.5) from any MCP client. Async; billed only on success.

VerifiedStreamable HTTPWeb executableMedia & DesignAI & ML

Overview

AI-generated overview

Hosted MCP server that lets an assistant generate Suno AI music tracks from a text prompt and retrieve the finished audio URLs.

What you can do
  • Start a song generation job from a text prompt and get back a job ID
  • Wait for a job to finish and receive the audio clip URLs
  • Check a job's status once without waiting, returning audio URLs, an error, or processing
  • Generation is asynchronous: a full render takes roughly one to three minutes
When to use it
Useful when you want an assistant to create background music, jingles or short tracks from a description without leaving the chat, and you are fine with an asynchronous job that takes a few minutes.
Requirements
Remote Streamable HTTP endpoint; no local install. Requires a Tunova API key sent in the X-API-Key header. A free key with 50 tokens is available from the provider. Network access to the provider's API is needed.
Before you install
Generation costs 10 tokens per song and is billed only on success, so usage draws down a paid or free token balance. The API key is a secret sent as a header; keep it out of shared configs. Audio is produced through a third-party service that is independent of and not endorsed by Suno, and tracks come from paid Suno plans, so review Suno's terms for your use case.

Installation

In SourceWeft

  1. Open Tunova in the dashboard and add it to a workspace.
  2. Connect X-API-Key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.erliona%2Ftunova/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tunova": {
      "type": "http",
      "url": "https://api.tunova.ai/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

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+ (fetch built in).
  • MCP → server.json — hosted Streamable-HTTP server at https://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

bash
pip install tunova
python
from 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.

Node / TypeScript

bash
npm i tunova
ts
import { 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

bash
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.

Source: README.md at commit 580dbd0

Tools

3

generate_song

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.

Parameterstagsmodeltitlecustompromptrequiredinstrumentalidempotency_key

wait_for_song

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.

Parametersjob_idrequiredmax_wait_seconds

check_song

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.

Parametersjob_idrequired

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts