MCP Audacity
Provides tools for controlling Audacity through the mod-script-pipe module, enabling project and track management, recording/playback transport, tone generation, audio effects, analysis, import/export, transcription, and more.
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., "@MCP Audacity Apply a fade-out to the last 3 seconds of the selected clip."
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.
MCP Audacity
MCP Audacity is a Codex-ready Audacity control server created by merging, modernizing, and extending two community projects:
It connects Codex to a locally running Audacity instance through Audacity's mod-script-pipe module. This is an independent community project; it is not an official Audacity or OpenAI product.
What is inside
The server exposes tools for:
project, track, selection, clip, and label management;
recording and playback transport;
tone, noise, silence, rhythm, and chirp generation;
fades, filters, dynamics, loudness, repair, and mastering workflows;
spectral, loudness, peak, sample-data, and diagnostic analysis;
audio and label import/export;
optional local transcription;
health checks and a static, allow-listed low-level command layer.
The high-level tools validate inputs and return structured results. The low-level layer is deliberately allow-listed: the server does not expose an arbitrary command or free-form Nyquist execution endpoint.
See the complete tool catalog, command status, and live verification reports for details. Verification reports are dated snapshots; plugin-dependent availability can differ between Audacity installations.
Related MCP server: codex-web-bridge
Requirements
Before installing, make sure you have:
Audacity 3.x installed on the same computer as Codex;
Python 3.10 or newer;
Git;
Codex desktop, Codex CLI, or the Codex IDE extension;
permission to enable Audacity's
mod-script-pipemodule.
This repository has been developed and tested against Audacity 3.x. Audacity 4.x compatibility is not claimed.
Audacity scripting controls the open application directly and supports one active project at a time. Keep Audacity visible while testing so you can inspect changes and respond to dialogs. Do not run this server on a public server or an untrusted shared machine: any local process able to reach the scripting pipe may control Audacity. Read the Audacity scripting manual before enabling the module.
Installation
1. Clone the repository
git clone https://github.com/illia3/MCP-Audacity.git
cd MCP-Audacity2. Create a virtual environment and install the server
Windows PowerShell:
py -m venv .venv
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install -e .macOS or Linux:
python3 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -e .Optional local transcription support:
# Windows
.\.venv\Scripts\python -m pip install -e ".[transcription]"# macOS or Linux
./.venv/bin/python -m pip install -e ".[transcription]"Transcription dependencies and models require additional disk space and memory. A model may be downloaded the first time transcription is used.
3. Enable Audacity scripting
Open Audacity.
On Windows or Linux, open Edit > Preferences > Modules. On macOS, open Audacity > Preferences > Modules.
Set
mod-script-pipeto Enabled.Confirm the change and restart Audacity manually.
Reopen the Modules page and confirm that the module is still enabled.
The module normally ships with Audacity on Windows and macOS but is disabled by default. Linux package availability varies; if it is missing, install a package or build of Audacity that includes mod-script-pipe.
4. Add the server to Codex
Use absolute paths when possible. Replace the example path with the location of your clone.
With Codex CLI on Windows:
codex mcp add audacity -- "C:\path\to\MCP-Audacity\.venv\Scripts\python.exe" -m audacity_mcp.mainWith Codex CLI on macOS or Linux:
codex mcp add audacity -- "/absolute/path/to/MCP-Audacity/.venv/bin/python" -m audacity_mcp.mainVerify the registration:
codex mcp listAlternatively, add a project-scoped .codex/config.toml to a trusted clone.
Windows example:
[mcp_servers.audacity]
command = "C:\\path\\to\\MCP-Audacity\\.venv\\Scripts\\python.exe"
args = ["-m", "audacity_mcp.main"]
cwd = "C:\\path\\to\\MCP-Audacity"
startup_timeout_sec = 20
tool_timeout_sec = 600
enabled = true
required = false
default_tools_approval_mode = "writes"macOS or Linux example:
[mcp_servers.audacity]
command = "/absolute/path/to/MCP-Audacity/.venv/bin/python"
args = ["-m", "audacity_mcp.main"]
cwd = "/absolute/path/to/MCP-Audacity"
startup_timeout_sec = 20
tool_timeout_sec = 600
enabled = true
required = false
default_tools_approval_mode = "writes"In the Codex desktop app, open Settings > MCP servers > Add server, enter the name and STDIO command, save, and restart Codex. Codex desktop, CLI, and the IDE extension share MCP configuration on the same host. See the official Codex MCP documentation for current configuration details.
5. Verify the connection
Start Audacity and open or create one project.
Restart Codex after adding the server.
Use
/mcpin Codex to confirm thataudacityis active.Ask Codex:
Run audacity_health and show the result.Then try the read-only request:
Run project_get_info and summarize the open Audacity project.
Only begin editing after the health check succeeds. Use a disposable project for your first write test.
What to expect when using it
Codex starts this repository as a local STDIO MCP server. The server then sends validated commands to the currently running Audacity process through named pipes. Successful write operations appear immediately in Audacity, so you can watch and intervene between tool calls.
Important behavior:
keep one Audacity instance and one active project open;
save a backup before destructive or multi-step edits;
avoid manual timeline changes while a tool call is running;
modal dialogs can block scripting until they are closed;
effects and analyzers vary by Audacity version, build, installed plugins, and localization;
use explicit export paths and a new filename when you do not want to replace an existing file;
a multi-step workflow is composed of separate MCP calls, so inspect the project between steps when precision matters.
Suggested first prompts:
Check Audacity health and summarize the current project without changing it.List all tracks, their types, mute/solo state, and approximate duration.In a new disposable project, generate a short 880 Hz tone on its own track and keep the peak below -6 dBFS.Analyze the current selection and recommend a cleanup chain, but do not apply any effects yet.Troubleshooting
If audacity_health cannot connect:
confirm that Audacity is already running;
confirm that
mod-script-pipeis enabled, then restart Audacity;keep only one Audacity instance open;
restart Codex after changing MCP configuration;
confirm that Codex, Python, and Audacity are running on the same machine and user session;
check local security software and file permissions.
If a specific command is unavailable, its effect, analyzer, or plugin may not be included in your Audacity build. Check command status, install or enable the required plugin, restart Audacity, and run the health check again.
If a command appears stuck, bring Audacity to the foreground and close any modal dialog. Then retry the operation.
Development and verification
Install development dependencies and run the offline suite:
python -m pip install -e ".[dev]"
python -m pytest -qWith Audacity running and mod-script-pipe enabled, run the live integration suite:
python scripts/live_integration_test.pyThe live suite edits the current Audacity project. Use a disposable project and review the script before running it.
Attribution and license
MCP Audacity incorporates and extends work from both upstream repositories named above. See THIRD_PARTY_NOTICES.md for attribution details.
Released under the Apache License 2.0.
Available Tools
253 toolsanalyze_beat_finderA
Find beats in the selected audio and add labels at beat positions.
Args: thres_val: Beat detection threshold (0-100, lower = more sensitive). Default: 65
Inputs: thres_val.
analyze_contrastA
Analyze the contrast between foreground and background audio. Select a region first. Useful for checking accessibility compliance (WCAG).
Inputs: no named parameters.
analyze_find_clippingA
Find clipping in the selected audio and create labels at clipped regions.
Args: duty_cycle_start: Min number of consecutive clipped samples to detect (1-1000, default 3) duty_cycle_end: Min number of consecutive non-clipped samples to end a region (1-1000, default 3)
Inputs: duty_cycle_end, duty_cycle_start.
analyze_label_soundsA
Automatically label regions of sound separated by silence.
A good starting point for segmenting a long recording: label every passage of sound, or with label_type="between" label the silences instead so they can be trimmed with label_delete_regions.
measurement, label_type, pre_offset, post_offset and label_text are new and not yet independently live-tested against a running Audacity — verified against the scripting reference and unit tests with mocked responses only. threshold_db/min_silence_duration/min_sound_duration predate this and are unaffected.
Args: threshold_db: Volume threshold to distinguish sound from silence (dB). Default: -30 min_silence_duration: Minimum duration of silence between sounds (seconds). Default: 0.5 min_sound_duration: Minimum duration of a sound region (seconds). Default: 0.1 measurement: How level is measured — peak, avg or rms. Default: peak label_type: What to label — before, after, around or between the sounds. Default: before pre_offset: Seconds to extend each label before the sound starts. Default: 0 post_offset: Seconds to extend each label after the sound ends. Default: 0 label_text: Text for each label. Default: Audacity's own default
Inputs: label_text, label_type, pre_offset, measurement, +4 more.
analyze_plot_spectrumA
Open the Plot Spectrum window for the selected audio. Select a region first.
Inputs: no named parameters.
analyze_sample_data_exportA
Export raw sample data from the selected audio to TXT, CSV, or HTML.
Args: path: Absolute path for the output file limit: Maximum number of samples to export. Default: 100
Inputs: path (required), limit.
audacity_healthA
Check pipe discovery and execute read-only GetInfo against Audacity.
Inputs: no named parameters.
audacity_server_infoA
Return local server/runtime information without contacting Audacity.
Inputs: no named parameters.
auto_analyze_audioA
Analyze the current audio track and recommend the best pipeline to use. This is SYNCHRONOUS — it returns the analysis directly, no job_id needed.
Returns peak level, estimated noise floor, duration, clipping status, and a recommendation for which auto_ pipeline to use next.
IMPORTANT: Load your audio into Audacity before calling this.
Inputs: no named parameters.
auto_audiobook_masteringA
ONE-CLICK AUDIOBOOK MASTERING: ACX/Audible compliant processing. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: DC offset > HPF 80Hz > noise reduction 12dB > compression 2.5:1 > RMS -20dB > peak cap -3.5dB Meets ACX requirements: RMS -23 to -18 dB, peaks below -3 dB (capped at -3.5 for safety margin), noise floor below -60 dB.
Args: remove_noise: Apply noise reduction using first 0.5s as noise profile. Default: True
IMPORTANT: If remove_noise is True, the first 0.5 seconds should be room tone / silence. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: remove_noise.
auto_cleanup_audioA
SAFE CLEANUP: Remove noise and artifacts WITHOUT changing loudness or dynamics. Use this when audio levels are already good and you just want to clean it up. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: DC offset removal > HPF 80Hz > noise reduction (opt) > click removal (opt) NO compression, NO normalize, NO LUFS. Just clean.
Args: remove_noise: Apply noise reduction using first 0.5s as noise profile. Default: True remove_clicks: Remove clicks/pops (useful for vinyl/old recordings). Default: False
IMPORTANT: If remove_noise is True, the first 0.5 seconds should be room tone / silence. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: remove_noise, remove_clicks.
auto_cleanup_interviewA
ONE-CLICK INTERVIEW CLEANUP: Light-touch processing for dialogue and multiple speakers. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: DC offset > HPF 80Hz > noise reduction 8dB > compression 2.5:1 > safe loudness check. Lighter than podcast — preserves natural conversation dynamics.
Args: remove_noise: Apply noise reduction using first 0.5s as noise profile. Default: True remove_silence: Truncate long silences. Default: False
IMPORTANT: If remove_noise is True, the first 0.5 seconds should be room tone / silence. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: remove_noise, remove_silence.
auto_cleanup_liveA
ONE-CLICK LIVE RECORDING CLEANUP: Aggressive processing for noisy/field recordings. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: DC offset > HPF 100Hz > click removal > noise reduction 12dB > compression 5:1 > safe loudness check. Designed for live performances, field recordings, and noisy environments. Noise reduction is always on at 12dB — max safe level before artifacts appear.
IMPORTANT: The first 0.5 seconds MUST be room tone / ambient noise for noise profiling. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: no named parameters.
auto_cleanup_podcastA
ONE-CLICK PODCAST CLEANUP: Professional broadcast-quality processing. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor. Safe for badly recorded audio — only reduces peaks if too hot, never boosts.
Pipeline: DC offset > HPF 80Hz > NR 12dB > compress 3:1 (30ms attack, 200ms release) > safe loudness check. Optional: noise reduction (on by default), silence truncation (off by default).
After the pipeline finishes, the user can manually apply LUFS normalization using the loudness_normalize tool if they want to hit a specific streaming target.
Args: remove_noise: Apply noise reduction using first 0.5s as noise profile. Default: True remove_silence: Truncate long silences/dead air. Default: False
IMPORTANT: If remove_noise is True, the first 0.5 seconds should be room tone / silence. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: remove_noise, remove_silence.
auto_cleanup_vocalA
ONE-CLICK VOCAL CLEANUP: Professional processing for singing and studio vocals. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: DC offset > HPF 100Hz > noise reduction 10dB > compression 3:1 > presence EQ > safe loudness check. Tuned for singing — presence boost for clarity, higher HPF for plosive removal.
Args: remove_noise: Apply noise reduction using first 0.5s as noise profile. Default: True
IMPORTANT: If remove_noise is True, the first 0.5 seconds should be room tone / silence. DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: remove_noise.
auto_lofi_effectA
CREATIVE LO-FI EFFECT: Apply a vintage/lo-fi sound to your audio. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline: HPF > LPF > bass/treble warmth > compression 2:1 > safe loudness check Creates that warm, muffled, vintage sound by cutting highs and boosting low-mids.
Args: intensity: "light" (subtle warmth), "medium" (classic lo-fi), "heavy" (extreme tape sound). Default: "medium"
DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: intensity.
auto_master_musicA
ONE-CLICK MUSIC MASTERING: Professionally master your music track with genre-tuned settings. Runs in background — returns a job_id immediately. Use check_pipeline_status to monitor.
Pipeline:
High-pass filter (remove sub-rumble)
Click removal (clean artifacts)
Noise reduction (optional, off by default for produced music)
Compression (genre-tuned, mastering-grade, no post-normalize)
Bass/treble sweetening (gentle, genre-tuned)
Safe loudness check (only reduces peaks if too hot, never boosts)
Args: style: Genre preset - "edm", "hiphop", "rock", "acoustic", "pop", "classical". Default: "edm" noise_reduce: Apply gentle noise reduction. Default: False DO NOT call this again if a pipeline is already running — use check_pipeline_status instead.
Inputs: style, noise_reduce.
check_pipeline_statusA
Check the status of a running pipeline. Call this after starting any auto_ pipeline to monitor progress. Poll every 15-30 seconds.
Args: job_id: The job ID returned by any auto_ pipeline tool
Inputs: job_id (required).
check_transcription_statusA
[EXPERIMENTAL] Check the status of a running transcription job. Call this after starting transcribe_audio, transcribe_to_labels, or transcribe_to_file. Poll every 10-15 seconds until status is 'complete' or 'error'.
Args: job_id: The job ID returned when you started the transcription.
Inputs: job_id (required).
click_removalA
Remove clicks and pops from the selected audio (e.g. vinyl recordings).
Args: threshold: Click detection threshold (0-900). Higher = fewer clicks removed. Default: 200 spike_width: Maximum width of a click in samples (0-40). Default: 20
Inputs: threshold, spike_width.
compressorA
Apply dynamic range compression. Evens out volume differences.
For mastering, use ratio 1.5-2:1 with attack > 80ms to preserve transients. For podcasts/voice, use ratio 4-8:1 with use_peak=True for tighter control. Higher ratios (4:1+) and fast attacks are mixing tools, not mastering tools.
WARNING: normalize=True will re-peak your audio to 0 dB after compression, which can make loud audio even louder. Use loudness_normalize() instead for proper LUFS-based loudness control.
Args: threshold_db: Level above which compression starts (dB). Default: -12 noise_floor_db: Level below which audio is not boosted (dB). Default: -40 ratio: Compression ratio (e.g. 2.0 = 2:1). Default: 2.0 attack_time: How fast compressor engages (seconds). Default: 0.2 release_time: How fast compressor releases (seconds). Default: 1.0 normalize: Normalize to 0dB peak after compression. Default: False use_peak: Compress based on peaks instead of RMS (better for voice/podcast). Default: False
Inputs: ratio, use_peak, normalize, attack_time, +3 more.
cursor_set_positionA
Move the cursor to a specific time position.
Args: time: Position in seconds
Inputs: time (required).
cursor_to_project_endA
Move the cursor to the end of the project (last audio).
Inputs: no named parameters.
cursor_to_project_startA
Move the cursor to the start of the project (time 0).
Inputs: no named parameters.
cursor_to_track_endA
Move the cursor to the end of the selected track.
Inputs: no named parameters.
cursor_to_track_startA
Move the cursor to the start of the selected track.
Inputs: no named parameters.
edit_copyA
Copy the selected audio to clipboard. Select a region first.
Inputs: no named parameters.
edit_cutA
Cut the selected audio to clipboard. Select a region first.
Inputs: no named parameters.
edit_deleteA
Delete the selected audio (does not copy to clipboard). Select a region first.
Inputs: no named parameters.
edit_disjoinB
Split the selected audio at detected silences, creating separate clips.
Inputs: no named parameters.
edit_duplicateA
Duplicate the selected audio into a new track.
Inputs: no named parameters.
edit_joinA
Join selected clips into one clip.
Inputs: no named parameters.
edit_pasteA
Paste audio from clipboard at the cursor position.
Inputs: no named parameters.
edit_silenceB
Replace the selected audio with silence.
Inputs: no named parameters.
edit_splitA
Split the clip at the cursor position or selection boundaries (in place, no new track).
Inputs: no named parameters.
edit_split_cutA
Cut the selected audio without closing the gap (leaves silence where audio was).
Inputs: no named parameters.
edit_split_deleteA
Delete the selected audio without closing the gap (leaves silence where audio was).
Inputs: no named parameters.
edit_split_newA
Split the selected audio into a new track at the selection boundaries.
Inputs: no named parameters.
edit_trimA
Trim audio outside the selection (delete everything except selected region).
Inputs: no named parameters.
effect_adjustable_fadeB
Apply an adjustable fade with curve control.
Args: fade_type: 0=fade up (in), 1=fade down (out). Default: 0 curve: Curve shape (0=linear, positive=exponential, negative=logarithmic). Default: 0
Inputs: curve, fade_type.
effect_amplifyA
Amplify the selected audio by a ratio. Select audio first.
Args: ratio: Amplification ratio (e.g. 1.5 = 150%, 0.5 = 50%). Must be > 0. Default: 1.0
Inputs: ratio.
effect_auto_duckA
Auto Duck: automatically reduce volume when audio is detected on another track. Place the control track (e.g. narration) above the track to duck (e.g. music). Select the track to duck before running.
Args: duck_amount_db: How much to reduce volume in dB (-24 to 0). Default: -12 inner_fade_down_len: Inner fade down length in seconds (>= 0). Default: 0 inner_fade_up_len: Inner fade up length in seconds (>= 0). Default: 0 outer_fade_down_len: Outer fade down length in seconds (>= 0). Default: 0.5 outer_fade_up_len: Outer fade up length in seconds (>= 0). Default: 0.5 threshold_db: Threshold for duck trigger in dB (-100 to 0). Default: -30 maximum_pause: Maximum pause between ducking regions in seconds (>= 0). Default: 1.0
Inputs: threshold_db, maximum_pause, duck_amount_db, inner_fade_up_len, +3 more.
effect_bass_and_trebleA
Adjust bass and treble frequencies with a simple tonal shaping tool.
Args: bass: Bass adjustment in dB (-30 to 30). Default: 0 treble: Treble adjustment in dB (-30 to 30). Default: 0 gain: Output gain in dB (-30 to 30). Default: 0
Inputs: bass, gain, treble.
effect_change_pitchA
Change the pitch of the selected audio without changing tempo.
Args: semitones: Number of semitones to shift (negative = lower, positive = higher)
Inputs: semitones.
effect_change_speedA
Change speed of the selected audio (changes both tempo and pitch together).
Args: percent: Percentage change (-99 to 4900, e.g. 100 = double speed)
Inputs: percent.
effect_change_tempoB
Change the tempo of the selected audio without changing pitch.
Args: percent: Percentage change (-95 to 3000, e.g. 50 = 50% faster, -25 = 25% slower)
Inputs: percent.
effect_clip_fixA
Attempt to repair clipped (distorted) audio by reconstructing peaks.
Args: threshold: Clipping threshold as percentage of max amplitude (0-100). Default: 95
Inputs: threshold.
effect_crossfade_clipsA
Crossfade between two adjacent clips on the same track. Select the junction point between two clips first.
Inputs: no named parameters.
effect_crossfade_tracksA
Crossfade between two overlapping tracks. Align the tracks so they overlap, select both, then run this effect.
Inputs: no named parameters.
effect_distortionB
Apply distortion effect to the selected audio.
Args: distortion_type: Type of distortion. Default: "Hard Clipping" threshold_db: Distortion threshold in dB (-100 to 0). Default: -6.0
Inputs: threshold_db, distortion_type.
effect_echoB
Apply echo effect to the selected audio.
Args: delay: Delay time in seconds. Default: 0.5 decay: Decay factor (0-1, lower = faster decay). Default: 0.5
Inputs: decay, delay.
effect_equalizationC
Apply EQ curve to the selected audio.
Args: curve_name: Name of the EQ preset curve. Default: "Default" length: Filter length (odd number, 21-8191). Default: 4001
Inputs: length, curve_name.
effect_fade_inA
Apply a fade-in to the selected audio. Select the region to fade first.
Inputs: no named parameters.
effect_fade_outA
Apply a fade-out to the selected audio. Select the region to fade first.
Inputs: no named parameters.
effect_high_pass_filterA
Apply a high-pass filter to remove low frequencies below the cutoff. Essential as step 1 in mastering chains to remove sub-rumble.
Args: frequency: Cutoff frequency in Hz. Default: 40 (removes sub-bass rumble) rolloff: Rolloff steepness - "dB6" (6 dB/octave) or "dB12" (12 dB/octave). Default: "dB12"
Inputs: rolloff, frequency.
effect_invertA
Invert (flip phase) the selected audio. Useful for phase cancellation.
Inputs: no named parameters.
effect_low_pass_filterB
Apply a low-pass filter to remove high frequencies above the cutoff.
Args: frequency: Cutoff frequency in Hz. Default: 20000 rolloff: Rolloff steepness - "dB6" (6 dB/octave) or "dB12" (12 dB/octave). Default: "dB6"
Inputs: rolloff, frequency.
effect_notch_filterA
Remove a specific frequency (e.g. 50/60Hz hum) with a notch filter.
Args: frequency: Center frequency to remove in Hz. Default: 60 (US mains hum) q: Q factor / sharpness of the notch (0.1-20). Higher = narrower notch. Default: 1.0
Inputs: q, frequency.
effect_paulstretchA
Extreme time-stretch effect (creates ambient/drone textures). Select audio first.
Args: stretch_factor: How much to stretch (1.0 = no change, 10.0 = 10x longer). Default: 10.0 time_resolution: Time resolution in seconds (smaller = better quality, slower). Default: 0.25
Inputs: stretch_factor, time_resolution.
effect_phaserB
Apply phaser effect to the selected audio.
Args: stages: Number of phaser stages (2-24, even only). Default: 2 dry_wet: Dry/wet mix (0=dry, 255=wet). Default: 128 frequency: LFO frequency in Hz (0.01-40). Default: 0.4 phase: LFO start phase in degrees (0-360). Default: 0 depth: Modulation depth (0-255). Default: 100 feedback: Feedback percentage (-100 to 100). Default: 0
Inputs: depth, phase, stages, dry_wet, +2 more.
effect_repairA
Repair a very short damaged section of audio (max 128 samples). Select the damaged region first — must be extremely short. Audacity will show an error popup if the selection is too long.
Inputs: no named parameters.
effect_repeatB
Repeat the selected audio a number of times.
Args: count: Number of times to repeat (1-128). Default: 1
Inputs: count.
effect_reverbB
Apply reverb effect to the selected audio.
Args: room_size: Room size percentage (0-100). Default: 75 pre_delay: Pre-delay in ms (0-200). Default: 10 reverberance: Reverberance percentage (0-100). Default: 50 hf_damping: High frequency damping (0-100). Default: 50 tone_low: Tone low percentage (0-100). Default: 100 tone_high: Tone high percentage (0-100). Default: 100 wet_gain: Wet signal gain in dB. Default: -1.0 dry_gain: Dry signal gain in dB. Default: -1.0 stereo_width: Stereo width (0-100). Default: 100 wet_only: Output only the wet signal. Default: False
Inputs: dry_gain, tone_low, wet_gain, wet_only, +6 more.
effect_reverseA
Reverse the selected audio. Select a region first.
Inputs: no named parameters.
effect_sliding_stretchA
Change tempo and/or pitch gradually across the selection (sliding time stretch).
Args: rate_change_start: Tempo change at start in % (-99 to 3000). Default: 0 rate_change_end: Tempo change at end in % (-99 to 3000). Default: 0 pitch_change_start: Pitch change at start in semitones (-12 to 12). Default: 0 pitch_change_end: Pitch change at end in semitones (-12 to 12). Default: 0
Inputs: rate_change_end, pitch_change_end, rate_change_start, pitch_change_start.
effect_studio_fade_outA
Apply a professional studio-quality fade out to the selected audio. Uses a specially shaped curve that sounds more natural than a linear fade.
Inputs: no named parameters.
effect_tremoloB
Apply tremolo (volume oscillation) effect to the selected audio.
Args: frequency: Tremolo speed in Hz (1-1000). Default: 5 depth: Tremolo depth as percentage (0-100). Default: 40 waveform: 0=Sine, 1=Triangle, 2=Sawtooth, 3=InverseSawtooth, 4=Square. Default: 0
Inputs: depth, waveform, frequency.
effect_vocal_reductionA
Vocal Reduction and Isolation: remove or isolate vocals from a stereo track.
Args: action: 0=Remove Vocals, 1=Isolate Vocals, 2=Remove Vocals (Mono), 3=Isolate Vocals (Mono), 4=Remove Center, 5=Isolate Center. Default: 0 low_cutoff: Low frequency cutoff in Hz. Default: 120 high_cutoff: High frequency cutoff in Hz. Default: 9000 strength: Effect strength (0-50). Default: 1.0
Inputs: action, strength, low_cutoff, high_cutoff.
effect_wahwahC
Apply wahwah effect to the selected audio.
Args: frequency: LFO frequency in Hz (0.1-4.0). Default: 1.5 phase: LFO start phase (0-360). Default: 0 depth: Modulation depth (0-100). Default: 70 resonance: Resonance (0.1-10). Default: 2.5 offset: Frequency offset (0-100). Default: 30
Inputs: depth, phase, offset, frequency, +1 more.
generate_chirpB
Generate a chirp (frequency sweep).
Args: waveform: "Sine", "Square", "Sawtooth", or "Square (no alias)". Default: "Sine" start_freq: Starting frequency in Hz. Default: 440 end_freq: Ending frequency in Hz. Default: 1320 start_amp: Starting amplitude (0-1). Default: 0.8 end_amp: Ending amplitude (0-1). Default: 0.1 duration: Duration in seconds. Default: 1.0
Inputs: end_amp, duration, end_freq, waveform, +2 more.
generate_dtmfA
Generate DTMF (telephone) tones.
Args: sequence: DTMF characters (0-9, A-D, *, #). Default: "0123456789" duty_cycle: Tone vs silence ratio percentage (0-100). Default: 55 amplitude: Amplitude (0-1). Default: 0.8 duration: Total duration in seconds. Default: 1.0
Inputs: duration, sequence, amplitude, duty_cycle.
generate_noiseC
Generate noise.
Args: noise_type: "White", "Pink", or "Brownian". Default: "White" amplitude: Amplitude (0-1). Default: 0.8 duration: Duration in seconds. Default: 1.0
Inputs: duration, amplitude, noise_type.
generate_rhythm_trackB
Generate a click/rhythm track.
Args: tempo: Tempo in BPM (30-300). Default: 120 beats_per_bar: Beats per bar (1-32). Default: 4 number_of_bars: Number of bars to generate (1-1000). Default: 4 rhythm_pattern: "Uniform" or "Swing". Default: "Uniform"
Inputs: tempo, beats_per_bar, number_of_bars, rhythm_pattern.
generate_toneB
Generate a tone signal.
Args: waveform: Wave type - "Sine", "Square", "Sawtooth", or "Square (no alias)". Default: "Sine" frequency: Frequency in Hz (1-20000). Default: 440 amplitude: Amplitude (0-1). Default: 0.8 duration: Duration in seconds. Default: 1.0
Inputs: duration, waveform, amplitude, frequency.
get_default_export_folderA
Get the default folder for exporting audio files. Returns the user's Music folder path. Use this when the user doesn't specify where to save.
Inputs: no named parameters.
get_default_transcription_folderA
Get the default folder for saving transcription files. Returns the user's Documents folder. Call this when the user doesn't specify where to save.
Inputs: no named parameters.
get_noise_profileA
Capture a noise profile from the currently selected audio region. IMPORTANT: Select a region of pure noise (e.g. 0.5-2 seconds of silence/background noise) before calling this. This profile is used by the noise_reduction tool.
How it works: The first call to NoiseReduction without an existing profile captures the selection as the noise profile. The next call applies reduction.
Inputs: no named parameters.
label_addB
Add a label at the current cursor position or selection.
Args: text: Label text. Default: empty
Inputs: text.
label_add_atB
Add a label at a specific time range.
Args: start: Start time in seconds end: End time in seconds text: Label text. Default: empty
Inputs: end (required), start (required), text.
label_add_batchA
Add many labels at once — a whole marker list in one call.
Each item is {"start": seconds, "end": seconds (optional, defaults to start for a point label), "text": string (optional)}. Every item is validated before anything is sent to Audacity, so a bad item fails the whole call rather than leaving a half-written list behind.
Args: labels: List of {"start", "end", "text"} label definitions
Inputs: labels (required).
label_cut_regionsA
Cut the audio under every label to the clipboard, closing the gaps.
Acts on labeled regions within the current selection on the SELECTED AUDIO TRACKS — select the audio tracks and time range first. Because the timeline closes up, the labeled regions collapse rather than surviving unchanged — re-read label_list afterwards to see what remains.
Not yet independently live-tested against a running Audacity, unlike label_delete_regions/label_silence_regions/label_split_regions/ label_join_regions.
Inputs: no named parameters.
label_deleteA
Delete a single label without touching the audio.
Get the index from label_list. Audacity has no scripting command for deleting one label, so this selects the label's own span on its own label track and split-deletes it — audio tracks are never in the selection, and nothing downstream shifts in time.
Other labels on the same track that sit entirely inside the deleted label's span would be removed as collateral, so they are re-added afterwards. A label that only partially overlaps the span may be trimmed to the boundary; check label_list afterwards if labels on that track overlap each other.
To delete a label and the audio under it, use label_delete_audio_at.
Args: index: Flat label index from label_list
Inputs: index (required).
label_delete_audio_atA
Delete the audio under ONE label, picked by index — not label_delete (marker only) or label_delete_regions (every label in the current selection, no index).
This is a custom, composite operation built for podcast/transcript-based editing, not a 1:1 wrapper over a single Audacity scripting command — unlike label_cut_regions/label_delete_regions/label_silence_regions/ label_split_regions/label_join_regions, which each call exactly one Audacity command. Audacity has no "delete this one labeled take" command, so this orchestrates several: SelAllTracks, then SelectTime, then Delete/SplitDelete, then clears the leftover marker.
By default the gap closes and everything after shifts left, exactly as label_delete_regions does. Pass close_gap=False to leave silence of the same length instead, keeping the timeline length and everything after it in place.
All tracks are selected first, so label tracks ripple along with the audio and later labels stay aligned with it.
Deleting the audio does NOT remove the label — it collapses to a zero-length marker sitting where the audio used to be. This tool clears that leftover marker too, matching what clicking a label and pressing Delete does in Audacity: the audio and the label both go. Pass delete_label=False to keep it as a marker of where the cut was made. Use label_delete instead to remove a label without touching any audio.
Args: index: Flat label index from label_list close_gap: Close the gap and shift later audio left. Default: True delete_label: Also remove the label left behind. Default: True
Inputs: index (required), close_gap, delete_label.
label_delete_regionsA
Delete the audio under every label, closing the gaps.
Label every unwanted stretch — bad takes, dead air, noise bursts — then remove them all in one pass. Use label_delete_audio_at for a single label. Acts on labeled regions within the current selection on the SELECTED AUDIO TRACKS — select the audio tracks and time range first. Because the timeline closes up, the labeled regions collapse rather than surviving unchanged — re-read label_list afterwards to see what remains.
Inputs: no named parameters.
label_editA
Edit an existing label's text and/or timing. Only the fields you pass are changed.
Get the index from label_list. Renaming a label is label_edit(index, text="..."); moving one of its boundaries is label_edit(index, start=...).
Args: index: Flat label index from label_list text: New label text. Default: unchanged start: New start time in seconds. Default: unchanged end: New end time in seconds. Default: unchanged
Inputs: index (required), end, text, start.
label_exportB
Export all labels to a text file.
Args: path: Absolute path for the output labels file
Inputs: path (required).
label_export_audio_segmentsA
Export the audio under each label as its own file.
Splits a long recording into per-segment audio files, named "01_Segment_Title.wav" and so on from the label text. ALWAYS tell the user which directory the files will be written to BEFORE calling this. Point labels (zero length) have no audio to export and are skipped. Existing files are never overwritten — they are skipped and reported. This can take a while for many or long segments.
Not yet independently live-tested against a running Audacity — verified against the scripting reference and unit tests with mocked responses only.
Args: directory: Absolute path to the output directory format: Audio format — wav, mp3, ogg, flac, aiff, mp4. Default: wav num_channels: 1 for mono, 2 for stereo. Default: 2
Inputs: directory (required), format, num_channels.
label_export_chaptersA
Export labels as a chapter/marker file.
Turns a label track into a standard marker file — chapter navigation for long-form audio, a track listing for a continuous mix, an index for a lecture or interview recording. Formats: "simple" (HH:MM:SS.mmm Title per line), "cue" (cue sheet), "podlove" (Podlove Simple Chapters JSON). Labels with no text become "Chapter 1", "Chapter 2" and so on.
Not yet independently live-tested against a running Audacity — verified against the scripting reference and unit tests with mocked responses only.
Args: path: Absolute path for the output file (must not already exist) format: Chapter format — simple, cue or podlove. Default: simple
Inputs: path (required), format.
label_findA
Find labels whose text contains a search string (case-insensitive).
Useful for locating a specific marker in a long recording without reading through every label.
Args: query: Text to search for within label text
Inputs: query (required).
label_get_allA
Get all labels in the project as Audacity's raw GetInfo response.
Prefer label_list — it returns the same labels already parsed, with the index each one needs for label_edit and label_delete.
Inputs: no named parameters.
label_importB
Import labels from a text file.
Args: path: Absolute path to the labels text file
Inputs: path (required).
label_join_regionsA
Join the audio clips across every labeled region back together.
The inverse of label_split_regions. Acts on labeled regions within the current selection on the SELECTED AUDIO TRACKS — select the audio tracks and time range first. The labels themselves stay where they are.
Inputs: no named parameters.
label_listA
List every label with its index, timing and text.
Returns labels sorted by Audacity's own flat index, which is what label_edit and label_delete take. Call this first whenever you need to modify a specific label, rather than guessing an index.
Inputs: no named parameters.
label_regular_intervalsB
Create labels at regular time intervals across the selection or project.
Args: interval: Time between labels in seconds. Default: 30 adjust: Adjust interval to fit selection evenly. Default: False label_text: Text for each label (labels will be numbered). Default: empty
Inputs: adjust, interval, label_text.
label_silence_regionsA
Replace the audio under every label with silence, keeping the timeline length.
Use when the material must not get shorter — redacting a name, muting a noise burst in a take that has to stay in sync. Acts on labeled regions within the current selection on the SELECTED AUDIO TRACKS — select the audio tracks and time range first. The labels themselves stay where they are.
Inputs: no named parameters.
label_split_regionsA
Split the audio clips at every label boundary.
Prepares segment boundaries for separate handling without removing anything. Acts on labeled regions within the current selection on the SELECTED AUDIO TRACKS — select the audio tracks and time range first. The labels themselves stay where they are.
Inputs: no named parameters.
limiterB
Apply a limiter to prevent audio from exceeding a threshold. Use after compression.
Default ceiling is -1.0 dB, the industry standard for streaming platforms.
Args: limit_db: Maximum output level (dB). Default: -1.0 hold_ms: Hold time in milliseconds. Default: 10.0 makeup_gain: Apply makeup gain ("Yes" or "No"). Default: "No" limiter_type: "SoftLimit", "HardLimit", "SoftClip", "HardClip". Default: "SoftLimit" gain_left: Input gain for left channel (dB). Default: 0.0 gain_right: Input gain for right channel (dB). Default: 0.0
Inputs: hold_ms, limit_db, gain_left, gain_right, +2 more.
loudness_normalizeA
Normalize audio to a target perceived loudness in LUFS.
DANGER — READ BEFORE USING: This tool can DESTROY audio if used incorrectly. It boosts OR reduces audio to hit the target LUFS. On quiet or poorly recorded audio, it may boost by 20-30 dB, causing severe clipping and distortion that ruins the file.
DO NOT use this tool:
Right after a pipeline (pipelines already handle loudness safely)
On raw/unprocessed audio (clean it up first)
Without first running auto_analyze_audio to check current levels
If the audio peaks below -20 dB (it's too quiet — use normalize first to gently raise levels)
ONLY use this tool when the user EXPLICITLY asks for LUFS normalization AND the audio has already been processed and has healthy levels (peaks between -6 dB and -1 dB).
Targets (only use these values):
-16 LUFS: Podcast, broadcast, Apple Music
-14 LUFS: Spotify, YouTube, most streaming
-11 LUFS: Loud masters (hip-hop/EDM)
Args: lufs_level: Target loudness in LUFS (-50 to -5). Default: -16.0 stereo_independent: Normalize L/R channels independently. Default: False dual_mono: Treat mono as dual-mono for correct LUFS measurement. Default: True
Inputs: dual_mono, lufs_level, stereo_independent.
noise_reductionA
Apply noise reduction to the selected audio. You MUST call get_noise_profile first on a region of pure noise, then select the audio you want to clean, then call this.
WARNING: Values above 20 dB risk audible artifacts (warbling, metallic sound). Use 6-12 dB for gentle cleanup, 12-20 dB for moderate noise. Only exceed 20 dB for extremely noisy recordings where some artifact trade-off is acceptable.
Args: noise_reduction_db: Amount of noise reduction in dB (0-48). Default: 12 sensitivity: How sensitive the detection is (0-24). Default: 6 frequency_smoothing: Number of frequency smoothing bands (0-12). Default: 3
Inputs: sensitivity, noise_reduction_db, frequency_smoothing.
normalizeA
Normalize the selected audio to a target peak level.
WARNING: This boosts OR reduces audio to hit the target. If audio peaks at -30 dB and you normalize to -1 dB, it will BOOST by 29 dB — potentially blowing out the audio. ALWAYS check current audio levels first (use project_get_info) before normalizing.
Guidelines — choose your target based on what comes next:
-3 dB (default): Safe general-purpose level with headroom for further processing
-6 dB: Conservative, good for unknown or problematic audio
-1 dB: ONLY as a final ceiling on already-mastered audio (never on raw audio)
-12 dB or lower: For very quiet audio that needs gentle boosting
Args: peak_level_db: Target peak level in dB (-60 to 0). Default: -3.0 remove_dc: Remove DC offset before normalizing. Default: True stereo_independent: Normalize L/R channels separately (fixes unbalanced recordings). Default: False
Inputs: remove_dc, peak_level_db, stereo_independent.
project_closeB
Close the current Audacity project.
Inputs: no named parameters.
project_edit_metadataA
Open the metadata editor dialog to view/edit track metadata (title, artist, etc.). This opens a modal dialog in Audacity — the command waits until the user closes it.
Inputs: no named parameters.
project_export_audioA
Export the project audio to a file. Format is determined by file extension.
MANDATORY: ALWAYS tell the user where the file will be saved BEFORE exporting. Example: "I'll save your audio to C:\Users\Name\Music\file.mp3"
NEVER save directly to the user's home folder (e.g. ~/file.mp3 or C:\Users\Name\file.mp3). ALWAYS save to a subfolder. If the user doesn't specify a path, call get_default_export_folder to get their Music folder and save there. Acceptable locations:
Music folder: ~/Music/file.mp3
Documents folder: ~/Documents/file.mp3
Desktop: ~/Desktop/file.mp3 NEVER save to the home folder root — this clutters the user's home directory.
Args: path: Absolute path for exported file. Extension determines format (wav, mp3, ogg, flac, aiff). num_channels: Number of channels (1=mono, 2=stereo). Default: 2
Inputs: path (required), num_channels.
project_export_labelsB
Export all labels to a text file.
Args: path: Absolute path for the exported labels file
Inputs: path (required).
project_get_infoB
Get information about the current project.
Args: info_type: Type of info to retrieve. One of: Tracks, Clips, Envelopes, Labels, Boxes, Commands
Inputs: info_type.
project_import_audioA
Import an audio file into the current project. Creates a new track.
Args: path: Absolute path to the audio file (wav, mp3, ogg, flac, etc.)
Inputs: path (required).
project_import_midiA
Import a MIDI file into the current project.
Args: path: Absolute path to the MIDI file (.mid, .midi)
Inputs: path (required).
project_newA
Create a new empty Audacity project.
Inputs: no named parameters.
project_openB
Open an existing Audacity project file (.aup3).
Args: path: Absolute path to the .aup3 project file
Inputs: path (required).
project_saveA
Save the current Audacity project. ONLY call this when the user explicitly asks to save. Do NOT auto-save after effects or pipelines — the user controls when to save.
Inputs: no named parameters.
project_save_asA
Save the current project to a new .aup3 file. ONLY call when user explicitly asks. Do NOT auto-save after effects or pipelines.
Args: path: Absolute path for the new .aup3 file
Inputs: path (required).
raw_aboutB
About: Display information about Audacity. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_apply_macroA
ApplyMacro: Apply a defined macro to the project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_beatsand_measuresA
BeatsandMeasures: Set timeline format to beats and measures. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_change_audioA
ChangeAudio: Open the audio host/interface selection dialog. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_check_depsA
CheckDeps: Check dependencies for the current project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_compare_audioB
CompareAudio: Compare audio regions between tracks. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_crash_reportA
CrashReport: Generate a support report for troubleshooting. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_leftB
CursorLeft: Move the cursor left by one unit. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_long_jump_leftA
CursorLongJumpLeft: Move the cursor 15 seconds left. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_long_jump_rightA
CursorLongJumpRight: Move the cursor 15 seconds right. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_rightA
CursorRight: Move the cursor right by one unit. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_short_jump_leftA
CursorShortJumpLeft: Move the cursor 1 second left. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_cursor_short_jump_rightA
CursorShortJumpRight: Move the cursor 1 second right. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_delayA
Delay: Apply a delay effect. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_device_infoA
DeviceInfo: Show technical information about audio devices. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_dragA
Drag: Simulate a mouse drag for UI interactions. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_edit_labelsC
EditLabels: Open the Label Editor dialog. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_exitB
Exit: Close all project windows and exit Audacity. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_export_audioA
ExportAudio: Export audio files in various formats. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_first_trackA
FirstTrack: Focus the first track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_get_preferenceA
GetPreference: Retrieve a preference value. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_graphic_eqA
GraphicEq: Apply a graphic equalizer effect. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_helpA
Help: Get help information for a command. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_import_audioB
ImportAudio: Import an audio file as a new track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_import_rawA
ImportRaw: Import raw audio data without headers. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_input_deviceB
InputDevice: Open the recording device selection dialog. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_karaokeA
Karaoke: Display the karaoke window. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_last_trackB
LastTrack: Focus the last track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_logA
Log: Open the Audacity log window. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_manage_analyzersA
ManageAnalyzers: Open the analyzers plugin manager. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_manage_macrosB
ManageMacros: Create or edit macros. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_manage_toolsA
ManageTools: Open the tools/effects/generators manager. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_manualA
Manual: Open Audacity's manual in the default web browser. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_messageB
Message: Send a test message to Audacity. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_midi_device_infoB
MidiDeviceInfo: Show information about MIDI devices. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_minutesand_secondsA
MinutesandSeconds: Set timeline format to minutes and seconds. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_mixer_boardA
MixerBoard: Switch to the mixer board view. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_next_frameA
NextFrame: Move focus forward from toolbars to tracks. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_next_trackA
NextTrack: Focus the next track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_next_windowA
NextWindow: Navigate to the next window. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_nyquistB
Nyquist: Open the Nyquist scripting prompt. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_openA
Open: Open an audio file, list of files, or project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_output_deviceA
OutputDevice: Open the playback device selection dialog. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_paste_new_labelA
PasteNewLabel: Paste text from the clipboard into a new label. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_paulstretchA
Paulstretch: Apply an extreme time-stretch effect. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_play_stopA
PlayStop: Toggle playback on and off. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_play_stop_selectA
PlayStopSelect: Play/Stop and update cursor position. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_pluckB
Pluck: Generate a plucked tone effect. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_prev_frameA
PrevFrame: Move focus backward from toolbars to tracks. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_prev_trackA
PrevTrack: Focus the previous track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_prev_windowA
PrevWindow: Navigate to the previous window. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_printA
Print: Print all waveforms in the current project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_punch_and_rollA
PunchAndRoll: Start punch and roll recording. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_quick_helpA
QuickHelp: Display a brief help message. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_record2nd_choiceA
Record2ndChoice: Start recording on a new track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_redoA
Redo: Redo the most recent undone action. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_risset_drumB
RissetDrum: Generate a continuously evolving drum sound. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_saveA
Save: Save the current project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_save_asA
SaveAs: Save the current project under a new name. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_save_compressedA
SaveCompressed: Save a compressed copy of the project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_save_copyA
SaveCopy: Save a lossless copy of the project. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_screenshotA
Screenshot: Capture a screenshot of Audacity (short format). Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_scrubB
Scrub: Scrub through audio. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_seekB
Seek: Jump to a specified position in the audio. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_sel_cursor_stored_cursorB
SelCursorStoredCursor: Select audio from current cursor to stored position. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_selectC
Select: Modify selection based on parameters. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_sel_endA
SelEnd: Set selection from cursor to end of track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_sel_startA
SelStart: Set selection from cursor to start of track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_set_clipB
SetClip: Modify properties (color, start time) of a clip. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_set_envelopeB
SetEnvelope: Adjust the envelope value at a specified time. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_set_preferenceC
SetPreference: Set a preference value (with optional reload). Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_set_projectB
SetProject: Change project window properties (size, position, caption). Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_set_track_audioB
SetTrackAudio: Set audio properties (mute, solo, gain, pan) for a track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_shift_downA
ShiftDown: Move focus downward and select the next track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_shift_upA
ShiftUp: Move focus upward and select the previous track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_show_clippingA
ShowClipping: Toggle display of clipping in the waveform. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_snap_to_nearestA
SnapToNearest: Snap selections to the nearest time unit. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_snap_to_offA
SnapToOff: Disable snapping for selections. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_snap_to_priorB
SnapToPrior: Snap selections to the previous time unit. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_sound_activationA
SoundActivation: Toggle sound-activated recording. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_sound_activation_levelA
SoundActivationLevel: Set the threshold level for sound-activated recording. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_store_cursor_positionA
StoreCursorPosition: Store current cursor position for later selection. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_timer_recordB
TimerRecord: Open Timer Record dialog. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_toggleB
Toggle: Toggle focus on the current track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_closeA
TrackClose: Close the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_gainB
TrackGain: Open the gain dialog for the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_gain_decB
TrackGainDec: Decrease the gain on the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_gain_incA
TrackGainInc: Increase the gain on the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_move_bottomA
TrackMoveBottom: Move the focused track to the bottom. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_move_downA
TrackMoveDown: Move the focused track down one position. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_move_topA
TrackMoveTop: Move the focused track to the top. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_move_upB
TrackMoveUp: Move the focused track up one position. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_muteA
TrackMute: Toggle mute on the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_panB
TrackPan: Open the pan dialog for the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_pan_leftA
TrackPanLeft: Pan the focused track to the left. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_pan_rightA
TrackPanRight: Pan the focused track to the right. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_track_soloA
TrackSolo: Toggle solo on the focused track. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_type_to_create_labelB
TypeToCreateLabel: Create a label by typing (if enabled). Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_undoA
Undo: Undo the most recent editing action. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_undo_historyA
UndoHistory: Display the undo history window. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_updatesA
Updates: Check for updates for Audacity. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_zoom_inA
ZoomIn: Zoom in horizontally. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_zoom_normalA
ZoomNormal: Reset zoom to the default view. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_zoom_outA
ZoomOut: Zoom out horizontally. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_zoom_selA
ZoomSel: Zoom to fill the current selection. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
raw_zoom_toggleA
ZoomToggle: Toggle between two preset zoom levels. Static no-argument Audacity action. May open a dialog or change project state; inspect the command name first.
Inputs: no named parameters.
select_allA
Select all audio in all tracks. Selects both tracks and time range.
Inputs: no named parameters.
select_clipB
Select the clip under the cursor.
Inputs: no named parameters.
select_cursor_to_track_endA
Select from the current cursor position to the end of the track.
Inputs: no named parameters.
select_noneA
Deselect all audio.
Inputs: no named parameters.
select_regionC
Select a time region in the current track(s). Many effects operate on the selection.
Args: start: Start time in seconds end: End time in seconds
Inputs: end (required), start (required).
select_tracksA
Select one or more tracks by index.
Args: track: Starting track index (0-based) count: Number of tracks to select
Inputs: track (required), count.
select_zero_crossingA
Adjust the current selection boundaries to the nearest zero crossings. Useful before cuts to avoid audible clicks at edit points.
Inputs: no named parameters.
track_add_labelA
Add a new empty label track to the project.
Inputs: no named parameters.
track_add_monoA
Add a new mono audio track to the project.
Inputs: no named parameters.
track_add_stereoA
Add a new stereo audio track to the project.
Inputs: no named parameters.
track_align_end_to_endB
Align selected tracks end-to-end (sequentially). Select the tracks first.
Inputs: no named parameters.
track_get_infoA
Get information about all tracks in the project (names, types, rates, etc.).
Inputs: no named parameters.
track_mix_and_renderA
Mix and render selected tracks into a single track. Select tracks first.
Inputs: no named parameters.
track_mix_and_render_to_newA
Mix and render selected tracks into a new track, keeping the originals. Select tracks first.
Inputs: no named parameters.
track_muteB
Mute or unmute a track.
Args: track: Track index (0-based) mute: True to mute, False to unmute
Inputs: track (required), mute.
track_mute_allA
Mute all tracks in the project.
Inputs: no named parameters.
track_removeA
Remove the currently selected track(s). Select tracks first with track_select.
Inputs: no named parameters.
track_resampleA
Resample the selected track to a new sample rate.
Args: rate: Target sample rate in Hz (e.g. 44100, 48000, 96000). Must be > 0.
Inputs: rate.
track_selectA
Select a track by index. Many operations require selecting a track first.
Args: track: Track index (0-based)
Inputs: track (required).
track_set_propertiesB
Set properties of a track by index.
Args: track: Track index (0-based) name: New track name gain: Track gain in dB (-36 to 36) pan: Track pan (-1.0=left to 1.0=right) mute: Mute the track solo: Solo the track
Inputs: track (required), pan, gain, mute, +2 more.
track_stereo_to_monoA
Convert the selected stereo track to mono. Select the track first.
Inputs: no named parameters.
track_unmute_allA
Unmute all tracks in the project.
Inputs: no named parameters.
transcribe_audioA
[EXPERIMENTAL] Transcribe the entire project audio using faster-whisper (local, offline). Requires separate setup — see installation guide. If this fails, tell the user transcription is experimental and point them to the Transcription Setup docs.
Runs in BACKGROUND — returns a job_id immediately. Use check_transcription_status to monitor progress. Poll every 10-15 seconds.
Do NOT call transcription_set_model first — this handles model loading automatically.
After transcription completes, TELL the user where the transcript was saved or offer to save it. Always tell the user the file location so they can find it.
Language auto-detection can occasionally misidentify the language (background
music, noise, a short/ambiguous clip) and transcribe genuinely-English audio
in the wrong script entirely. If you already know the audio's language from
context, pass language explicitly (e.g. "en") instead of relying on
auto-detect, or set task="translate" to force English output regardless of
the spoken language. If a result comes back in an unexpected language/script,
just retry with THIS SAME tool and the corrected language/task.
Args: model_size: Whisper model - "tiny", "base", "small", "medium", "large-v3". Default: "small" language: ISO language code (e.g. "en", "fr") or None for auto-detect task: "transcribe" or "translate" (translate converts any language to English)
Inputs: task, language, model_size.
transcribe_selectionA
[EXPERIMENTAL] Transcribe only the currently selected audio region. Requires separate setup — see installation guide.
Runs in BACKGROUND — returns a job_id immediately. Use check_transcription_status to monitor progress.
Select a region first, then call this tool.
Language auto-detection can occasionally misidentify the language on a short
or ambiguous clip. If you already know the audio's language, pass language
explicitly (e.g. "en"), or set task="translate" to force English output.
Args: model_size: Whisper model - "tiny", "base", "small", "medium", "large-v3" language: ISO language code or None for auto-detect task: "transcribe" or "translate"
Inputs: task, language, model_size.
transcribe_to_fileA
[EXPERIMENTAL] Transcribe audio and export to a subtitle or text file. Requires separate setup — see installation guide.
ALWAYS tell the user where the file will be saved BEFORE starting. If user doesn't specify a path, call get_default_export_folder to get a real path. NEVER guess paths like /home/user/... — always use absolute Windows paths like C:\Users\Name\Documents\transcript.srt
Runs in BACKGROUND — returns a job_id immediately. Use check_transcription_status to monitor progress.
Language auto-detection can occasionally misidentify the language (background
music, noise, a short/ambiguous clip) and transcribe genuinely-English audio
in the wrong script entirely. If you already know the audio's language from
context, pass language explicitly (e.g. "en"), or set task="translate" to
force English output regardless of the spoken language. Retry with THIS SAME
tool and the corrected language/task — use a new path since an existing file
at the same path is rejected below.
Args: path: Absolute path for the output file (e.g. "C:/Users/You/Documents/transcript.srt") format: Output format - "srt", "vtt", or "txt" model_size: Whisper model - "tiny", "base", "small", "medium", "large-v3" language: ISO language code (e.g. "en") or None for auto-detect task: "transcribe" (spoken language) or "translate" (always English)
Inputs: path (required), task, format, language, +1 more.
transcribe_to_labelsA
[EXPERIMENTAL] Transcribe audio and add Audacity labels at each segment timestamp. Requires separate setup — see installation guide.
Runs in BACKGROUND — returns a job_id immediately. Use check_transcription_status to monitor progress.
Language auto-detection can occasionally misidentify the language (background
music, noise, a short/ambiguous clip) and transcribe genuinely-English audio
in the wrong script entirely. If you already know the audio's language from
context (the user said so, or the labels came back in an unexpected script),
don't guess — pass language explicitly (e.g. "en"), or set task="translate"
to force English output regardless of the spoken language. Retry with THIS
SAME tool and the corrected language/task; there's no need to switch to a
different transcription tool to fix a bad language guess.
If labels from a previous attempt need clearing first: track_select the label track, then track_remove, before re-running this.
Args: model_size: Whisper model - "tiny", "base", "small", "medium", "large-v3" language: ISO language code (e.g. "en") or None for auto-detect task: "transcribe" (labels in the spoken language) or "translate" (labels always in English, regardless of the spoken language)
Inputs: task, language, model_size.
transcription_set_modelA
[EXPERIMENTAL] Pre-download a whisper model. ONLY call this if the user explicitly asks to download or change the model. Do NOT call this before transcribe_audio — transcription tools handle model loading automatically. Requires separate setup — see installation guide.
Runs in BACKGROUND — returns a job_id immediately. Use check_transcription_status to monitor progress.
Model sizes:
tiny: ~75MB (fastest, least accurate)
base: ~150MB (good balance for most use cases)
small: ~500MB (better accuracy, recommended)
medium: ~1.5GB (high accuracy)
large-v3: ~3GB (best accuracy, slowest)
Args: model_size: Model to load - "tiny", "base", "small", "medium", "large-v3"
Inputs: model_size.
transport_get_play_positionA
Get the current playback position in seconds.
Inputs: no named parameters.
transport_pauseB
Toggle pause during playback or recording.
Inputs: no named parameters.
transport_playB
Start playback from the current cursor position.
Inputs: no named parameters.
transport_play_regionB
Play a specific time region.
Args: start: Start time in seconds end: End time in seconds
Inputs: end (required), start (required).
transport_recordB
Start recording on a new track.
Inputs: no named parameters.
transport_set_cursorB
Set the playback cursor position.
Args: time: Position in seconds
Inputs: time (required).
transport_stopA
Stop playback or recording.
Inputs: no named parameters.
truncate_silenceA
Truncate or compress silence in the selected audio. Great for removing dead air.
Args: threshold_db: Volume below this is considered silence (dB). Default: -40 min_duration: Minimum silence duration to act on (seconds). Default: 0.5 truncate_to: Truncate silence to this duration (seconds). Default: 0.3 compress_percent: Compress silence by this percentage (only for Compress action). Default: 50 action: "Truncate" or "Compress". Default: "Truncate"
Inputs: action, truncate_to, min_duration, threshold_db, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 253 tools
Several tool pairs are nearly indistinguishable: edit_split_cut and edit_split_delete have identical descriptions ('leaves silence where audio was'), raw_paulstretch duplicates effect_paulstretch, project_export_labels overlaps label_export, and over 100 raw_* tools share the same boilerplate description with no guidance on selection. The multiple fade tools (effect_fade_in/out, effect_adjustable_fade, effect_studio_fade_out) and cursor-position tools (cursor_set_position, transport_set_cursor, raw_seek) further blur boundaries.
The curated tools mostly follow a consistent domain_action pattern (edit_, effect_, project_, track_, label_, generate_, transport_), but the ~120 raw_* tools use Audacity's internal command names with inconsistent formatting (raw_beatsand_measures vs raw_sel_cursor_stored_cursor). Standalone tools like compressor, limiter, normalize, truncate_silence, get_default_export_folder, and check_pipeline_status also break the established convention.
253 tools is an extreme count, far beyond any reasonable scope for an MCP server. Roughly half are raw_* pass-through commands for trivial UI actions (raw_cursor_left, raw_next_frame, raw_shift_up) that an agent would rarely need and that could be consolidated into a single parameterized command or removed entirely.
The surface covers the full Audacity domain: project lifecycle, track management, editing, 30+ effects, selection, labels, transport, analysis, generation, noise processing, mastering pipelines, and transcription. A few workarounds exist (label_delete_audio_at is a composite operation because Audacity lacks a native single-label delete) and transcription is experimental, but no major workflow is a dead end.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for Producer/Riffusion AI music generation
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Remote MCP server for audio stem separation, denoise, reverb, and MIDI export.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn open-source MCP server that connects your IDE or AI assistant to the Codex CLI, enabling non-interactive automation with codex exec, safe sandboxed edits with approvals, and large-scale code analysis via @ file references.1011 npmMIT
- AlicenseNot gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseBqualityFmaintenanceAn MCP server that exposes the local Grok CLI to Codex for bounded repo work, reviews, rescue analysis, adversarial checks, session listing/export, and background job management while keeping Codex hidden context out of scope.121MIT
- FlicenseNot gradedqualityDmaintenanceA local MCP server that connects Claude Code to your work environment through auditable tools for file operations, API calls, and command execution, with safety gates and configuration.-