Skip to main content
Glama

SoundCrate connects Claude (or any other AI assistant that supports MCP) to your own SoundCloud account. Ask in plain words and it searches tracks by genre, tempo, key or release date, finds similar tracks and artists, builds private playlists and puts them in a DJ-friendly order.

"Find techno between 128 and 132 BPM uploaded this year and make me a private two-hour playlist in compatible keys."

"Take these three tracks, find related ones that aren't already in my Warm-up playlist and suggest ten."

"Analyze my Peak time playlist and tell me where the tempo jumps or the keys clash."

It runs on your computer, keeps your credentials in your system's secure storage, and never deletes a playlist.

What you need

  • A SoundCloud account with an Artist Pro plan. SoundCrate talks to SoundCloud through your own SoundCloud "app", and SoundCloud only lets Artist Pro accounts create one.

  • One of these:

    • Claude Desktop on macOS or Windows. Nothing else to install.

    • Claude Code, Cowork or another MCP app (Cursor, VS Code, OpenCode, Codex, Gemini CLI…), plus Node.js 18 or later. Works on macOS, Windows and Linux.

Related MCP server: Spotify MCP Server

Install

Claude Desktop (easiest, no technical knowledge needed)

  1. Download soundcrate.mcpb.

  2. Double-click the file (or drag it onto the Claude window) and choose Install. If you have SoundCloud Go+, switch on I have SoundCloud Go+.

  3. Open a new chat and type: Help me set up SoundCrate. Claude takes you through the rest (what happens next).

To update, download the file again and open it.

Claude Code

Type this in Claude Code:

/plugin install soundcrate --marketplace C4denaX/soundcrate-mcp

Or just ask: "Install the SoundCrate plugin from the C4denaX/soundcrate-mcp marketplace." Then say Help me set up SoundCrate. Requires Node.js 18 or later.

Cowork

In Claude Desktop, open Customize > Plugins, add the marketplace C4denaX/soundcrate-mcp and install SoundCrate. It works in Cowork sessions that run on your computer. Requires Node.js 18 or later.

NOTE

Claude on the web and on mobile can't run programs on your computer, so SoundCrate isn't available there. Use Claude Desktop.

VS Code

Install in VS Code

Click the button, review the server and install it. Needs Node.js and Git. To declare Go+, add "env": { "SC_GO_PLUS": "1" } to the server in your mcp.json.

Other apps

Every MCP app needs the same thing: a stdio server started with npx -y github:C4denaX/soundcrate-mcp#v1.7.0 (needs Node.js and Git), plus SC_GO_PLUS=1 if you have Go+. Pick your app:

Cursor: ~/.cursor/mcp.json · Gemini CLI: ~/.gemini/settings.json

{
  "mcpServers": {
    "soundcrate": {
      "command": "npx",
      "args": ["-y", "github:C4denaX/soundcrate-mcp#v1.7.0"],
      "env": { "SC_GO_PLUS": "1" }
    }
  }
}

Gemini CLI also accepts: gemini mcp add --scope user -e SC_GO_PLUS=1 soundcrate npx -y github:C4denaX/soundcrate-mcp#v1.7.0

~/.config/opencode/opencode.json (or opencode.jsonc):

{
  "mcp": {
    "soundcrate": {
      "type": "local",
      "command": ["npx", "-y", "github:C4denaX/soundcrate-mcp#v1.7.0"],
      "environment": { "SC_GO_PLUS": "1" },
      "enabled": true
    }
  }
}

~/.codex/config.toml:

[mcp_servers.soundcrate]
command = "npx"
args = ["-y", "github:C4denaX/soundcrate-mcp#v1.7.0"]
env = { SC_GO_PLUS = "1" }

Or: codex mcp add soundcrate --env SC_GO_PLUS=1 -- npx -y github:C4denaX/soundcrate-mcp#v1.7.0

Settings > Developer > Edit Config (claude_desktop_config.json):

{
  "mcpServers": {
    "soundcrate": {
      "command": "npx",
      "args": ["-y", "github:C4denaX/soundcrate-mcp#v1.7.0"],
      "env": { "SC_GO_PLUS": "1" }
    }
  }
}
git clone https://github.com/C4denaX/soundcrate-mcp.git

Then use node as the command and the full path to server.mjs as the argument, for example "command": "/opt/homebrew/bin/node", "args": ["/Users/you/soundcrate-mcp/server.mjs"]. Desktop apps don't always see your terminal's PATH, so give the full path to node (which node on macOS and Linux, where node on Windows).

