Tunova

io.github.erliona由 GitHub 账号 erliona 发布v0.1.1更新于 Nov 2, 2026

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

已验证Streamable HTTP可网页运行媒体与设计AI 与机器学习

概览

AI 生成的概览

托管式 MCP 服务器,让助手根据文字提示生成 Suno AI 音乐,并取回成品音频链接。

可以做什么
  • 根据文字提示提交歌曲生成任务,返回任务 ID
  • 等待任务完成并取得音频片段链接
  • 单次查询任务状态,返回音频链接、错误信息或处理中状态
  • 生成是异步的,完整渲染大约需要一到三分钟
适用场景
适合希望助手在对话中直接创作背景音乐、短曲或配乐,并且能接受几分钟异步等待的场景。
运行要求
远程 Streamable HTTP 端点,无需本地安装。需要 Tunova API 密钥,通过 X-API-Key 请求头发送。提供商提供含 50 个代币的免费密钥。需要能访问提供商 API 的网络。
安装前请注意
每次生成消耗 10 个代币,仅在成功时计费,会扣减免费或付费代币余额。API 密钥属于机密,以请求头形式发送,请勿写入共享配置。音频由第三方服务生成,该服务与 Suno 无关联也未获其认可,曲目来自付费 Suno 方案,请按自身用途查看 Suno 条款。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Tunova,将其添加到工作区。
  2. 连接 X-API-Key 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.erliona%2Ftunova/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "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.

来源:README.md,提交 580dbd0

工具

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.

输入参数tagsmodeltitlecustomprompt必填instrumentalidempotency_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.

输入参数job_id必填max_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.

输入参数job_id必填

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分