npm @audiolabtools/mcp-serverstdioMITupdated 21d ago
MCP (Model Context Protocol) server that gives any MCP-capable AI — Claude Desktop, Claude Code, Cursor, and others — nine audio-analysis tools, backed by the hosted AudioLab API. It is a thin HTTP client: no local audio engine, no ffmpeg, nothing to compile. It can analyse a public URL or a local file on your machine.
audiolab 能做什么?
@audiolabtools/mcp-server
MCP (Model Context Protocol) server that gives any MCP-capable AI — Claude Desktop, Claude Code, Cursor, and others — nine audio-analysis tools, backed by the hosted AudioLab API. It is a thin HTTP client: no local audio engine, no ffmpeg, nothing to compile. It can analyse a public URL or a local file on your machine.
Install
Point your MCP client at the package via npx (nothing to install globally):
{
"mcpServers": {
"audiolab": {
"command": "npx",
"args": ["-y", "@audiolabtools/mcp-server"],
"env": { "AUDIOLAB_API_KEY": "al_live_yourkey" }
}
}
}
Get a key: sign in at https://audiolab.tools/account and generate one (free tier available).
Requirements
- Node ≥ 18 — uses the built-in global
fetch+AbortSignal.timeout. - An
AUDIOLAB_API_KEY. No ffmpeg, no native dependencies.
Tools
Every tool takes one audio source — a public url or a local path:
{ url: "https://…" }— a public https URL the API fetches server-side.{ path: "./mix.wav" }— a file on the machine running this server. Files up to 4 MB are sent inline; larger files (up to 50 MB) upload over a one-shot signed URL, are analysed, and are then deleted. (Localpathworks only in this stdio server, not the remote/mcpendpoint.)
| Tool | Returns |
|---|---|
analyze_loudness |
Integrated LUFS (EBU R128 / BS.1770-4), true-peak (dBTP), LRA, crest factor, stereo correlation, mono compatibility, tonal balance |
check_target |
Pass/fail vs a delivery target (spotify / apple-music / youtube / tidal / amazon-music / podcast / ebu-broadcast / atsc-broadcast, or target:"custom" + lufs+tp), with per-metric deltas and an ffmpeg loudnorm fix command |
analyze_timeseries |
Short-term LUFS over time + downsampled waveform peaks (waveformPoints?) |
get_spectrum |
FFT magnitude data + 7-band energies + dominant band |
analyze_voice |
Voice QA: speech/silence ratio, speaking rate, SNR, noise floor, room echo, sibilance & clipping risk |
get_speech_segments |
Voiced regions with start/end + per-segment RMS (auto-trim, chapters) |
index_signal |
Content-type guess, tags, clipping/silence regions, brightness & dynamics buckets |
compare_loudness |
A/B on two sources (urlA/pathA + urlB/pathB), returns both results |
analyze_batch |
One route over up to 20 sources in a single call (urls and/or paths), per-item ok/data/error. For folder QA, library indexing, or checking a whole release against a target. Each item meters as one call |
Example asks to your AI:
- “Analyze the loudness of https://example.com/track.wav” →
analyze_loudnesswithurl - “Run loudness on ./master.wav” →
analyze_loudnesswithpath - “Does ./mix.mp3 pass Spotify?” →
check_targetwithpath+target:"spotify"
Configuration (env)
| Var | Default | Purpose |
|---|---|---|
AUDIOLAB_API_KEY |
— (required) | Your API key. |
AUDIOLAB_API_BASE |
https://audiolab.tools/v1 |
Override the API base (must be https://). |
AUDIOLAB_TIMEOUT_MS |
330000 |
Per-request timeout in milliseconds (long files and batches stream server-side and can legitimately take minutes). |
Privacy
Analysis happens on the AudioLab API, so the audio does reach audiolab.tools — a url
is fetched server-side, and a local path is sent to the API (small files inline; larger
files via a private one-shot signed upload that is deleted right after analysis). The API
returns numbers only and does not retain your audio (see https://audiolab.tools/privacy).
This package has no telemetry and writes nothing to disk. If audio must never leave the
machine, don't use a hosted analyser.
Limits
- Local files: up to 50 MB (host bigger ones at a public URL).
- Duration: loudness routes (
analyze_loudness,check_target,analyze_timeseries,get_spectrum) handle long files (podcast episodes, full sets — up to ~3 h) via server-side streaming; voice/signal routes are limited to ~7 minutes. - One file per call (agents loop for many); one-shot (no streaming/realtime).
- Rate and monthly limits are enforced by the API, per key.
Smoke test
node hosted-server.mjs --selftest # verifies the 9 tools + guards; no network
License
MIT © Nathan Renting
安装
把 audiolab 添加到你的客户端。选择你正在使用的那个。
claude mcp add mcp-server -- npx -y @audiolabtools/mcp-servercodex mcp add mcp-server -- npx -y @audiolabtools/mcp-serveramp mcp add mcp-server -- npx -y @audiolabtools/mcp-server{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp-server","command":"npx","args":["-y","@audiolabtools/mcp-server"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-server": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-server": {
"command": {
"path": "npx",
"args": [
"-y",
"@audiolabtools/mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @audiolabtools/mcp-serverRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
9 个工具
audiolab 向已连接的智能体提供 9 个工具。
- analyze_loudness
- Integrated LUFS (EBU R128 / BS.1770-4), true-peak (dBTP), LRA, crest factor, stereo correlation, mono compatibility, tonal balance
- check_target
- Pass/fail vs a delivery target (`spotify` / `apple-music` / `youtube` / `tidal` / `amazon-music` / `podcast` / `ebu-broadcast` / `atsc-broadcast`, or `target:"custom"` + `lufs`+`tp`), with per-metric deltas and an ffmpeg loudnorm fix command
- analyze_timeseries
- Short-term LUFS over time + downsampled waveform peaks (`waveformPoints?`)
- get_spectrum
- FFT magnitude data + 7-band energies + dominant band
- analyze_voice
- Voice QA: speech/silence ratio, speaking rate, SNR, noise floor, room echo, sibilance & clipping risk
- get_speech_segments
- Voiced regions with start/end + per-segment RMS (auto-trim, chapters)
- index_signal
- Content-type guess, tags, clipping/silence regions, brightness & dynamics buckets
- compare_loudness
- A/B on two sources (`urlA`/`pathA` + `urlB`/`pathB`), returns both results
- analyze_batch
- One route over up to 20 sources in a single call (`urls` and/or `paths`), per-item ok/data/error. For folder QA, library indexing, or checking a whole release against a target. Each item meters as one call
评分
75 / 100
良好
- 文档25/25
- 维护19/25
- 可信度13/20
- 能力6/15
- 安装体验12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 14 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 9 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
版本历史
| 版本 | 发布于 |
|---|---|
| 0.3.2最新 | 2026年8月11日 |