After adding SoundCrate, restart the app (on macOS, quit it completely with Cmd+Q).

First-time setup

Ask your assistant: Help me set up SoundCrate. It checks your computer with setup_status and explains each step. When it's time, it opens a setup page in your browser. The page lives only on your computer (http://127.0.0.1:8976) and has three steps:

  1. Register a SoundCloud app. It links to https://soundcloud.com/you/apps and shows the exact values to enter, including the Redirect URI http://127.0.0.1:8976/callback.

  2. Paste the app's Client ID and Client Secret. They go straight to your system's secure storage.

  3. Click "Connect with SoundCloud" and authorize the app.

That's it. Your secrets never pass through the chat or the AI model, and the page closes when you finish.

Prefer the terminal? npx -y -p github:C4denaX/soundcrate-mcp#v1.7.0 soundcrate-login opens the same page.

What you can ask

  • Discover: "Tracks similar to this one", "What have the DJs I follow reposted this month?", "Artists like Amelie Lens and their latest uploads", "Search playlists of melodic techno".

  • Build: "Make a private playlist with these tracks", "Add the five best suggestions to Warm-up", "Replace this bootleg with the official release".

  • Plan a set: "Sort Peak time by BPM", "Order it by Camelot key", "Where are the key clashes?".

  • Tidy up: "Find duplicates in this playlist", "Rename it and add the genre Techno".

Every track comes with BPM, key and its Camelot code (for harmonic mixing), genre, label, release date, plays and likes.

How it keeps your music safe

  • New playlists are private unless you ask otherwise.

  • SoundCrate cannot delete playlists or download audio.

  • Changes to the same playlist are applied one at a time, so parallel requests can't lose tracks.

  • If SoundCloud hides some tracks of a playlist when reading it, SoundCrate refuses to write to that playlist, because rewriting it would drop them.

  • Reordering never adds or removes tracks; if SoundCloud returns a different set, the previous order is restored.

  • Write tools are marked as such, so apps that support it ask you before changing a playlist.

Go+ and what you can listen to

SoundCloud's API marks tracks as playable, preview or blocked, but that describes what apps may stream, not what you can hear. SoundCrate adds a listen field for you:

listen

Meaning

full

Plays in full for everyone.

go_plus

A preview without a subscription; full with Go+.

go_plus_probable

Label catalogue that usually plays in full on SoundCloud with Go+ (not guaranteed in every country).

restricted

Blocked for rights, region or by the uploader; may not play even with Go+.

SoundCloud doesn't report whether you have Go+, so you tell SoundCrate (the I have SoundCloud Go+ switch or SC_GO_PLUS=1). Then you can ask for "only tracks I can listen to in full".

Privacy and security

SoundCrate has no server, account, telemetry or analytics. It only talks to SoundCloud, from your computer. Details in the privacy policy.

System

Where your credentials are stored

macOS

Keychain (service soundcloud-mcp)

Windows

Credential Manager (soundcloud-mcp:client_id, …)

Linux

Secret Service: GNOME Keyring or KWallet, through secret-tool

Secrets are never passed as command-line arguments (where other programs could see them). Optional settings:

  • SC_SECRET_STORE=file: for Linux machines without a keyring. Stores the secrets unencrypted in ~/.config/soundcrate/credentials.json, readable only by you. Use it only if there is no alternative.

  • SC_CLIENT_ID / SC_CLIENT_SECRET: provide the app credentials through the environment (handy in CI).

  • SC_SECRET_SERVICE: a different storage name, for example to use two accounts.

Troubleshooting

Problem

What to do

The assistant doesn't see SoundCrate

Restart the app completely. In Claude Desktop, check Settings > Extensions.

"SoundCrate is not set up yet"

Say Help me set up SoundCrate.

The setup page doesn't open

Ask the assistant for the link and open it in your browser on the same computer.

"Port 8976 is busy"

Close any other SoundCrate setup page or terminal login and try again.

SoundCloud rejects the Redirect URI

Use http://localhost:8976/callback in your SoundCloud app and set SC_REDIRECT_URI=http://localhost:8976/callback for SoundCrate.

Linux: "secret-tool is not installed"

Install it: sudo apt install libsecret-tools gnome-keyring (Debian/Ubuntu), sudo dnf install libsecret (Fedora), sudo pacman -S libsecret (Arch).

"The saved session is no longer valid"

Say Reconnect SoundCrate and connect again on the setup page.

npx fails with a Git error

Install Git, or use the cloned copy option.

