mcpField
T
tunova

tunova

远程服务
github.com/erliona媒体与设计016 周前更新
代码仓库

关于 tunova

tunova 是面向 MCP 客户端和开发者的 Suno AI 音乐生成 SDK 与托管 MCP 服务,支持 v5.5。生成任务异步运行,且仅在成功时计费。

主要功能

  1. 01通过 Suno v5.5 生成音乐
  2. 02Python 与 Node/TypeScript SDK
  3. 03提交任务并轮询结果
  4. 04回调 URL 与签名 Webhook
  5. 05失败任务不计费

适用场景

  1. 01从 MCP 客户端生成曲目
  2. 02在 Python 或 Node 项目中调用音乐生成
  3. 03通过 Webhook 接收异步任务结果

MCP 相关

托管的 Streamable HTTP MCP 服务提供 generate_song、wait_for_song 和 check_song 工具,使用 Tunova API 密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.tunova.ai/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://api.tunova.ai/mcp需要授权

工具

3
参数类型必填说明
tagsstring否风格/流派,例如 'lofi hip hop, mellow, rainy'。自定义模式下最有用。
modelenum否Suno 模型:v6,或作为兼容性别名的 v5.5(对应 v6)。可选;不会更改账户默认设置。v6 | v5.5
titlestring否歌曲标题(自定义模式)。
customboolean否false(默认):描述歌曲,由 Suno 完成所有内容。true:`prompt` 是歌词原文,并使用 `tags`/`title`。
promptstring是歌曲主题(简单模式),或准确歌词(custom=true 时)。
instrumentalboolean否如果为 true,则生成无 vocals 的歌曲。
idempotency_keystring否可选的逻辑请求 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)。

许可证

MIT — 详见 LICENSE。SDK 代码可供你自由使用;你对 Tunova API 的使用受条款约束。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。