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
Medium risk
We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.
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
Manual install
cp .env.example .env && make upbRuns the whole stack via Docker Compose, with MCP available over HTTP at /mcp.
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 artLimitations
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.
MCP
- Transport
- stdio, http
- Authentication
- API key
| Environment variables | |
|---|---|
| YANDEX_MUSIC_TOKEN secret | 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_URL required | The Redis address for the job queue |
Security check
- 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
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.
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.
Related
Skills and CLI from HeyGen: the agent writes HTML compositions and renders them into MP4 videos, captions, motion graphics and decks
Blender MCP
MCP for Blender
An MCP server and Blender addon: the agent creates and edits objects, materials and scenes, pulls assets and runs Python in Blender
Official Remotion skills for making videos in React: compositions, animation, captions, maps and rendering
Agentic video studio for Claude Code, Cursor and Codex: script, voiceover, images, stock footage, music, subtitles and render