Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,11 @@
"source": "third_party/square",
"description": "Work with payments, orders, catalog, customers, and invoices."
},
{
"name": "suno",
"source": "third_party/suno",
"description": "Generate Suno music through Ace Data Cloud and retrieve completed songs by task ID."
},
{
"name": "tailscale",
"source": "third_party/tailscale",
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc
| `workday` | [Workday](third_party/workday/) | Cursor | Integrations | Look up workers, organizations, time off, payroll, and recruiting data in Workday. |
| `whatsapp-business` | [WhatsApp Business](third_party/whatsapp-business/) | Cursor | Integrations | Send messages and manage templates, contacts, and phone numbers in WhatsApp Business. |
| `square` | [Square](third_party/square/) | Cursor | Integrations | Work with payments, orders, catalog, customers, and invoices. |
| `suno` | [Suno](third_party/suno/) | Ace Data Cloud Dev | Integrations | Generate Suno music through Ace Data Cloud and retrieve completed songs by task ID. |
| `tailscale` | [Tailscale](third_party/tailscale/) | Cursor | Integrations | Let Grok Bot reach MCP servers on your private Tailscale network. Sign in to Tailscale to connect your tailnet; Grok Bot joins it as one tagged device and only reaches the hosts you grant to tag:grokbot. |
| `highlevel` | [HighLevel](third_party/highlevel/) | Cursor | Integrations | Work with contacts, conversations, opportunities, calendars, and payments. |
| `finary` | [Finary](third_party/finary/) | Cursor | Integrations | Read your net worth, accounts, holdings, spending, and budgets. |
Expand Down
39 changes: 39 additions & 0 deletions third_party/suno/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"name": "suno",
"displayName": "Suno",
"version": "1.0.0",
"minClientVersions": {
"cursor": "3.13.0"
},
"description": "Generate Suno music through Ace Data Cloud and retrieve completed songs by task ID.",
"author": {
"name": "Ace Data Cloud Dev",
"email": "dev@acedata.cloud"
},
"homepage": "https://platform.acedata.cloud/models",
"repository": "https://github.com/AceDataCloud/SunoCursor",
"license": "MIT",
"logo": "assets/logo.jpg",
"keywords": [
"suno",
"music generation",
"ai music",
"audio",
"acedatacloud",
"mcp"
],
"category": "integrations",
"tags": ["suno", "music", "audio", "mcp"],
"variables": {
"type": "object",
"properties": {
"ACEDATACLOUD_API_TOKEN": {
"type": "string",
"title": "Ace Data Cloud API token",
"description": "Service API key from https://platform.acedata.cloud/console/applications with Suno access."
}
},
"required": ["ACEDATACLOUD_API_TOKEN"]
},
"mcpServers": "./mcp.json"
}
Comment thread
cursor[bot] marked this conversation as resolved.
5 changes: 5 additions & 0 deletions third_party/suno/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog

## 1.0.0

- Initial Cursor plugin with the existing Ace Data Cloud Suno hosted MCP and a task-safe music skill.
21 changes: 21 additions & 0 deletions third_party/suno/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Ace Data Cloud

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
58 changes: 58 additions & 0 deletions third_party/suno/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Suno for Cursor

Generate Suno music in Cursor through the [Ace Data Cloud](https://platform.acedata.cloud?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_platform_en) hosted MCP server. The plugin provides Suno's music, lyrics, audio editing, and task-query tools, plus a short skill for safe async use. The hosted tool schemas determine the available actions and models.

[简体中文教程](readme/README_zh_Hans.md) · [Copyable first-run prompt](examples/first-song.md) · [Current pricing](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_pricing_en)

## 1. Find and install Suno

In Cursor 3.24, open **Customize → Browse Marketplace**, search for **Suno**, and check that the author is **Ace Data Cloud Dev** and the logo is the Suno mark. Click **Add**. Older releases may put Plugins under Settings. The chat command `/add-plugin suno` is another entry point. If the official listing has not appeared yet, this source can be reviewed locally under `~/.cursor/plugins/local/suno/`; local installation does not prove Marketplace publication.

## 2. Get an API key with Suno access

1. Sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_api_key_en).
2. Open **General application** or a Suno-specific application. Copy an existing API key, or use **Manage Keys → Create** for a separate Cursor key.
3. Check that Suno is enabled and that your balance covers the [current price](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_pricing_en). If you restrict allowed APIs, include generation `/suno/audios` and retrieval `/suno/tasks`.

