Repository navigation
[Draft] Add Soundlink plugin - #936
cursor[bot] wants to merge 1 commit into
Conversation
Co-authored-by: Danny Jiang <djiang-jq@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
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.
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" | ||
| } |
There was a problem hiding this comment.
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)
Reviewed by Cursor Bugbot for commit 5a535fb. Configure here.



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
soundlinkChanges
third_party/soundlink/mcp.json:soundlinkhttp server pointing at the submitted URL..cursor-plugin/plugin.jsonwith"mcpServers": "./mcp.json", categoryintegrations, plus README, CHANGELOG, and LICENSE (MIT, matching PitchBook in Add PitchBook third-party MCP plugin #796)..cursor-plugin/marketplace.jsonand one new row in the root README table..claude-plugin/marketplace.jsonis 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
soundlinkuser is empty and unlinked, andSoundLinkWeblinks to soundlink.io, a different domain. Soplugin.jsonuses the submitted absolute URL, https://www.getsoundlink.com/images/logo-bimi.svg, which the schema accepts. Before merging, replace it with a localassets/logo.*.Not verified
node scripts/validate-plugins.mjspasses.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/mcpfor music marketing insights (acquisition cost and retention).The PR introduces
third_party/soundlinkwith the usual manifest (plugin.json→./mcp.json), MIT license, README, and changelog, and registers the plugin in.cursor-plugin/marketplace.jsonplus 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.