Skip to main content

audaMcp banner

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 Codeclaude 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 MCPcodex 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 --segment flag — no OOM crashes. See audamcp/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

audamcp-0.2.0.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

audamcp-0.2.0-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

Details for the file audamcp-0.2.0.tar.gz.

File metadata

  • Download URL: audamcp-0.2.0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for audamcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1ec65bd5aee6514a3ac7fedcda499e3c123f7cb367b3fc4ef18a04a83605ad7d
MD5 b8ded59db671c485e3c7b1e31db24071
BLAKE2b-256 385f416b67414fa4f9be47a1fb15604c1aff8eebe2e36e7c1b392c95976ea3fb

See more details on using hashes here.

File details

Details for the file audamcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: audamcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 49.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for audamcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44bd3e796669d398901f10041b4f6f558652ad86dcb7c9b41661d8402ba67c2f
MD5 a36b4d254b2c9f6c6d82e7618bb18da5
BLAKE2b-256 7ff6d7ad2f3c18ba5d395bfc5df415cfffcff1613d95c4117ffbefd56f5cff04

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page