Suno-MCP

Suno-MCP

A Model Context Protocol server that allows AI assistants to generate music through the Suno API, supporting custom lyrics and style inputs or inspiration-based creation.

Category
Visit Server

Tools

generate_music_suno

Generates a song using the Suno API. Provide lyrics, style, and title for custom mode, or a description for inspiration mode. Returns the audio URL upon completion. Polling for results may take a few minutes. When returning an audio URL, please use the following HTML format for user convenience: ```html <audio controls> <source src="YOUR_AUDIO_URL_HERE" type="audio/mpeg"> </audio> <br> <a href="YOUR_AUDIO_URL_HERE" download="SONG_TITLE.mp3"> 点击这里下载喵! </a> ```

README

Suno 音乐生成器 MCP 服务器

这是一个基于 Model Context Protocol (MCP) 的服务器,它允许您通过调用工具来使用 Suno API 生成音乐。

✨ 特性

  • 通过 MCP 与 Suno API 交互。
  • 支持自定义模式(提供歌词、风格、标题)和灵感模式(提供描述)。
  • 支持继续生成已有的歌曲片段。
  • 自动轮询任务状态并在完成后返回音频 URL。
  • 可配置的 API Key 和模型版本。

🚀 开始使用

📋 先决条件

  • Node.js (建议使用 LTS 版本)
  • npm (通常随 Node.js 一起安装) 或 yarn

⚙️ 安装

  1. 克隆此仓库 (如果您还没有的话):

    git clone <your-repository-url>
    cd <repository-directory>
    
  2. 安装项目依赖:

    npm install
    # 或者使用 yarn
    # yarn install
    

🔑 配置

  1. 在项目根目录下创建一个名为 config.env 的文件。
  2. 在该文件中添加您的 Suno API Key:
    SunoKey=sk_YOUR_SUNO_API_KEY_HERE
    
    sk_YOUR_SUNO_API_KEY_HERE 替换为您真实的 Suno API Key。

▶️ 运行 MCP 服务器

要启动 MCP 服务器,请在项目根目录下运行:

npm start
# 或者,如果您在 package.json 中定义了 "dev" 脚本并希望使用 ts-node-dev 进行热重载开发:
# npm run dev
# 或者直接运行编译后的 JavaScript 文件:
# node build/index.js

服务器启动后,它将通过标准输入/输出 (stdio) 与兼容的 MCP 客户端进行通信。

🔌 在 MCP 客户端中部署

要在您的 MCP 客户端(例如一个支持 MCP 的 AI 助手或开发工具)中使用此服务器,您通常需要在客户端的配置文件中添加一个服务器条目。以下是一个示例配置,请根据您的客户端具体要求进行调整:

{
  "YOUR_UNIQUE_SERVER_ID": { // 替换为您客户端生成的唯一 ID
    "name": "Suno-MCP",     // 您为此服务器指定的名称
    "type": "stdio",        // 通信类型,对于此服务器是 "stdio"
    "description": "让AI唱歌", // 服务器的简短描述
    "isActive": true,       // 是否激活此服务器
    "command": "node",      // 用于启动服务器的命令
    "args": [
      "<path-to-your-project>/MCP-Suno/build/index.js" // 指向编译后的 index.js 文件的绝对或相对路径
    ],
    "env": {
      // 环境变量可以传递给服务器进程
      // 如果您在此处设置了 SunoKey,它可能会覆盖 config.env 中的值
      // "SunoKey": "sk_YOUR_SUNO_API_KEY_FROM_CLIENT_CONFIG"
    },
    "cwd": "<path-to-your-project>/MCP-Suno" // 可选:设置服务器的工作目录,通常是项目根目录
  }
}

重要提示:

  • YOUR_UNIQUE_SERVER_ID: 这通常由您的 MCP 客户端自动生成或要求您提供一个唯一的标识符。
  • command: 对于 Node.js 项目,通常是 node
  • args: 数组中的第一个参数应该是到编译后的 build/index.js 文件的路径。请确保将 <path-to-your-project> 替换为您的实际项目路径。
  • env: 您可以在这里设置环境变量。服务器脚本 (index.ts) 会尝试从项目根目录下的 config.env 文件加载 SunoKey。如果客户端配置中的 env 也设置了 SunoKey,其行为(是否覆盖)可能取决于 Node.js 处理环境变量的优先级和 dotenv 包的配置。为了确保 SunoKey 被正确加载,建议主要通过项目根目录下的 config.env 文件进行配置,如“🔑 配置”部分所述。
  • cwd: 设置工作目录为项目根目录(包含 build 文件夹和 config.env 的目录)通常是个好主意,以确保相对路径(如 ../config.env 相对于 build/index.js)能正确解析。

