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 tunova
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
npm i tunova
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
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.
Release files for tunova 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tunova-0.1.0.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tunova-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.6 kB
Release files / tunova-0.1.0.tar.gz
| Download URL | tunova-0.1.0.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12279a8ef4aa328b8b73c61bce331aef09f45ce3be13fe2865f2bb8a58b8c129
|
|
BLAKE2b-256 checksum How to use checksums |
5945f787f1e20966584a074b3fabbef8b5c7798a9a33f38de1d36e4fffdc5002
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Release files / tunova-0.1.0-py3-none-any.whl
| Download URL | tunova-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2fb2b0b444e365b39a2c1de6113b8ecbe3d6dc5d1db369f768eddf6faf1d387b
|
|
BLAKE2b-256 checksum How to use checksums |
151c2670343f61b3743777db804ae768d40ad86113047ed0d808f4fe255e8938
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|