MCP音乐锻造
英语| 俄语
______________________________________________________________________
用于下载和处理音频的可扩展MCP插件/服务: SoundCloud(起点),然后是YouTube/Yandex Music/Spotify;转码, 标签和封面艺术嵌入,HTTP API,MCP工具,音频工作者。
快速入门
变体A:Docker Compose(推荐)
cp .env.example .env
make upb # build and start the stack终点:
- APIhttp://localhost:8033
- 管理员:http://localhost:8033/admin
- MCP HTTP:http://localhost:8033/mcp
管理层:
make logs # logs
make ps # container status
make up # just up
make down # stop and remove______________________________________________________________________
变体B:局部(uv)
make install # create .venv, install deps, copy .env
source .venv/bin/activate
make lint # ruff + black + mypy
make test # mypy + pytest
# run API
uvicorn api.main:app --reload
# MCP (stdio)
python -m mcp_music_forge.mcp_appAPI示例
# health check
curl -s http://localhost:8033/health | jq
# {"status": "ok"}
# enqueue download (SoundCloud URL with allowed download per ToU)
curl -s -X POST 'http://localhost:8033/download?url=https://soundcloud.com/artist/track' | jq
# {"job_id": "abc123", "status": "queued"}
# check job status
curl -s http://localhost:8033/jobs/ | jqMCP工具
probe_url:提供程序检测和下载能力检查。enqueue_download:创建/复制作业,将其放入队列。get_job_status:状态、工件、文件链接作为MCP资源。- 资源:
forge://jobs//{original|final}/(文件字节)。
项目概述
- MCP服务器 (
mcp_music_forge/):作业管理、资源提供者和MCP工具。 - HTTP API (
api/):POST /download,GET /jobs/{id},/health,管理界面。 - 提供商 (
providers/):源适配器(从SoundCloud开始)。 - 代码转换器 (
transcoder/):一个包装ffmpeg. - 存储 (
storage/):本地FS(可以用S3等替换)。 - 队列 (
core/services/queue.py):ARQ+Redis;包装纸workers/.
文档
法律注释
- SoundCloud提供商尊重ToU:我们只在曲目可下载的情况下下载(
downloadable/download_url). - Cookie文件支持是可用的,但严格按照服务规则使用。
