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 分