audio-mastering-mcp
A professional audio mastering MCP server powered by ffmpeg that produces release-ready masters with a full signal chain — no DAW required.
Analyze Loudness: Measure an audio file's integrated loudness (LUFS), true peak (dBTP), loudness range (LRA), and gating threshold — useful for checking levels against streaming or genre targets.
Mix Vocal Over Beat: Combine a vocal track with an instrumental using sidechain ducking (beat dips under the vocal), presence EQ, and light reverb on the voice. Outputs a 24-bit WAV pre-master ready for the mastering chain.
Master Audio: Run a full mastering signal chain — corrective EQ, glue compression, multiband compression, saturation, harmonic exciter, stereo staging, and a driven limiter — with 2-pass loudness normalization to hit an exact LUFS/true-peak target. Outputs a 320kbps MP3, reports mono compatibility, and offers stereo image options:
immersive,subtle, ornone.Export Dolby: Encode mastered audio to Dolby Digital Plus (E-AC-3) or Dolby Digital (AC-3), with optional basic 5.1 upmix. Note: these are channel-based codecs, not object-based Dolby Atmos.
Allows exporting mastered audio to Dolby Digital Plus (E-AC-3) and Dolby Digital (AC-3) codecs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@audio-mastering-mcp Master my track 'mix.wav' to -14 LUFS"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
audio-mastering-mcp
An MCP server that masters audio with a real, professional signal chain — powered entirely by ffmpeg, no DAW required. Give it a rough mix (or a vocal + a beat) and get back a clean, loud, release-ready master, an immersive wide-stereo version, and Dolby-codec exports.
It exists because letting an AI assistant "master a track" usually means hand-waving. This makes it concrete: a fixed, well-reasoned chain (corrective EQ → glue compression → multiband compression → saturation → exciter → stereo stage → limiter), finished with two-pass loudnorm so loudness and true-peak land on an exact target every time.
Table of contents
Related MCP server: reaper-mcp
Features
analyze_loudness— measure integrated loudness (LUFS), true peak (dBTP), loudness range (LRA), and gating threshold.mix_vocal_over_beat— lay a vocal over an instrumental with sidechain ducking (the beat dips under the words), presence EQ and a touch of reverb on the voice. Outputs a 24-bit WAV pre-master.master_audio— the full chain with 2-pass loudnorm to an exact LUFS / true-peak target. Aspatialoption (immersive|subtle|none) controls the stereo image, and it reports the mono-sum drop so you can check mono compatibility.export_dolby— encode to Dolby Digital Plus (E-AC-3) or Dolby Digital (AC-3).
Everything is deterministic and parameterized — same input + same settings → same master.
The mastering chain
master_audio runs this signal flow (industry-standard order, hip-hop-tuned):
input
│ corrective EQ high-pass 28 Hz · -2 dB @ 300 Hz (mud) · -1 dB @ 3 kHz (harsh)
│ +1.5 dB low shelf @ 90 Hz (warmth) · +2 dB air shelf @ 11 kHz
│ glue compression 2:1, slow (20 ms / 200 ms), ~1–2 dB GR for cohesion
│ multiband comp 3 bands (≤150 Hz / 150 Hz–4 kHz / ≥4 kHz) each lightly controlled
│ saturation gentle tanh soft-clip for harmonic warmth
│ harmonic exciter high-frequency sheen for clarity on small speakers
│ stereo stage none | subtle | immersive (see below)
│ limiter driven peak limiter, ceiling -0.9 dBFS
│ loudnorm (2-pass) linear normalization to exact LUFS / true-peak target
output → 320 kbps MP3Stereo stages
| What it does |
| Leaves the stereo image untouched. |
| Light overall widening ( |
| Keeps the bass mono (solid, centered low end) while widening the highs ( |
Install
# one-off, no install:
npx -y @ope-olatunji/audio-mastering-mcp
# or globally:
npm install -g @ope-olatunji/audio-mastering-mcp
audio-mastering-mcpFrom source:
git clone https://github.com/ope-olatunji/audio-mastering-mcp.git
cd audio-mastering-mcp
npm install && npm run build
node dist/index.jsUse it in an MCP client
Claude Code (~/.claude.json or project .mcp.json) / Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"audio-mastering": {
"command": "npx",
"args": ["-y", "@ope-olatunji/audio-mastering-mcp"]
}
}
}All file paths passed to the tools must be absolute.
Tools
analyze_loudness
Measure a file's loudness metrics.
Param | Type | Default | Notes |
|
| — | absolute path to a file |
// →
{ "integratedLufs": -11.7, "truePeakDb": -1.2, "lra": 1.1, "thresholdDb": -21.8 }mix_vocal_over_beat
Combine a vocal and an instrumental into a pre-master WAV.
Param | Type | Default | Notes |
|
| — | instrumental path |
|
| — | vocal path |
|
| — | output |
|
|
| how long the beat plays before the vocal enters |
|
|
| beat level under the vocal (lower = vocal forward) |
|
|
| vocal level |
The beat is sidechain-ducked under the vocal so the words always cut through.
master_audio
Run the full mastering chain to a target.
Param | Type | Default | Notes |
|
| — | pre-master / mix path |
|
| — | output |
|
|
| integrated loudness target |
|
|
| true-peak ceiling (use ~-1.5 so MP3 stays ≤ -1.0) |
|
|
| stereo stage |
|
|
| MP3 bitrate |
// →
{
"output": "/abs/track.mp3",
"spatial": "immersive",
"targetLufs": -10,
"final": { "integratedLufs": -11.7, "truePeakDb": -1.2, "lra": 1.1 },
"monoSumLufs": -15.3,
"monoDropDb": 3.6 // how much level is lost when summed to mono
}Why does it land at -11.7 when I asked for -10? Linear
loudnormwill back off the gain rather than exceed your true-peak ceiling. LowertruePeak(e.g.-2.0) gives the encoder more headroom; the driven limiter is what lets it reach loud targets without clipping.
export_dolby
Encode to a Dolby codec.
Param | Type | Default | Notes |
|
| — | mastered stereo file |
|
| — |
|
|
|
| E-AC-3 (DD+) or AC-3 (DD) |
|
|
| |
|
|
|
|
Loudness targets
Use case | Integrated LUFS | True peak |
Hip-hop / trap / "loud" | -7 to -10 | -1 dBTP |
Pop / rock | -9 to -11 | -1 dBTP |
Streaming reference | -14 | -1 dBTP |
Podcast / spoken | -16 | -1.5 dBTP |
Streaming platforms normalize to ~-14 LUFS, so a louder master is turned down on playback — louder ≠ "wins." Pick a target for the vibe, keep true peak at or below -1 dBTP.
About "Dolby"
export_dolby produces channel-based Dolby codecs — the "Dolby" badge (E-AC-3 / AC-3). It is not object-based Dolby Atmos, and for a stereo music single it gives no sonic benefit over a good stereo master.
Want a bigger sound? Use
master_audiowithspatial: "immersive".Want true Atmos (Apple Music Spatial Audio, etc.)? That requires Dolby's Atmos Renderer (built into Logic Pro) and your separate stems placed as 3D objects, exported as an ADM BWF master — a different pipeline that can't be done from
ffmpeg.
The export_dolby tool description states this plainly so it's never oversold.
Requirements
Node.js ≥ 18
ffmpegon yourPATH, built with these filters/encoders (all standard in modern ffmpeg):acrossover,aexciter,asoftclip,stereotools,extrastereo,acompressor,alimiter,loudnorm, and theeac3/ac3encoders.
Override the binary with the FFMPEG_PATH environment variable. Check your build:
ffmpeg -hide_banner -filters | grep -E 'acrossover|aexciter|stereotools|alimiter|loudnorm'
ffmpeg -hide_banner -encoders | grep -E 'eac3|ac3'Troubleshooting
loudnorm JSON not found— the input file path is wrong orffmpegisn't onPATH. Use absolute paths; setFFMPEG_PATHif needed.Master is quieter than
targetLufs— the true-peak ceiling is capping the gain. LowertruePeak(more headroom) or accept that very dynamic material can't hit extreme loudness cleanly.immersivesounds too wide / weak in mono — checkmonoDropDbin the result; if it's high (> ~4 dB), usespatial: "subtle"instead.Output true peak slightly above target — MP3 encoding adds inter-sample peaks; target
truePeak: -2.0to land near -1.0 dBTP in the file.
License
MIT © Ope Olatunji
Available Tools
4 toolsanalyze_loudnessA
Measure a track's integrated loudness (LUFS), true peak (dBTP), loudness range (LRA) and gating threshold. Call before/after mastering to verify levels against a target (hip-hop ~-9 to -10 LUFS, streaming -14, ceiling -1 dBTP).
Inputs: input (required).
export_dolbyA
Encode a track to a Dolby codec: 'eac3' = Dolby Digital Plus (E-AC-3), 'ac3' = Dolby Digital. IMPORTANT: these are channel-based Dolby codecs (the 'Dolby' badge), NOT object-based Dolby Atmos, and for a stereo music single give no sonic benefit over a good stereo master. True Atmos requires Dolby's Renderer (e.g. Logic Pro) and the separate stems. Default stereo at 48kHz; set channels=6 for a basic 5.1 upmix.
Inputs: input (required), output (required), codec, bitrate, +1 more.
master_audioA
Run a full professional mastering chain (corrective EQ -> glue compression -> 3-band multiband compression -> saturation -> harmonic exciter -> stereo stage -> driven limiter) with 2-pass loudnorm to hit an exact loudness/true-peak target. Outputs a 320kbps MP3. The 'spatial' option sets the stereo image: 'immersive' keeps the bass mono for a solid low end while widening the highs and adding subtle air for a bigger, more premium feel; 'subtle' adds light width; 'none' leaves the image as-is.
Inputs: input (required), output (required), targetLufs, truePeak, +2 more.
mix_vocal_over_beatA
Mix a vocal over an instrumental with sidechain ducking (the beat dips under the vocal so words cut through), plus presence EQ + light reverb on the voice and the beat pulled underneath. Outputs a 24-bit WAV pre-master that you then feed to master_audio.
Inputs: beat (required), vocal (required), output (required), vocalDelayMs, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: analyze_loudness for measurement, export_dolby for encoding, master_audio for full mastering, mix_vocal_over_beat for vocal mixing. No overlap.
All tools follow a consistent verb_noun pattern (analyze_loudness, export_dolby, master_audio, mix_vocal_over_beat), making the set predictable.
Four tools is well-scoped for an audio mastering server, covering essential functions without being too few or too many.
The tool surface covers analysis, mixing, mastering, and export. A minor gap is the lack of direct raw WAV export without mastering, but mix_vocal_over_beat provides a pre-master WAV.
Maintenance
Related MCP Connectors
Remote MCP server for audio stem separation, denoise, reverb, and MIDI export.
MCP server for Producer/Riffusion AI music generation
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
FFmpeg processing for video, audio and images via MCP with OAuth and shared account allowance.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceAn MCP server designed to work with FFmpeg for media processing tasks, offering enhanced performance and secure communication for handling media processing requests.216,348 npm15-
- AlicenseCqualityAmaintenanceA comprehensive MCP server that enables AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production workflows with 130 tools.1872,642 PyPI104MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that turns PreSonus Studio One into an AI-controllable DAW, enabling production workflows like editing, MIDI manipulation, mixing, effects, and export through an LLM.12MIT
- AlicenseAqualityCmaintenanceEnables AI agents to master audio tracks to target LUFS/True Peak levels, remove Suno/Udio AI fingerprints, and retrieve mastering passports via a hosted MCP server.1143 npm3MIT