MCP Music Forge: track download and processing
MCP Music Forge
A Redis-backed queue MCP server that downloads tracks from SoundCloud, YouTube, Yandex Music and Spotify, transcodes them and tags them with cover art
- 5 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Downloads content from external music platforms, subject to their terms of use
- Stores a subscription Yandex Music account token, and access to it means access to the personal account
Install
- Works in
- Services
Manual install
cp .env.example .env && make upbRuns the whole stack via Docker Compose, with MCP available over HTTP at /mcp.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Downloads content from external music platforms, subject to their terms of use
- Stores a subscription Yandex Music account token, and access to it means access to the personal account
This is third-party code. Review the repository files before installing.
What it does
The server takes a track link through the probe_url tool, detects the provider and checks whether it can be downloaded, queues the job on Redis via enqueue_download, and returns status and files as MCP resources via get_job_status. It has adapters for SoundCloud (only when the platform marks a track as downloadable), YouTube and Yandex Music, an ffmpeg-based transcoder, and tagging with cover art. Yandex Music requires an account token with a Plus subscription, otherwise its API returns only a 30-second preview and the job is rejected; reaching api.music.yandex.net from outside Russia (Singapore and Thailand in the authors' tests) needs a Russian-address proxy. Besides MCP, the same core also exposes an HTTP API and a Telegram bot.
Who it is for. For people who want to pull their own music from Yandex Music, SoundCloud or YouTube locally through an agent instead of downloading it by hand.
Good fit when
- You want to download and transcode a track with tags and cover art in one request
- You have a Yandex Music Plus subscription and need the full track, not a 30-second preview
- You want a job queue with redelivery, for example into Telegram
Not a fit when
- You have no Yandex Music Plus subscription and need full tracks: without a token the API returns only a preview
- You have no server with a Russian IP or proxy: Yandex's official API blocks requests from abroad
Example request
Download this track from Yandex Music and send me the finished mp3 with cover artMCP
- Transport
- stdio, http
- Authentication
- key is optional
Environment variables
YANDEX_MUSIC_TOKENsecret- A Yandex Music account token with a Plus subscription for downloading full tracks
YANDEX_MUSIC_API_PROXY- A Russian-address proxy for reaching api.music.yandex.net from outside Russia
REDIS_URLrequired- The Redis address for the job queue
Limitations
Downloading music from these platforms is governed by their terms of use; the project explicitly says it respects SoundCloud's ToU and only fetches tracks marked as downloadable, but legality on other platforms is the user's own responsibility. It needs Redis, ffmpeg and a Python environment via uv or Docker Compose, with no ready cloud hosting. YouTube needs cookie files and possibly a third-party PO token service; Yandex Music needs an account token with a Plus subscription and a Russian-IP proxy for API access from abroad.
How to disable. Stop the stack with make down (Docker Compose) or terminate the python -m mcp_music_forge.mcp_app process and remove the server from your MCP client config.
FAQ
Why does a Yandex Music track come out short?
Without an account token with a Plus subscription, Yandex's API returns only a 30-second preview, and a full-track job is rejected.
Do I need a proxy?
Yes, if the server does not run from Russia: api.music.yandex.net returns a 451 error from other countries.
Discussion
No questions or reviews yet.
Related
All Yandex Music toolsYandex Music MCP server with genre analysis
Yandex Music MCP Server
An unofficial Yandex Music MCP server: likes, genre analysis, search and playlist management over HTTP or stdio
Yandex Music playlist creation MCP server
Yandex Music MCP Server (unofficial)
A minimal MCP server for creating Yandex Music playlists: search tracks and add them to a playlist
Yandex Music MCP for taste analysis
Yandex Music MCP
A single-file, zero-install Yandex Music MCP server via uv: likes, playlists, search and taste analysis
Yandex Music MCP server with a native macOS player
yandex-music-mcp
A browser-free Yandex Music MCP server: the agent queues a playlist, a local daemon plays it via mpv with Now Playing in Control Center
An MCP server for a local Rust-based Yandex Music player and sync daemon on Linux: playback control, taste profile, mood picks
A Spotify MCP server: the agent searches music, controls playback, queue and volume, and builds and edits playlists and the library
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| MCP Music Forge: track download and processing (this card) | no | key is optional | 5 | |
| SpotifyScraper | no | not required | 325 | a Python library and MCP server that give an agent public Spotify data |
| Audio Studio MCP | yes | not required | 657 | A local MCP server generates music and sound effects, builds loops, adjusts loudness and exports audio for games or video. |
README in short
The README describes the service as a scalable MCP plugin for downloading and processing audio from SoundCloud, YouTube, Yandex Music and Spotify: transcoding, tagging, cover art, an HTTP API, MCP tools and queue workers. It shows two run modes, Docker Compose and local via uv, three MCP tools (probe_url, enqueue_download, get_job_status) and the project's layered structure: server, providers, transcoder, storage, queue. A separate Legal Notes section stresses that the SoundCloud provider only downloads tracks marked downloadable.