Uninstall

  1. Remove SoundCrate from your app (Claude Desktop: Settings > Extensions; Claude Code: /plugin uninstall soundcrate).

  2. Delete your SoundCloud app at https://soundcloud.com/you/apps.

  3. Delete the saved secrets:

# macOS
security delete-generic-password -s soundcloud-mcp -a refresh_token
security delete-generic-password -s soundcloud-mcp -a client_secret
security delete-generic-password -s soundcloud-mcp -a client_id
# Linux
secret-tool clear service soundcloud-mcp account refresh_token
secret-tool clear service soundcloud-mcp account client_secret
secret-tool clear service soundcloud-mcp account client_id
# Windows
cmdkey /delete:soundcloud-mcp:refresh_token
cmdkey /delete:soundcloud-mcp:client_secret
cmdkey /delete:soundcloud-mcp:client_id

With SC_SECRET_STORE=file, delete credentials.json instead.

Tools

Tool

What it does

setup_status

Checks what is missing on this computer and returns the next step.

start_setup

Opens the local setup page (credentials and SoundCloud login).

search_tracks

Search by text, genres, tags, BPM, duration and upload date (up to 200 per page).

get_track

One track by id or URL.

get_related_tracks

SoundCloud's related tracks, optionally excluding a playlist's tracks.

get_my_tracks

Your likes, recently played, feed, followings' uploads or reposts.

search_users

Search artists, labels or DJs.

get_related_artists

Similar artists.

get_user_content

An artist's tracks, likes, reposts or playlists.

search_playlists

Public playlists from anyone.

get_station

A SoundCloud station with its tracks.

suggest_tracks

Candidates from 1-5 seed tracks, deduplicated, filtered and ranked (harmonic match included). Read-only.

find_official_version

Candidates for the official release of a user upload, with reasons.

analyze_playlist

Duration, BPM range, keys, genres, duplicates, BPM jumps and key clashes.

whoami

Your account and whether Go+ is declared.

get_my_playlists

Your playlists (private ones included), liked playlists or stations; filter by title.

get_playlist

A playlist with its tracks, by id or URL.

create_playlist

Create a playlist, private by default.

add_tracks_to_playlist

Append tracks, skipping duplicates.

remove_tracks_from_playlist

Remove several tracks in one write.

remove_track_from_playlist

Remove one track.

replace_track_in_playlist

Swap a track, keeping its position.

update_playlist

Change title, description, genre or tags, and reorder by BPM, Camelot key, duration, release date or a given order.

For developers

  • Zero dependencies: plain Node.js ESM (server.mjs), stdio transport.

  • Speaks MCP 2024-11-05 to 2025-11-25 (initialize) and 2026-07-28 (stateless, server/discover).

  • Tool descriptions are in English, under 1,024 characters, with flat schemas that OpenAI, Gemini and local models accept.

  • npm test runs ten offline suites (protocol over a real stdio process, secret stores, the setup page over real HTTP, distribution files). npm run test:store exercises your system's real secret store with a throwaway entry. CI runs everything on Linux, macOS and Windows against the real secret stores.

  • Distribution: manifest.json (Claude Desktop extension, packed with @anthropic-ai/mcpb), .claude-plugin/ + .mcp.json + skills/ (Claude plugin and marketplace), package.json bin (npx).

  • Releasing: bump the version in package.json, manifest.json, .claude-plugin/plugin.json and server.mjs (tests/test10.mjs checks they match), then push a vX.Y.Z tag. The release workflow publishes soundcrate.mcpb.

License and credits

MIT © Sergio Ruiz. SoundCrate is not affiliated with, endorsed by or sponsored by SoundCloud.

Inspired by marcellkehmstedt/soundcloud-mcp-server (especially its fix for long track IDs). This code was written from scratch, without dependencies and with a different architecture (local stdio instead of an HTTP server).

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to a self-hosted Your Spotify instance and Spotify's Web API for deep listening analytics and playback control. It enables users to query unlimited listening history, generate custom Wrapped summaries, and manage playlists through natural language.
    18
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables DJs to retrieve BPM, key/Camelot, energy, and other track metadata with provider provenance, score transitions, plan setlists, and control Spotify playlists and playback with staged, revalidated writes for safety.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI assistants to a local music library for full-text search and filtering of tracks, albums, artists, genres, composers, and lyrics, plus listening analytics and metadata hygiene audits. Also lets users generate and populate playlists and control playback (play, pause, seek, volume) in a running player instance.
    MIT