
Audio Sonic MCP
io.github.ripunjay-kashyap由 GitHub 账号 ripunjay-kashyap 发布v1.2.0更新于 Oct 24, 2026
Local-first audio analysis: BPM, musical key, production profile, and CLAP vibe embeddings.
概览
在本地对歌曲或 YouTube 链接做音频分析,返回 BPM、调性、氛围标签和制作特征。
- 可以做什么
- Audio Sonic MCP 把本地音频分析引擎暴露给 AI 助手。它通过异步任务模式接收 YouTube 链接,先返回任务 ID,再轮询状态,最终产出结构化的声音签名:速度、带分段转调映射的调性、512 维 CLAP 氛围向量及可读风格标签,以及人声位置、瞬态冲击、立体声宽度和主要频率峰值等制作分析。check_health 工具会报告 FFmpeg、Python 依赖、可选的 madmom 节拍跟踪器和任务目录是否可用。另有命令行工具可分析本地音频文件。
- 适用场景
- 适合需要让助手描述音乐或音频的场景:整理曲库、比较速度与调性、生成情绪或风格标签,或输出制作层面的摘要。也适合希望音频不离开本机的离线工作流。
- 运行要求
- 以本地进程通过 stdio 运行。需要 Python 3.10+ 和 PATH 中的 FFmpeg,并在虚拟环境中安装该包;可选 [clap] 额外组件会引入 torch、torchaudio、transformers 和 demucs,约需 4 GB 磁盘。JOBS_ROOT 指定下载音频、WAV 和分轨的工作目录。首次完整 ML 运行会下载约 600 MB 模型权重。无需 API 密钥。
安装
在 SourceWeft 中
- 打开 控制台中的 Audio Sonic MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
🎵 Audio Sonic MCP
[Tests] [License: MIT] [Python 3.10+] [MCP]
Turn any song into a structured "sonic signature" — extracting tempo, musical key, a 512-dimension CLAP vibe embedding, human-readable vibe tags, and a production profile — from a single local call.
Audio Sonic MCP runs entirely on your local machine (requiring no API keys, external servers, or cloud dependencies) and exposes two premium access points to the same underlying high-fidelity audio analysis engine:
🎹 Quick Taste: What You Get
1. Musician-Friendly CLI Summary (--summary mode)
2. Comprehensive JSON (Returned by MCP and CLI by default)
⚡ Key Features
- 🥁 Tempo & Beat Tracking — Full BPM computation with variable-tempo drift detection and transient windowing.
- 🎹 Key & Harmonic Mapping — Computes structural musical key + mode, generating a detailed
key_maptracking section-by-section modulations. - 🌈 Vibe & Style Embeddings — Compiles a 512-dimensional CLAP embedding and human-readable style tags (covering energy, texture, mood, and genre) using zero-shot music vocab classification.
- 🎚️ Production Analytics — Measures vocal spatial presence, transient punch coefficients, stereo width, and dominant frequency peaks.
- 🤖 MCP-Native System — Fully exposes 4 standardized Model Context Protocol tools for instant integration into AI tools.
- 🪶 Robust Graceful Degradation — Automatically utilizes a CUDA GPU if present and falls back to CPU; gracefully degrades to HPSS and standard librosa feature arrays if heavy deep learning packages (
[clap]) are omitted. - 🔒 100% Offline & Private — All conversion, separation, and inference occur locally.
📦 Installation & Setup
System Prerequisites
Ensure you have Python 3.10+ and FFmpeg installed and accessible on your system PATH.
Installing FFmpeg:
- macOS:
brew install ffmpeg - Linux (Debian/Ubuntu):
sudo apt update && sudo apt install -y ffmpeg - Windows: Run
winget install Gyan.FFmpegvia PowerShell (Administrator), or download manually from ffmpeg.org and add thebindirectory to your system environment variables.
Step-by-Step Installation
-
Clone the Repository
-
Initialize Virtual Environment
-
Install Dependencies Choose between the lightweight core engine or the full high-fidelity ML suite:
- Option A: Full High-Fidelity ML Suite (Recommended) Includes demixing stems (Demucs) and zero-shot vibe vectors (CLAP). Requires ~4 GB disk space.
- Option B: Core Lightweight Pipeline Uses standard digital signal processing (HPSS/librosa). Rapid install and minimal footprint.
[!NOTE] The optional
[clap]stack installstorch,torchaudio,transformers, anddemucs. Without these, the server automatically switches to light fallbacks (HPSS instead of Demucs, standard feature matrices instead of CLAP vectors, and leaves outvibe_tags).
🤖 MCP Client Configuration Guide
Audio Sonic MCP registers itself as a standard package script. This enables you to run it using the global executable name (audio-sonic-mcp) directly from your virtual environment's bin folder, or run the script file manually.
1. Claude Desktop Setup
Open your Claude configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Add the server to your mcpServers object:
[!IMPORTANT] Windows Users: Always use double backslashes (
\\) in JSON configuration paths. Point the executable directly to the.exeinside your.venv\Scripts\directory.
2. Cursor IDE Integration
To integrate Audio Sonic MCP into Cursor's AI pane:
- Navigate to Settings ➔ Features ➔ MCP.
- Click + Add New MCP Server.
- Fill in the parameters:
- Name:
audio-sonic-mcp - Type:
command - Command:
/path/to/audio-sonic-mcp/.venv/bin/audio-sonic-mcp(use.exeextension on Windows)
- Name:
3. Windsurf Integration
Open your Windsurf MCP configurations file (typically found at ~/.codeium/windsurf/mcp_config.json) and append the configuration:
4. Cline (VS Code Extension) Setup
Open Cline's MCP setting file (usually located at %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json or equivalent platform storage) and add:
🤖 Interaction Flow for AI Agents & LLMs
LLMs automatically learn how to use this server by reading its exposed tool definitions. Because audio stem separation and CLAP embeddings are computationally demanding, Audio Sonic MCP uses an Asynchronous Fire-and-Forget Job Pattern.
Automated LLM Workflow
Natural Prompts to Try
- "Check the health of my audio-sonic-mcp server to make sure all ML components are ready."
- "Submit this YouTube track for sonic analysis:
https://www.youtube.com/watch?v=XXXXXX." - "Check the progress of my sonic signature job
sig_a1b2c3d4and summarize the BPM, production width, and vibe once complete."
🎚️ CLI Usage (Local Files)
For musicians, engineers, and producers working directly in the terminal, you can analyze a full-length local file directly without running any background servers:
CLI Command Options Reference
Supported File Formats: wav, mp3, flac, ogg, m4a, aac.
🔧 Environment Variables Reference
Configure environment options by declaring these variables in your active terminal session, container environment, or the env block of your MCP configuration file:
🐳 Docker / Podman Execution
If you prefer to avoid setting up local Python libraries, running via containers encapsulates FFmpeg, yt-dlp, and the core Python dependencies (CPU-based pipeline):
To connect Claude Desktop to your Docker container, configure claude_desktop_config.json:
⚙️ How it Works under the Hood
Audio Sonic MCP pipelines are constructed modularly, using transactional checkpoints to ensure reliability.
- Stem Demixing: Meta AI's Demucs (
mdx_extra) separates the track into isolation stems (vocals,drums,bass,other). If missing, it gracefully drops back to Harmonic-Percussive Source Separation (HPSS). - Analysis engine: librosa extracts rhythmic and tonal structures, matching chord patterns and sub-bass movements against Krumhansl-Schmuckler and Phrygian template engines.
- Semantic Vibe Tagging: LAION CLAP (
laion/larger_clap_music_and_speech) runs zero-shot inference against high-coverage aesthetic descriptors (moods, textures, genres), choosing top candidates across stylistic poles.
🩺 Resiliency & Troubleshooting
1. One-Time Setup Download Delays
Upon the very first analysis job utilizing the full ML pipeline, demucs and transformers will download their pre-trained model weights (approximately 400 MB for Demucs, and 200 MB for CLAP).
- The server redirects download progress indicators to
stderrso they do not corrupt the JSON-RPC standard stream. - During this download,
get_job_statuswill remain inrunning. Allow 1–3 minutes depending on your network speed. Subsequent startups take under 10 seconds.
2. FastMCP Concurrency Controls
Model inference on multi-staged architectures is highly CPU/VRAM intensive. To protect consumer hardware and virtual environments from crashing (OutOfMemory exceptions), Audio Sonic MCP enforces a strict global serialization lock (CONCURRENCY_LOCK).
- If you submit multiple URLs simultaneously, they will be processed sequentially.
- Polling
get_job_statusfor subsequent jobs will reportqueuedorrunningwhile they wait in the pipeline queue.
3. Windows Librosa Deadlock Fix
FastMCP thread dispatching under Windows can cause Numba compilation deadlocks inside background worker threads. To prevent this, Audio Sonic MCP incorporates a Pre-warming Routine (_prewarm_librosa() and _prewarm_demucs()) on launch. It forces JIT compile of resampling, HPSS, and mono-mixing functions in the main thread before starting the RPC listener.
4. BPM Accuracy and the bpm_engine Field
Tempo is estimated by madmom's RNN beat tracker. madmom is an optional dependency: it is unmaintained (latest release 0.16.1, classifiers stop at Python 3.7) and requires a Cython build, so it cannot be installed reliably everywhere and is not part of the default install.
When madmom is unavailable the pipeline falls back to librosa. That fallback is good on steady four-on-the-floor material but can lock onto a 2:3 or octave multiple of the true tempo — on one of our regression fixtures it reports 99.4 BPM against a ground truth of 148.
So the tempo is never reported unqualified. Every payload carries a bpm_engine field naming the engine that actually produced the number:
check_health reports madmom's status explicitly. To enable the accurate path:
If the build fails on a recent Python, use 3.10 for the analysis environment — madmom has no wheels for newer interpreters.
5. Diagnosing with check_health
If the server reports as degraded or tools are missing, call the check_health tool or check CLI warnings. It queries:
- Availability of
ffmpegon the execution path. - Installation status of Python packages (
librosa,soundfile,mcp, etc.). - Presence of the optional
madmombeat tracker, and whichbpm_enginewill be used as a result. - Access permissions to the
JOBS_ROOTdirectory.
🛠️ Development & Testing
Run unit tests inside your virtual environment to verify the mathematical pipelines using synthesized audio waveforms:
📄 License
Distributed under the MIT License. See LICENSE for details.
© 2026 Ripunjay Kashyap. All rights reserved.
来源:README.md,提交 1cb0e3e
工具
0版本历史
1- v1.2.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分