Use the API key, not a platform management token. Keep it out of prompts and repository files.

## 3. Configure the plugin

Open **Customize → Plugins → Suno → Configure**, paste the key string into **Ace Data Cloud API token**, and click **Save**. Wait for Save to finish, then reopen Configure to check that the value is masked. Cursor uses it as `ACEDATACLOUD_API_TOKEN` in the MCP Authorization header; the plugin adds `Bearer ` itself. Reconnect the plugin if its tools do not appear.

The transport is a hosted HTTP MCP endpoint; no Python or local server is required:

```json
{
"mcpServers": {
"suno": {
"type": "http",
"url": "https://suno.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}"}
}
}
}
```

## 4. Make and retrieve the first song

Open an Agent chat and paste the [first-song prompt](examples/first-song.md). It asks the agent to check available models and price, call `suno_generate_music` **once**, then use `suno_get_task` with the returned `task_id`. `chirp-v6` is an example only if it appears in the live model list; use a model your account can access.

The generation call can return an accepted task while its audio is still pending. Keep the task ID. If Cursor stops or the task remains pending, start a new chat and say: “Use `suno_get_task` to check task `<task_id>`; do not generate a new song.” A completed response contains playable audio URLs. Open an actual returned URL and check the file plays before treating the run as finished.

Task queries use the same ID and do not submit a second generation. Check **Ace Data Cloud → Usage/Billing** for the single generation record and its deducted Credits; the plugin itself is free, and API usage follows current service pricing.

## Troubleshooting

| Symptom | Action |
| --- | --- |
| Plugin or tools are missing | Confirm the correct Suno listing is installed, configure the key, then reconnect the MCP server. A local copy is separate from the public Marketplace. |
| 401 or 403 | Check the full key, expiration, Suno access, balance, and allowed generation/retrieval APIs. Do not include `Bearer ` in the configured value. If the same key works through the Ace API but Cursor still reports an invalid token, confirm Save finished and restart Cursor before retrying a read-only task query. |
| Invalid model or argument | Ask `suno_list_models` and use the live tool schema. Models and limits can change. |
| Pending task | Query the original task ID again. Do not rerun generation to poll. |
| 429, timeout, or 5xx | Wait and inspect the original task or usage history before deciding whether another paid submission is needed. |
| Audio URL will not open | Confirm the task succeeded and use the URL returned by that completed task. |

The exact Suno MCP server and package source are maintained in [AceDataCloud/MCPs](https://github.com/AceDataCloud/MCPs/tree/main/suno). Report a plugin issue at [SunoCursor issues](https://github.com/AceDataCloud/SunoCursor/issues) with the task ID or trace ID, never your key. The logo reuses the existing Ace Data Cloud Suno integration asset.

This is a tool plugin. It does not register a Cursor chat-model provider.
Binary file added third_party/suno/assets/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions third_party/suno/examples/first-song.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# First Suno song

Copy this into Cursor Agent after installing and configuring the Suno plugin. It contains no key.

> Use the Suno MCP tools to make one short instrumental piano piece for a sunrise. Check the current available models and price first. Use `chirp-v6` if it is available to this account. Submit generation once, keep the returned task ID, and query that same task until it succeeds or fails. Open the completed audio URL and report the task ID and result. If it is still pending, tell me the ID so we can resume without generating again.
11 changes: 11 additions & 0 deletions third_party/suno/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"mcpServers": {
"suno": {
"type": "http",
"url": "https://suno.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}"
}
}
}
}
40 changes: 40 additions & 0 deletions third_party/suno/readme/README_zh_Hans.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Cursor Suno 插件

