MCPSuno

使用说明内容(Markdown格式)

  • 项目简介

    • MCPSuno 是一个基于 MCP 的服务器实现,聚合并暴露一组用于音乐生成与管理的工具(如生成音乐、扩展、改编、歌词、人物声线等),并提供信息性 Prompts,供 LLM 客户端通过 MCP 协议进行调用与管理。
    • 服务器通过 AceDataCloud 的 Suno API 提供实际的音乐、歌词与任务等功能的调用能力,核心职责包括资源/工具注册、类型化提示和模板渲染,以及通过 JSON-RPC 与客户端通信。
  • 主要功能点

    • MCP 核心能力:注册并暴露 Tools(工具)与 Prompts(提示模板),实现资源管理、数据访问、工具执行、Prompts 渲染等能力。
    • Suno API 封装:通过 HTTP 客户端向 Suno API 发送请求,实现 suno_generate_music、suno_generate_custom_music、suno_extend_music、suno_cover_music、suno_concat_music、suno_generate_with_persona、suno_generate_lyrics、suno_create_persona、suno_get_task、suno_get_tasks_batch、suno_list_models、suno_list_actions、suno_get_lyric_format_guide 等工具。
    • 多传输协议支持:标准输入/输出(stdio)和 HTTP 传输模式,客户端可通过传输模式与端口进行配置。
    • 安全与配置:需要 ACEDATACLOUD_API_TOKEN 环境变量来访问 Suno API;默认模型、请求超时、日志级别等通过环境变量进行配置。
    • Prompts 与工作流示例:提供 suno_music_generation_guide、suno_workflow_examples、suno_style_suggestions 等 prompts,帮助 LVL(LLM)理解如何选择工具和组织工作流。
  • 安装步骤

    • 克隆仓库并进入项目目录
    • 以开发模式安装依赖:使用 Python 的开发模式安装
    • 配置环境变量:在根目录创建或编辑 .env,设置 ACEDATACLOUD_API_TOKEN(以及可选的 SUNO_DEFAULT_MODEL、SUNO_REQUEST_TIMEOUT、ACEDATACLOUD_API_BASE_URL 等)
    • 运行服务器
      • 直接运行:python main.py
      • 亦可通过 MCP 客户端指定传输模式运行,例如 stdio 模式(默认)或 http 模式(通过 --transport http 指定并可设置端口)
  • 服务器配置(MCP 客户端需要的启动信息,配置以 JSON 格式表达,包含 server name、command、args 等)

    • server_name: suno
    • command: mcp-suno
    • args: ["--transport", "stdio"] // 使用标准输入输出传输(默认模式),如需通过 HTTP 访问改为 ["--transport", "http", "--port", "8000"]
    • 注释:MCP 客户端无需提供 API_TOKEN 等敏感信息在配置中,Token 应通过客户端环境或服务器端环境变量注入;服务器的启动命令应与部署环境相匹配。
    • 该配置确保 MCP 客户端能够按规范启动并连接到 MCP Suno 服务器,进行请求/响应的 JSON-RPC 交互。
  • 基本使用方法

    • 启动服务器后,确认控制台输出显示服务器就绪、可连接信息。
    • 使用 MCP 客户端向 suno_generate_music、suno_generate_lyrics、suno_get_task 等工具发送请求,服务端将调用 Suno API,并返回标准的 JSON-RPC 响应。
    • 开发过程中可结合 Prompt 模板(suno_music_generation_guide 等)来引导 LLM 选择合适的工具。
    • 如需在 Claude/VS Code 等环境中使用,请按照文档将 MCP 服务器配置到客户端的 mcpServers.json 中,使用命令启动服务器并设置环境变量。

服务器信息