SoundCloud MCP
Enables uploading and managing SoundCloud tracks via the official API, with support for metadata, artwork, and automated token refresh.
README
SoundCloud MCP
MCP server for uploading and managing tracks on SoundCloud using the official API.
Use it from Cursor or Claude Desktop to upload MP3s, update metadata, and manage your catalog — pairs naturally with suno-mcp for generate → upload workflows.
Features
- Official SoundCloud API — OAuth 2.1 + PKCE, no browser scraping for uploads
- Upload tracks — MP3, WAV, FLAC with title, description, tags, artwork
- Manage library — list, get, update, delete tracks
- Token refresh — automatic OAuth token renewal
Requirements
- Python 3.10+
- SoundCloud Artist Pro account
- A registered SoundCloud API app (soundcloud.com/you/apps)
Register your SoundCloud app
| Field | What to enter |
|---|---|
| App name | SoundCloud MCP (or anything descriptive) |
| Description | Personal MCP server for uploading AI-generated music to my SoundCloud account |
| Website | https://github.com/David-J-Shibley/soundcloud-mcp (optional) |
| Redirect URI | http://127.0.0.1:8765/callback (must match exactly) |
The Website field is optional — it is not used for OAuth. The Redirect URI must match character-for-character.
Quick Start
Install from PyPI
pip install soundcloud-mcp
cp .env.example .env
# Edit .env with client_id and client_secret from soundcloud.com/you/apps
soundcloud-mcp-auth
Install from source
git clone https://github.com/David-J-Shibley/soundcloud-mcp.git
cd soundcloud-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env
Authenticate (one time)
soundcloud-mcp-auth
Tokens are saved to ~/.soundcloud-mcp/tokens.json.
If the browser page is blank/white, your redirect URI doesn't match — see Troubleshooting.
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"soundcloud": {
"command": "/absolute/path/to/soundcloud-mcp/.venv/bin/python",
"args": ["-m", "soundcloud_mcp"],
"cwd": "/absolute/path/to/soundcloud-mcp",
"env": {
"DYLD_LIBRARY_PATH": "/opt/homebrew/opt/expat/lib"
}
}
}
}
Put credentials in .env in the project directory (recommended) — cwd lets the server load them automatically.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"soundcloud": {
"command": "/absolute/path/to/soundcloud-mcp/.venv/bin/python",
"args": ["-m", "soundcloud_mcp"],
"cwd": "/absolute/path/to/soundcloud-mcp"
}
}
}
Tools
| Tool | Description |
|---|---|
soundcloud_get_me |
Your SoundCloud profile |
soundcloud_list_my_tracks |
List your uploaded tracks |
soundcloud_get_track |
Track details by ID |
soundcloud_upload_track |
Upload MP3/WAV/FLAC with metadata |
soundcloud_update_track |
Edit title, description, tags, artwork |
soundcloud_delete_track |
Remove a track |
Example workflow (Suno → SoundCloud)
- Generate a song with suno-mcp
- Download the MP3 with
suno_download_song - Upload with soundcloud-mcp:
Upload ~/Downloads/suno/my-song.mp3 to SoundCloud as "My New Track" with tags "electronic ai-generated"
Configuration
| Variable | Default | Description |
|---|---|---|
SOUNDCLOUD_CLIENT_ID |
— | From soundcloud.com/you/apps |
SOUNDCLOUD_CLIENT_SECRET |
— | From soundcloud.com/you/apps |
SOUNDCLOUD_REDIRECT_URI |
http://127.0.0.1:8765/callback |
Must match app settings |
SOUNDCLOUD_TOKEN_FILE |
~/.soundcloud-mcp/tokens.json |
OAuth token storage |
Troubleshooting
Blank/white OAuth page — Redirect URI mismatch. In soundcloud.com/you/apps, set exactly:
http://127.0.0.1:8765/callback
Use 127.0.0.1 not localhost, http:// not https://, no trailing slash.
Not authenticated — Run soundcloud-mcp-auth again.
Manual login — soundcloud-mcp-auth --no-browser prints the URL to paste into your browser.
Disclaimer
Unofficial project, not affiliated with SoundCloud. Use in accordance with SoundCloud's API Terms of Use.
Contributing
Issues and pull requests welcome on GitHub.
See PUBLISHING.md for PyPI release instructions.
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.