通过 [Ace Data Cloud](https://platform.acedata.cloud?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_platform_zh_hans) 托管 MCP 在 Cursor 中生成 Suno 音乐。插件提供音乐、歌词、音频编辑和任务查询工具,并附带异步任务使用说明。实际工具参数和可用模型以在线 MCP 为准。

[English guide](../README.md) · [可复制的首跑提示词](../examples/first-song.md) · [当前价格](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_pricing_zh_hans)

## 1. 搜索和安装

在 Cursor 3.24 打开 **Customize → Browse Marketplace**,搜索 **Suno**,确认作者为 **Ace Data Cloud Dev**、图标为 Suno 标志后点击 **Add**。较早版本可能在 Settings 中提供 Plugins 入口。也可在聊天中输入 `/add-plugin suno`。如果官方列表尚未出现,可将源码放在 `~/.cursor/plugins/local/suno/` 本地审查;本地安装不能证明官方市场已经上架。

## 2. 获取具有 Suno 权限的 API Key

1. 登录 [Ace Data Cloud 应用管理](https://platform.acedata.cloud/console/applications?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_api_key_zh_hans)。
2. 打开 **General application** 或 Suno 专用应用,复制已有 Key;也可通过 **Manage Keys → Create** 新建 Cursor 专用 Key。
3. 确认 Suno 已开通、余额足够,并查看[当前价格](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_cursor_shared_readme_pricing_zh_hans)。若启用了 Allowed APIs 限制,须同时允许生成 `/suno/audios` 和查询 `/suno/tasks`。

这里使用的是服务 API Key,不是平台管理 token。不要把 Key 写进聊天或仓库文件。

## 3. 配置插件

打开 **Customize → Plugins → Suno → Configure**,将 Key 原文填入 **Ace Data Cloud API token** 并点击 **Save**。等待保存完成,重新打开 Configure,确认字段显示遮蔽值。Cursor 将其用于 `ACEDATACLOUD_API_TOKEN`;插件会自行添加 `Bearer ` 前缀,并连接 `https://suno.mcp.acedata.cloud/mcp`;无需安装本地 Python 服务。工具没有出现时重新连接 MCP。

## 4. 生成并取回第一首歌

在 Agent 聊天中复制[首跑提示词](../examples/first-song.md)。它会先检查可用模型和价格,再调用一次 `suno_generate_music`,随后用返回的 `task_id` 调用 `suno_get_task`。只有在线模型列表包含 `chirp-v6` 且账户有权限时才选它。

生成接口可能先返回已受理的任务 ID;此时音乐仍在处理中。若聊天中断或任务仍是 pending,新开聊天说:“用 `suno_get_task` 查询任务 `<task_id>`,不要重新生成。”成功后打开返回的音频地址,确认文件能播放。到 **Ace Data Cloud → Usage/Billing** 核对这一次生成对应的 Credits 扣费;插件免费,API 调用按当前服务价格计费。

## 排障

| 现象 | 处理 |
| --- | --- |
| 找不到插件或工具 | 核对 Suno 条目、配置 Key 并重新连接 MCP。本地安装与官方市场是两回事。 |
| 401 或 403 | 检查 Key、有效期、Suno 权限、余额和允许的生成/查询 API;配置值不要带 `Bearer `。若同一 Key 直连 Ace API 成功而 Cursor 仍报 token invalid,确认 Save 已完成,重启 Cursor 后先重试旧任务只读查询。 |
| 模型或参数错误 | 调用 `suno_list_models`,以在线工具 schema 为准。 |
| 任务 pending | 沿原 task ID 继续查询,不要为轮询再次生成。 |
| 429、超时或 5xx | 先检查原任务和用量记录,再决定是否需要另一笔付费请求。 |
| 音频无法打开 | 确认任务已成功,使用该任务最终返回的地址。 |

[Suno MCP 源码](https://github.com/AceDataCloud/MCPs/tree/main/suno) · [插件问题反馈](https://github.com/AceDataCloud/SunoCursor/issues)。反馈时提供 task ID 或 trace ID,不要提供 Key。图标复用 Ace Data Cloud 现有 Suno 集成资源。本插件提供工具,不注册 Cursor 聊天模型 Provider。
15 changes: 15 additions & 0 deletions third_party/suno/skills/suno-music/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: suno-music
description: Generate music, lyrics, covers, or audio variations with the Suno MCP server through Ace Data Cloud. Use when the user asks for a Suno song or wants to check an existing Suno task.
---

# Suno music in Cursor

Use the `suno` MCP tools supplied by this plugin. The hosted server is the source of truth for available actions, models, and argument schemas.

1. Check current [pricing and balance](https://platform.acedata.cloud/models) and use `suno_list_models` when the requested model is unclear.
2. For a first instrumental song, call `suno_generate_music` once with a short prompt, `instrumental: true`, and a currently available model. The response may contain only a `task_id`.
3. Call `suno_get_task` with that same `task_id` until the task is terminal. `pending` and `processing` are not finished songs. If the chat is interrupted, ask for the original task ID and continue querying it.
4. On success, return the audio links and open the completed file when possible. On failure, report the task error and ID. Never submit a second paid generation just to check progress.

Configure `ACEDATACLOUD_API_TOKEN` in **Customize → Plugins → Suno → Configure**; do not put it in chat, source files, or example prompts. For the exact first-run prompt and access steps, see the [README](../../README.md).