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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| tunova-0.1.0.tar.gz | 5.9 kB | Without provenance | Details for tunova-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tunova-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for tunova-0.1.0-py3-none-any.whl |
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
|
Security for tunova 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.