Skip to main content
Soundlink hosts an MCP server. An AI client calls it over Streamable HTTP and gets read-only access to your organization. It does not create campaigns, change budgets, or import videos.

1. Create a credential

Pick one. An API key is enough when the client can send a header. OAuth is for clients that open a browser and ask for a client id and secret. Soundlink does not support dynamic client registration. You create the credential in the app, then paste it into the client.

API keys

Settings → Developer → API keys. Sign in first. Soundlink opens the keys page for your current organization.

OAuth apps

Settings → Developer → OAuth apps. Same shortcut. Use this when the client runs an OAuth login.
Owners and admins can create keys and OAuth apps. For the scopes each tool needs, see the table below. A key or app that should read everything the server exposes needs campaigns:read, metrics:read, soundlinks:read, and wallet:read.

API key

2

Create a key

Click Create key. Set a name, an expiration, and the scopes above. Details and screenshots are in Authentication.
3

Copy the secret

Soundlink shows the full sk_ key once. Store it where the MCP client can read it. You cannot reveal it again.

OAuth app

2

Create the app

Set a name. Enable the Authorization code grant. Paste the redirect URI your MCP client shows you — it must match exactly, including http vs https and localhost vs 127.0.0.1. Select the scopes above.
3

Copy the client id and secret

Paste both into the MCP client. The secret is shown once. Access tokens last one hour, and Soundlink does not issue refresh tokens. When a token expires, sign in again. See OAuth.
One connection is one organization. To use another org, disconnect and approve that org on the next consent screen.

2. Add the server

Cursor

Open Cursor Settings → MCP → Add new global MCP server. With an API key:
With OAuth, omit headers. Cursor starts the login. Enter the client id and secret from the OAuth app.

Claude

In Claude, open Settings → Connectors → Add custom connector and paste:
Complete the OAuth login with the client id and secret from the app you created.

Other clients

Any client that speaks Streamable HTTP can use the same URL. If it cannot open a browser, send the API key as Authorization: Bearer sk_your_key.

3. Check the connection

Ask the client to call ping. A working credential returns {"status":"ok"}. ping does not require a specific scope. Then ask for a campaign list. If a tool fails with an authorization error, the key or app is missing the scope in the table below. Create a new key, or edit the OAuth app, and reconnect.

Tools

get_campaign_tiers only succeeds for a wallet campaign. Engagement tools take an optional engagementContext of catalog or playlist. Exports default to the last 90 days and return JSONL, not the JSON envelope. get_soundlinks does not include soundlinks created for a campaign. Field definitions: Campaign metrics, Soundlink metrics, JSONL exports.

Next

SDK overview · Authentication · OAuth