Skip to content

[Draft] Add Soundlink plugin - #936

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
add-soundlink-plugin
Draft

cursor[bot] wants to merge 1 commit into
mainfrom
add-soundlink-plugin

Conversation

@cursor

@cursor cursor Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Unreviewed submission. Nobody has reviewed this plugin yet. It was generated automatically from a plugin submission form and needs human review before it merges.

Adds third_party/soundlink, a remote MCP plugin for Soundlink, which lets music advertisers pull marketing insights such as acquisition costs and retention into AI-powered workflows.

Submission

Changes

  • third_party/soundlink/mcp.json: soundlink http server pointing at the submitted URL.
  • .cursor-plugin/plugin.json with "mcpServers": "./mcp.json", category integrations, plus README, CHANGELOG, and LICENSE (MIT, matching PitchBook in Add PitchBook third-party MCP plugin #796).
  • One new entry in .cursor-plugin/marketplace.json and one new row in the root README table. .claude-plugin/marketplace.json is unchanged.

Logo: needs follow-up
No logo file is committed. Every fetch failed: getsoundlink.com, www.getsoundlink.com, and api.getsoundlink.com all fail the TLS handshake from the build VM, and the web fetcher blocks the domain. I also could not find a GitHub account verified as Soundlink's. The soundlink user is empty and unlinked, and SoundLinkWeb links to soundlink.io, a different domain. So plugin.json uses the submitted absolute URL, https://www.getsoundlink.com/images/logo-bimi.svg, which the schema accepts. Before merging, replace it with a local assets/logo.*.

Not verified

  • I could not reach the MCP server from the VM, so the auth method (OAuth or API key) and the tool list are unconfirmed. The README capability table only restates the submitted description.
  • The submitter did not state a license. MIT is the repo default.

node scripts/validate-plugins.mjs passes.

Open in Web View Automation 

Note

Low Risk
Additive marketplace listing and static manifests only; runtime behavior depends on an external hosted MCP server that was not verified in this PR.

Overview
Adds a new Soundlink third-party integration plugin so agents can reach Soundlink’s hosted MCP at https://api.getsoundlink.com/mcp for music marketing insights (acquisition cost and retention).

The PR introduces third_party/soundlink with the usual manifest (plugin.json → ./mcp.json), MIT license, README, and changelog, and registers the plugin in .cursor-plugin/marketplace.json plus the root README plugin table. The logo is referenced via a remote URL (logo-bimi.svg) rather than a committed local asset.

Note for reviewers: This is an unreviewed auto-generated submission; the PR description flags that the MCP endpoint and auth were not verified from CI and the logo may need a local file before merge.

Reviewed by Cursor Bugbot for commit 5a535fb. Bugbot is set up for automated code reviews on this repo. Configure here.

Co-authored-by: Danny Jiang <djiang-jq@users.noreply.github.com>

@cursor cursor Bot left a comment •

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: URL-only MCP cannot authenticate
    • Declared a required Soundlink API key and send it as an Authorization bearer header so marketplace install collects credentials the host accepts.

Create PR

Or push these changes by commenting:

@cursor push a9659f05e1
Preview (a9659f05e1)
diff --git a/third_party/soundlink/.cursor-plugin/plugin.json b/third_party/soundlink/.cursor-plugin/plugin.json
--- a/third_party/soundlink/.cursor-plugin/plugin.json
+++ b/third_party/soundlink/.cursor-plugin/plugin.json
@@ -26,5 +26,18 @@
     "marketing",
     "mcp"
   ],
+  "variables": {
+    "type": "object",
+    "properties": {
+      "SOUNDLINK_API_KEY": {
+        "type": "string",
+        "title": "Soundlink API key",
+        "description": "API key from Soundlink under Settings \u2192 Developer. Sent as Authorization: Bearer."
+      }
+    },
+    "required": [
+      "SOUNDLINK_API_KEY"
+    ]
+  },
   "mcpServers": "./mcp.json"
 }

diff --git a/third_party/soundlink/README.md b/third_party/soundlink/README.md
--- a/third_party/soundlink/README.md
+++ b/third_party/soundlink/README.md
@@ -8,7 +8,7 @@
 
 1. Open **Cursor Settings → Plugins**.
 2. Search for **Soundlink**.
-3. Click **Install**, then complete the Soundlink sign-in prompt if one appears.
+3. Click **Install**, then set your Soundlink API key (below).
 
 Or run `/add-plugin soundlink` in chat.
 
@@ -19,15 +19,22 @@
   "mcpServers": {
     "soundlink": {
       "type": "http",
-      "url": "https://api.getsoundlink.com/mcp"
+      "url": "https://api.getsoundlink.com/mcp",
+      "headers": {
+        "Authorization": "Bearer ${SOUNDLINK_API_KEY}"
+      }
     }
   }
 }

+Auth is a Soundlink API key sent as a bearer token (Authorization: Bearer sk_...). Create one in Soundlink under Settings → Developer, then set it in Dashboard → Plugins → Configure.
+
+Soundlink's MCP server does not offer dynamic client registration, so an API key is the supported path for clients like Cursor rather than a browser sign-in.
+

Before you connect

-You need a Soundlink account. See Soundlink's MCP server docs for setup details.
+You need a Soundlink account and an API key from Settings → Developer. See Soundlink's MCP server docs for setup details.

What agents can do

diff --git a/third_party/soundlink/mcp.json b/third_party/soundlink/mcp.json
--- a/third_party/soundlink/mcp.json
+++ b/third_party/soundlink/mcp.json
@@ -2,7 +2,10 @@
"mcpServers": {
"soundlink": {
"type": "http",

  •  "url": "https://api.getsoundlink.com/mcp"
    
  •  "url": "https://api.getsoundlink.com/mcp",
    
  •  "headers": {
    
  •    "Authorization": "Bearer ${SOUNDLINK_API_KEY}"
    
  •  }
    
    }
    }
    }

</details>


<sub>You can send follow-ups to the cloud agent <a href="https://cursor.com/agents/bc-2c6b7f73-8e67-47c4-a256-5456e2b666cd">here</a>.</sub>
<!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END -->

<sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 5a535fbfecbf02aa9bba568e1d89c55d9463aca1. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>

"soundlink": {
"type": "http",
"url": "https://api.getsoundlink.com/mcp"
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

URL-only MCP cannot authenticate

High Severity · Logic Bug

Soundlink's MCP host does not support dynamic client registration and expects a user-created API key (Authorization: Bearer) or OAuth client id and secret. mcp.json is URL-only with no headers, auth block, or variables, so marketplace install never collects those credentials and the connection fails.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 5a535fb. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant