audaMcp
An MCP (Model Context Protocol) server that gives LLMs professional audio editing capabilities: stems separation, neural dereverb/de-echo, repair (declick/declip/decrackle), intelligent silence removal, mastering, and an optional Audacity 3.x bridge.
Runs locally — no cloud, no API keys for the audio processing itself.
What it does
| Category | Tools | Needs ML? |
|---|---|---|
| Analysis | auda_health, auda_analyze, auda_probe |
no |
| Repair | auda_reduce_noise, auda_dereverb, auda_deecho, auda_declick, auda_declip, auda_decrackle |
dereverb yes |
| Silence | auda_remove_silence, auda_trim_silence, auda_split_on_silence |
no |
| Stems | auda_separate_stems, auda_isolate_vocals, auda_karaoke, auda_isolate_drums, auda_isolate_bass |
yes (Demucs) |
| Mastering | auda_master, auda_loudness_normalize, auda_peak_normalize, auda_compressor, auda_limiter, auda_eq, auda_stereo_widen, auda_reverb_add |
no |
| Edit | auda_convert, auda_trim, auda_fade, auda_concat, auda_mix, auda_speed |
no |
| Audacity bridge | auda_audacity_status, auda_audacity_do, auda_audacity_import, auda_audacity_export, auda_audacity_apply_master |
no (needs Audacity 3.x) |
All tools take local file paths in, write a new file out, and return
JSON with metrics_before / metrics_after so the LLM can verify the
change landed. Audio never goes over the wire.
Quick start
CLI install (terminal use)
:: Windows
pip install audamcp # core DSP only (~10 MB)
pip install audamcp[ml] # + Demucs stem separation (~1.3 GB)
# macOS / Linux
pip install audamcp
pip install audamcp[ml]
MCP server install (for LLM clients)
:: Windows
cd audamcp
scripts\install.bat --cuda :: GPU (RTX 3050 etc.) — recommended
:: or
scripts\install.bat :: CPU only
:: or
scripts\install.bat --no-ml :: skip Demucs/dereverb entirely
scripts\register_clients.py :: register with all installed clients
python scripts\smoke_test.py :: verify
# macOS / Linux
cd audamcp
./scripts/install.sh --cuda # or omit flag for CPU
python scripts/register_clients.py
python scripts/smoke_test.py
Then restart your LLM client and call auda_health to confirm.
Supported LLM clients
register_clients.py auto-detects and configures:
- Claude Code —
claude mcp add - Claude Desktop — writes
claude_desktop_config.json - Cursor — writes
.cursor/mcp.json - GLM / ZCode — writes
configs/glm_zcode.json+ prints the snippet - Codex / other MCP —
codex mcp add+configs/codex.toml
The server speaks stdio MCP, so any MCP-aware client works.
GPU / memory policy
- Defaults to auto-detect: uses CUDA if free VRAM ≥ ~1 GB, else CPU.
- Per-call
device="cpu"/"cuda"override on every ML tool. - Long files on small GPUs (RTX 3050 / 4GB) auto-segment via Demucs's
native
--segmentflag — no OOM crashes. Seeaudamcp/config.py. - CUDA OOM during Demucs triggers an automatic CPU retry.
Audacity bridge
The auda_audacity_* tools require Audacity 3.x with mod-script-pipe
enabled. See scripts/enable_audacity_pipe.md.
Audacity 4.0 removed mod-script-pipe; the bridge is 3.x-only. All other
tools work regardless of Audacity version (or with no Audacity installed).
Skill
Install dpf-audio-pro (the companion skill) into your skills directory
to give the LLM curated workflows that chain these tools:
podcast cleanup, music mastering, vocal isolation, dialog restoration,
and archival restoration. See the skill's SKILL.md.
CLI usage
The auda command gives terminal access to all DSP functions directly:
# Analyze a file
auda analyze track.wav
# Peak normalize to -1 dBFS
auda normalize track.wav -o normalized.wav --target-db -1
# LUFS normalize to Spotify target
auda normalize track.wav -o spotify.wav --method lufs --lufs-target spotify
# Trim 10s–30s
auda trim track.wav -o clip.wav --start 10 --end 30
# Fade in 2s, fade out 3s
auda fade track.wav -o faded.wav --fade-in 2 --fade-out 3
# Concatenate with 0.5s gap
auda concat intro.wav body.wav outro.wav -o full.wav --gap 0.5
# Mix two files at different gains
auda mix music.wav vocals.wav -o mixed.wav --gains 0.7,1.0
# Transcode to 48kHz mono MP3
auda convert track.wav output.mp3 --sample-rate 48000 --channels 1 --bitrate 192k
# Apply EQ
auda eq track.wav -o eq.wav --highpass 30 --low-shelf-db 2 --high-shelf-db -1
# Compress
auda compressor track.wav -o comp.wav --threshold -18 --ratio 3 --attack 15 --release 180
# Limit
auda limiter track.wav -o limited.wav --ceiling -1
# Full mastering chain
auda master track.wav -o mastered.wav --target spotify
# Stem separation (requires demucs: pip install audamcp[ml])
auda stems track.wav -o stems_dir/
auda vocals track.wav -o vocals.wav
auda karaoke track.wav -o backing.wav
# Denoise
auda denoise noisy.wav -o clean.wav --algorithm spectral --strength 0.85
# Check system
auda health
# Raw ffprobe metadata
auda probe track.wav
All commands output JSON by default with {ok, tool, output, processing_seconds, ...}.
Project layout
audamcp/
├── pyproject.toml # uv-managed; deps split into core / ml / ml-dfn
├── audamcp/
│ ├── server.py # FastMCP app + @mcp.tool registrations
│ ├── cli.py # `auda` CLI (click) — direct terminal access
│ ├── audio_io.py # load / save / convert / probe
│ ├── loudness.py # BS.1770 + streaming target table
│ ├── analyze.py # BPM, spectral, dynamic range
│ ├── master.py # pedalboard mastering chain + dynamics
│ ├── dsp_util.py # convert / trim / fade / concat / mix / speed
│ ├── desilence.py # silence detect / trim / remove / split
│ ├── repair.py # declick / declip / decrackle
│ ├── denoise.py # noisereduce + DeepFilterNet
│ ├── stems.py # Demucs (htdemucs / _ft / _6s)
│ ├── dereverb.py # bs_roformer dereverb / deecho
│ ├── audacity_bridge.py # mod-script-pipe named-pipe client
│ ├── config.py # device detection + paths
│ └── utils.py # timing + JSON envelopes
├── scripts/ # install / register / smoke_test
└── configs/ # ready-to-paste per-client snippets
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file audamcp-0.2.1.tar.gz.
File metadata
- Download URL: audamcp-0.2.1.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
071036f7d72632055c77d37403a0689bde6c94eb1bdef6d6d3ac30c4a7425a88
|
|
| MD5 |
988f1c39780f8c8488e7bd26aef67bd9
|
|
| BLAKE2b-256 |
082472e397faffc97d47a3c3a1938bb2b7e754f908560c311e5d46ec19ca6f49
|
Provenance
The following attestation bundles were made for audamcp-0.2.1.tar.gz:
Publisher:
release.yml on Dream-Pixels-Forge/audacity-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audamcp-0.2.1.tar.gz -
Subject digest:
071036f7d72632055c77d37403a0689bde6c94eb1bdef6d6d3ac30c4a7425a88 - Sigstore transparency entry: 2531852224
- Sigstore integration time:
-
Permalink:
Dream-Pixels-Forge/audacity-mcp@9d812922e46f504f91cca48338ed68511f8d4243 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/Dream-Pixels-Forge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9d812922e46f504f91cca48338ed68511f8d4243 -
Trigger Event:
push
-
Statement type:
File details
Details for the file audamcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: audamcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 57.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81e1a419b89a049e99b02ac62b1c882d6d377bde015064a66d02bdaf1db016e7
|
|
| MD5 |
f4e09a792c45f9aa9f07162595c3ea7e
|
|
| BLAKE2b-256 |
90fd26454a070651173b8ba02be36c9b3b0a963c6a8ae3d121745af1b63d3423
|
Provenance
The following attestation bundles were made for audamcp-0.2.1-py3-none-any.whl:
Publisher:
release.yml on Dream-Pixels-Forge/audacity-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audamcp-0.2.1-py3-none-any.whl -
Subject digest:
81e1a419b89a049e99b02ac62b1c882d6d377bde015064a66d02bdaf1db016e7 - Sigstore transparency entry: 2531852675
- Sigstore integration time:
-
Permalink:
Dream-Pixels-Forge/audacity-mcp@9d812922e46f504f91cca48338ed68511f8d4243 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/Dream-Pixels-Forge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9d812922e46f504f91cca48338ed68511f8d4243 -
Trigger Event:
push
-
Statement type: