关于 tunova
tunova 是面向 MCP 客户端和开发者的 Suno AI 音乐生成 SDK 与托管 MCP 服务,支持 v5.5。生成任务异步运行,且仅在成功时计费。
主要功能
- 01通过 Suno v5.5 生成音乐
- 02Python 与 Node/TypeScript SDK
- 03提交任务并轮询结果
- 04回调 URL 与签名 Webhook
- 05失败任务不计费
适用场景
- 01从 MCP 客户端生成曲目
- 02在 Python 或 Node 项目中调用音乐生成
- 03通过 Webhook 接收异步任务结果
MCP 相关
托管的 Streamable HTTP MCP 服务提供 generate_song、wait_for_song 和 check_song 工具,使用 Tunova API 密钥。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.tunova.ai/mcpclaude mcp add --transport http erliona-tunova https://api.tunova.ai/mcp{"mcpServers":{"erliona-tunova":{"type":"http","url":"https://api.tunova.ai/mcp"}}}在 Cursor 中打开{"servers":{"erliona-tunova":{"type":"http","url":"https://api.tunova.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"erliona-tunova":{"type":"http","url":"https://api.tunova.ai/mcp"}}}{"mcpServers":{"erliona-tunova":{"serverUrl":"https://api.tunova.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.tunova.ai/mcp需要授权工具
3| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tags | string | 否 | 风格/流派,例如 'lofi hip hop, mellow, rainy'。自定义模式下最有用。 |
| model | enum | 否 | Suno 模型:v6,或作为兼容性别名的 v5.5(对应 v6)。可选;不会更改账户默认设置。v6 | v5.5 |
| title | string | 否 | 歌曲标题(自定义模式)。 |
| custom | boolean | 否 | false(默认):描述歌曲,由 Suno 完成所有内容。true:`prompt` 是歌词原文,并使用 `tags`/`title`。 |
| prompt | string | 是 | 歌曲主题(简单模式),或准确歌词(custom=true 时)。 |
| instrumental | boolean | 否 | 如果为 true,则生成无 vocals 的歌曲。 |
| idempotency_key | string | 否 | 可选的逻辑请求 ID。重复使用该值可恢复一次提交;若要有意再次生成同一首歌曲,或在作业最终失败后重试,请使用新值。省略时,Tunova 会根据歌曲参数派生稳定的键,以支持安全自动重试。 |
详细介绍
Tunova SDK
轻量、零依赖客户端 + Tunova 音乐 API 的 MCP 清单 — 通过简单的 REST 或 MCP 接口,使用 Suno(v5.5)生成音乐。 生成过程为异步,且仅在成功时计费:渲染失败会自动退款。
- Python →
python/tunova.py— 仅使用标准库,Python 3.8+。 - Node / TypeScript →
node/tunova.ts— Node 18+(内置fetch)。 - MCP →
server.json— 托管的 Streamable-HTTP 服务:https://api.tunova.ai/mcp。
在 https://tunova.ai 获取密钥(赠送 50 个免费令牌,无需银行卡)。完整参考文档: https://api.tunova.ai/docs · 实时状态:https://tunova.ai/status。
Tunova 是一项独立服务,与 Suno 无关联,也未获 Suno 认可。曲目来自付费 Suno 方案;请根据你的使用场景查看 Suno 的条款。
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"])
不想安装?python/tunova.py 仅使用标准库 — 将这个单文件纳入项目,然后 import 即可。
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);
两种 generate() 调用都会提交任务,并轮询直至曲目交付。想要即发即忘?
使用 submit() 和 callback_url,改为接收 HMAC 签名的 Webhook。
MCP — 赋予 AI Agent 创作音乐的能力
claude mcp add --transport http tunova https://api.tunova.ai/mcp \
--header "X-API-Key: sk_live_…"
工具:generate_song · wait_for_song · check_song。使用相同的 API 密钥,并遵循相同的成功后计费规则。
验证 Webhook
如果传入 callback_url,Tunova 会 POST 终态任务,并使用你的 whsec_… 密钥(可在控制台的 API 密钥页面查看或轮换),对 <X-Webhook-Timestamp>.<rawBody> 进行 HMAC 签名,签名头为 X-Webhook-Signature: sha256=<hmac>。请先根据原始请求体验证,再进行解析 — 两个 SDK 都提供了验证器(Tunova.verify_webhook / verifyWebhook)。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。