请查阅您的 MCP 客户端文档以获取有关如何添加和配置 MCP 服务器的详细说明。

🛠️ 工具说明

此 MCP 服务器提供以下工具:

generate_music_suno

使用 Suno API 生成歌曲。

描述:

Generates a song using the Suno API. Provide lyrics, style, and title for custom mode, or a description for inspiration mode. Returns the audio URL upon completion. Polling for results may take a few minutes.

When returning an audio URL, please use the following HTML format for user convenience:
```html
<audio controls>
  <source src="YOUR_AUDIO_URL_HERE" type="audio/mpeg">
</audio>
<br>
<a href="YOUR_AUDIO_URL_HERE" download="SONG_TITLE.mp3">
  点击这里下载喵!
</a>

**输入参数 (`inputSchema`):**

*   `prompt` (string): 歌词内容。自定义模式下必需。示例: `'[Verse 1]\nUnder the starry sky...'`
*   `tags` (string): 音乐风格标签,逗号分隔。自定义模式下必需。示例: `'acoustic, folk, pop'`
*   `title` (string): 歌曲标题。自定义模式下必需。示例: `'Starry Night Serenade'`
*   `mv` (string, 可选): 模型版本。可选值: `"chirp-v3-0"`, `"chirp-v3-5"`, `"chirp-v4"`。默认为 `'chirp-v4'`。
*   `make_instrumental` (boolean, 可选): 是否生成纯音乐。默认为 `false`。
*   `gpt_description_prompt` (string, 可选): 灵感模式的描述。如果提供此参数,则 `prompt`, `tags`, 和 `title` 不是用户严格要求的。示例: `'A cheerful upbeat song about a sunny day.'`
*   `task_id` (string, 可选): 要继续的先前歌曲的任务 ID。如果提供,则 `continue_at` 和 `continue_clip_id` 也需要。
*   `continue_at` (number, 可选): 从歌曲的哪个时间点(秒)开始继续。需要 `task_id` 和 `continue_clip_id`。
*   `continue_clip_id` (string, 可选): 要继续的歌曲片段的剪辑 ID。需要 `task_id` 和 `continue_at`。

**验证逻辑:**
*   如果未提供 `gpt_description_prompt`,则 `prompt`, `tags`, 和 `title` 都是必需的。
*   如果提供了 `task_id`,则 `continue_at` 和 `continue_clip_id` 也必须提供。

**输出:**
成功时,返回一个包含音频 URL 的文本内容。如果发生错误,将返回错误信息。

## 💡 示例 MCP 请求

**生成自定义歌曲:**
```json
{
  "type": "call_tool",
  "params": {
    "name": "generate_music_suno",
    "arguments": {
      "prompt": "[Verse 1]\nIn the digital realm, where code streams flow,\nA kitty coder, with a vibrant glow.\n[Chorus]\nMeow, meow, MCP, oh so grand,\nGenerating tunes across the land!",
      "tags": "electronic, upbeat, synthwave",
      "title": "MCP Kitty's Anthem",
      "mv": "chirp-v4"
    }
  }
}

使用灵感模式生成歌曲:

{
  "type": "call_tool",
  "params": {
    "name": "generate_music_suno",
    "arguments": {
      "gpt_description_prompt": "A lofi chill beat for late night coding sessions",
      "mv": "chirp-v3-5"
    }
  }
}

继续生成歌曲:

{
  "type": "call_tool",
  "params": {
    "name": "generate_music_suno",
    "arguments": {
      "task_id": "your_previous_task_id_here",
      "continue_at": 60,
      "continue_clip_id": "your_previous_clip_id_here",
      "mv": "chirp-v4"
      // prompt, tags, title might be needed by Suno API for continuation,
      // or it might infer from the original task.
      // Check Suno API documentation for specifics on continuation.
    }
  }
}

🤝 贡献

欢迎提交 Pull Request 或 Issue 来改进此项目!

📄 许可证

(根据您的项目选择一个许可证,例如 MIT, Apache 2.0 等) 例如: This project is licensed under the MIT License.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured