Audio Sonic MCP
🎵 Audio Sonic MCP
将任何歌曲转化为结构化的“声音签名”——提取节奏、音乐调性、512 维 CLAP 氛围嵌入、可读的氛围标签以及制作配置文件——仅需一次本地调用。
Audio Sonic MCP 完全在您的本地机器上运行(无需 API 密钥、外部服务器或云依赖),并为同一底层高保真音频分析引擎提供两个高级访问入口:
适用对象 | 核心接口与机制 | |
🤖 MCP 服务器 | LLM、AI 代理和 IDE(Claude、Cursor、Windsurf、Cline) | 异步、即发即忘的 YouTube URL 分析。避免在繁重的音频处理过程中阻塞客户端 LLM。 |
🎚️ 本地 CLI | 音乐人、声音制作人和音频工程师 | 面向本地文件的深度命令行工具,支持全曲多窗口分析和高保真输出。 |
🎹 快速体验:您将获得什么
1. 音乐人友好的 CLI 摘要(--summary 模式)
🎵 SONIC SIGNATURE — my_demo.mp3 (3:24)
TEMPO 153.8 BPM (steady)
KEY G Major · shifts to G Phrygian @0:30 (confidence 74%)
VIBE aggressive · dark · driving · hip-hop · gritty
PRODUCTION
Vocals forward
Punch 0.62 (moderate)
Stereo wide
Low end ~55 Hz dominant
Overall confidence: 88% · analyzed in 0:28 (GPU-accelerated)2. 综合 JSON(由 MCP 和 CLI 默认返回)
{
"header": {
"job_id": "sig_a3f9b2c1",
"status": "success",
"confidence_score": 0.88,
"source_metadata": {
"title": "Acoustic Vibe Demo",
"duration_sec": 204,
"source_type": "file"
}
},
"sonic_signature": {
"bpm": 153.8,
"bpm_engine": "madmom",
"bpm_variable": false,
"key": "G Major",
"key_variable": true,
"key_map": [
{ "start_sec": 0.0, "end_sec": 30.0, "key": "G Major" },
{ "start_sec": 30.0, "end_sec": 90.0, "key": "G Phrygian" }
],
"mode_confidence": 0.74,
"vibe_vector": [0.012, -0.034, "... 512 float dimensions ..."],
"vibe_tags": ["aggressive", "dark", "driving", "hip-hop", "gritty"],
"production_profile": {
"vocal_presence": "forward",
"transient_punch": 0.62,
"stereo_width": "wide",
"dominant_freq_peaks_hz": {
"harmonic": [55.0, 110.2],
"percussive": [125.0, 250.1]
}
}
},
"telemetry": {
"inference_time_sec": 28.0
}
}Related MCP server: music-perception-mcp
⚡ 核心特性
🥁 节奏与节拍跟踪 — 完整的 BPM 计算,包含变速漂移检测和瞬态窗口化。
🎹 调性与和声映射 — 计算结构性的音乐调性和调式,生成详细的
key_map,跟踪逐段转调。🌈 氛围与风格嵌入 — 编译 512 维 CLAP 嵌入和人类可读的风格标签(涵盖能量、质感、情绪和流派),使用零样本音乐词汇分类。
🎚️ 制作分析 — 测量人声空间存在感、瞬态冲击系数、立体声宽度和主频峰值。
🤖 MCP 原生系统 — 完全暴露 4 个标准化的 Model Context Protocol 工具,便于即时集成到 AI 工具中。
🪶 稳健的优雅降级 — 如果存在 CUDA GPU 则自动使用,否则回退到 CPU;如果省略重型深度学习包(
[clap]),则优雅降级到 HPSS 和标准 librosa 特征数组。🔒 100% 离线且私密 — 所有转换、分离和推理均在本地进行。
📦 安装与设置
系统先决条件
确保您的系统 PATH 中已安装并可用 Python 3.10+ 和 FFmpeg。
安装 FFmpeg:
macOS:
brew install ffmpegLinux(Debian/Ubuntu):
sudo apt update && sudo apt install -y ffmpegWindows:通过 PowerShell(管理员)运行
winget install Gyan.FFmpeg,或从 ffmpeg.org 手动下载并将bin目录添加到系统环境变量中。
分步安装
克隆仓库
git clone https://github.com/ripunjay-kashyap/audio-sonic-mcp.git cd audio-sonic-mcp初始化虚拟环境
python -m venv .venv # Activate on macOS/Linux: source .venv/bin/activate # Activate on Windows (PowerShell): .venv\Scripts\activate安装依赖 选择轻量级核心引擎或完整的高保真 ML 套件:
选项 A:完整高保真 ML 套件(推荐) 包含分离音轨(Demucs)和零样本氛围向量(CLAP)。需要约 4 GB 磁盘空间。
pip install -e ".[clap]"选项 B:核心轻量级流水线 使用标准数字信号处理(HPSS/librosa)。快速安装,占用空间极小。
pip install -e .
[!NOTE] 可选的
[clap]栈会安装torch、torchaudio、transformers和demucs。如果没有这些,服务器会自动切换到轻量级回退方案(用 HPSS 代替 Demucs,用标准特征矩阵代替 CLAP 向量,并省略vibe_tags)。
🤖 MCP 客户端配置指南
Audio Sonic MCP 注册为标准包脚本。这使您可以直接从虚拟环境的 bin 文件夹中使用全局可执行名称(audio-sonic-mcp)运行它,或手动运行脚本文件。
1. Claude Desktop 设置
打开您的 Claude 配置文件:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
将服务器添加到您的 mcpServers 对象中:
{
"mcpServers": {
"audio-sonic-mcp": {
"command": "C:\\path\\to\\audio-sonic-mcp\\.venv\\Scripts\\audio-sonic-mcp.exe",
"args": [],
"env": {
"JOBS_ROOT": "C:\\path\\to\\audio-sonic-mcp\\jobs"
}
}
}
}[!IMPORTANT] Windows 用户:在 JSON 配置路径中始终使用双反斜杠(
\\)。将可执行文件直接指向.venv\Scripts\目录中的.exe。
2. Cursor IDE 集成
要将 Audio Sonic MCP 集成到 Cursor 的 AI 面板中:
导航到 设置 ➔ 功能 ➔ MCP。
点击 + 添加新的 MCP 服务器。
填写参数:
名称:
audio-sonic-mcp类型:
command命令:
/path/to/audio-sonic-mcp/.venv/bin/audio-sonic-mcp(在 Windows 上使用.exe扩展名)
3. Windsurf 集成
打开您的 Windsurf MCP 配置文件(通常位于 ~/.codeium/windsurf/mcp_config.json)并追加配置:
{
"mcpServers": {
"audio-sonic-mcp": {
"command": "/path/to/audio-sonic-mcp/.venv/bin/python",
"args": ["/path/to/audio-sonic-mcp/server.py"],
"env": {
"JOBS_ROOT": "/path/to/audio-sonic-mcp/jobs"
}
}
}
}4. Cline(VS Code 扩展)设置
打开 Cline 的 MCP 设置文件(通常位于 %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json 或等效的平台存储位置)并添加:
{
"mcpServers": {
"audio-sonic-mcp": {
"command": "/path/to/audio-sonic-mcp/.venv/bin/audio-sonic-mcp",
"args": [],
"env": {
"JOBS_ROOT": "/path/to/audio-sonic-mcp/jobs"
}
}
}
}🤖 AI 代理和 LLM 的交互流程
LLM 通过读取暴露的工具定义自动学习如何使用此服务器。由于音频音轨分离和 CLAP 嵌入计算量较大,Audio Sonic MCP 使用异步即发即忘作业模式。
自动化 LLM 工作流
[User Prompts LLM]
│
▼
1. Submit URL ──────────────► [Tool: get_sonic_signature]
│ (Returns Job ID instantly)
▼
2. Notify User ◄───────────── [LLM acknowledges job is queued]
│
├───► 3. Wait 10-15s (Or proceed with other tasks)
│
▼
4. Check Progress ──────────► [Tool: get_job_status]
│ (Checks status: running/success/error)
▼
5. Present Signature ◄─────── [LLM formats rich output for user]可尝试的自然提示
“检查我的 audio-sonic-mcp 服务器的健康状况,确保所有 ML 组件都已就绪。”
“提交这个 YouTube 曲目进行声音分析:
https://www.youtube.com/watch?v=XXXXXX。”“检查我的声音签名作业
sig_a1b2c3d4的进度,并在完成后总结 BPM、制作宽度和氛围。”
🎚️ CLI 用法(本地文件)
对于直接在终端工作的音乐人、工程师和制作人,您可以直接分析本地完整文件,无需运行任何后台服务器:
# Get a visual, musician-friendly sonic signature digest (recommended)
python analyze_file.py "my_demo.wav" --summary
# Print full raw JSON directly to the stdout stream
python analyze_file.py "my_demo.wav"
# Dump JSON payload to a file while keeping the stdout clean
python analyze_file.py "my_demo.wav" > signature.jsonCLI 命令选项参考
选项 | 简写 | 描述 |
| 无 | 本地音频文件的绝对或相对路径(必需)。 |
|
| 打印干净、格式化的终端摘要,而不是标准 JSON。 |
| 无 | 生成 JSON 签名,但省略沉重的 512 维氛围浮点数组。 |
|
| 将最终 JSON 签名直接输出到指定文件。 |
|
| 不删除 |
|
| 显式定义内部标识符(适用于批处理脚本)。 |
支持的文件格式:wav、mp3、flac、ogg、m4a、aac。
🔧 环境变量参考
通过在当前终端会话、容器环境或 MCP 配置文件的 env 块中声明这些变量来配置环境选项:
变量 | 默认值 | 描述 / 实际用途 |
|
| 工作目录,用于处理音频文件、临时转换的 WAV 和音轨。 |
| 未设置 | 设置为 |
|
| 本地文件处理时长的安全上限(YouTube 下载限制为 60 分钟)。 |
| 未设置 | 如果 |
| 未设置 | 直接传递给 |
|
| 服务器监听的传输方式: |
|
| 当 |
🐳 Docker / Podman 执行
如果您希望避免设置本地 Python 库,通过容器运行可以封装 FFmpeg、yt-dlp 和核心 Python 依赖(基于 CPU 的流水线):
# Build the container image
docker build -t audio-sonic-mcp .
# Run the MCP server over stdio, mounting local folders for job persistence
docker run -i --rm \
-v "$(pwd)/jobs:/app/jobs" \
-v "$(pwd)/models:/app/models" \
audio-sonic-mcp要将 Claude Desktop 连接到您的 Docker 容器,请配置 claude_desktop_config.json:
{
"mcpServers": {
"audio-sonic-mcp-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/absolute/path/to/jobs:/app/jobs",
"-v", "/absolute/path/to/models:/app/models",
"audio-sonic-mcp"
]
}
}
}⚙️ 底层工作原理
Audio Sonic MCP 的流水线是模块化构建的,使用事务性检查点确保可靠性。
LLM Agent / Claude Desktop Musician (Terminal)
│ │
│ MCP (stdio JSON-RPC) │ analyze_file.py
▼ ▼
┌──────────────────────────────────────────────────────────────────────────┐
│ Modular 6-Stage Analysis Pipeline │
│ │
│ Stage 1: Ingestion │ Pre-checks format, scans duration metadata │
│ Stage 2: Download │ Fetches audio tracks via yt-dlp (URLs only) │
│ Stage 3: Conversion │ normalizes sample formats to 44.1kHz WAV (FFmpeg)│
│ Stage 4: Separation │ Splits stems: Vocals, Drums, Bass, Other (Demucs)│
│ Stage 5: Analysis │ Computes BPM, modulations, key, punch (librosa) │
│ Stage 6: Embeddings │ Generates 512-dim zero-shot music vibe tags (CLAP)│
└─────────────────────────────────────┬────────────────────────────────────┘
▼
Result Payload: (header · sonic_signature · telemetry)音轨分离:Meta AI 的 Demucs(
mdx_extra) 将曲目分离为隔离音轨(vocals、drums、bass、other)。如果缺失,则优雅地回退到谐波-打击乐源分离(HPSS)。分析引擎:librosa 提取节奏和音调结构,将和弦模式和次低音运动与 Krumhansl-Schmuckler 和 Phrygian 模板引擎进行匹配。
语义氛围标签:LAION CLAP(
laion/larger_clap_music_and_speech)对高覆盖美学描述符(情绪、质感、流派)进行零样本推理,在风格两极之间选择最佳候选。
🩺 韧性与故障排除
1. 一次性设置下载延迟
在首次分析作业使用完整 ML 流水线时,demucs 和 transformers 将下载其预训练模型权重(Demucs 约 400 MB,CLAP 约 200 MB)。
服务器将下载进度指示器重定向到
stderr,因此它们不会破坏 JSON-RPC 标准流。在此下载期间,
get_job_status将保持running状态。根据您的网络速度,允许 1–3 分钟。后续启动时间不到 10 秒。
2. FastMCP 并发控制
多阶段架构上的模型推理对 CPU/VRAM 消耗极高。为了保护消费级硬件和虚拟环境免于崩溃(OutOfMemory 异常),Audio Sonic MCP 强制执行严格的全局序列化锁(CONCURRENCY_LOCK)。
如果您同时提交多个 URL,它们将被顺序处理。
轮询后续作业的
get_job_status将在它们等待流水线队列时报告queued或running。
3. Windows Librosa 死锁修复
Windows 下的 FastMCP 线程调度可能导致后台工作线程内的 Numba 编译死锁。为防止这种情况,Audio Sonic MCP 在启动时加入了预热例程(_prewarm_librosa() 和 _prewarm_demucs())。它在启动 RPC 监听器之前,强制在主线程中对重采样、HPSS 和单声道混音函数进行 JIT 编译。
4. BPM 精度与 bpm_engine 字段
节奏由 madmom 的 RNN 节拍追踪器估算。madmom 是一个可选依赖:它已不再维护(最新版本 0.16.1,分类器止步于 Python 3.7),并且需要 Cython 构建,因此无法在所有环境中可靠安装,也不是默认安装的一部分。
当 madmom 不可用时,流水线回退到 librosa。该回退在稳定的四踩底鼓素材上表现良好,但可能锁定到真实节奏的2:3 或八度倍数——在我们的一个回归测试样本中,它对 148 的真实值报告了 99.4 BPM。
因此,节奏永远不会无凭据地报告。每个负载都携带一个 bpm_engine 字段,指明实际产生该数值的引擎:
| 含义 |
| RNN 节拍追踪器——完全精度。 |
| madmom 不可用;将 BPM 视为近似值,并预期偶尔出现八度/三连音误差。 |
check_health 明确报告 madmom 的状态。要启用精确路径:
pip install ".[beats]"如果在较新的 Python 上构建失败,请为分析环境使用 3.10——madmom 没有针对更新解释器的 wheel 包。
5. 使用 check_health 进行诊断
如果服务器报告为 degraded 或工具缺失,请调用 check_health 工具或检查 CLI 警告。它会查询:
执行路径上
ffmpeg的可用性。Python 包(
librosa、soundfile、mcp等)的安装状态。可选
madmom节拍追踪器的存在情况,以及由此将使用哪个bpm_engine。对
JOBS_ROOT目录的访问权限。
🛠️ 开发与测试
在虚拟环境中运行单元测试,使用合成的音频波形验证数学流水线:
# Install development test framework
pip install -e ".[dev]"
# Execute full suite (requires no network or model downloads)
pytest
# Test specifically CLI execution code paths
pytest tests/test_cli.py📄 许可证
根据 MIT 许可证分发。详见 LICENSE。
© 2026 Ripunjay Kashyap。保留所有权利。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceDownloads audio from YouTube, analyzes with Essentia for BPM, mood, energy, spectrograms, and fetches synced lyrics from LRCLIB.6Apache 2.0
- FlicenseNot gradedqualityBmaintenanceAnalyzes audio files to extract exact, reproducible measurements like loudness, tempo, key, spectral balance, and clipping for LLM-based DAW control.
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to analyze audio files, extracting tempo, key, beat drops, volume surges, high tones, loudness, brightness, and structure, and returning structured JSON and visualizations.1MIT
- AlicenseAqualityCmaintenanceProvides local audio analysis tools for LLMs, enabling transcription, conversation dynamics, prosody analysis, and visual inspection without API keys.8MIT
Related MCP Connectors
Privacy-first audio intelligence: BPM, key, waveform. Audio never stored. Pay per second.
AI transcription from URLs or files. 119 languages, diarization, SRT/VTT/text export.
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ripunjay-kashyap/audio-sonic-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server