AudacityMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_contrastA | Analyze the contrast between foreground and background audio. Select a region first. Useful for checking accessibility compliance (WCAG). |
| 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) |
| analyze_plot_spectrumA | Open the Plot Spectrum window for the selected audio. Select a region first. |
| analyze_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 |
| 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 |
| analyze_sample_data_exportB | Export raw sample data from the selected audio to a text file for analysis. Args: path: Absolute path for the output file limit: Maximum number of samples to export. Default: 100 |
| 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. |
| 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 |
| 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:
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 |
| 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 |
| 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" |
| 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 |
| limiterA | 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 |
| 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:
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):
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 |
| 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 |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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:
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. |
| 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. |
| edit_cutA | Cut the selected audio to clipboard. Select a region first. |
| edit_copyA | Copy the selected audio to clipboard. Select a region first. |
| edit_pasteA | Paste audio from clipboard at the cursor position. |
| edit_deleteA | Delete the selected audio (does not copy to clipboard). Select a region first. |
| edit_split_newA | Split the selected audio into a new track at the selection boundaries. |
| edit_splitA | Split the clip at the cursor position or selection boundaries (in place, no new track). |
| edit_split_cutA | Cut the selected audio without closing the gap (leaves silence where audio was). |
| edit_split_deleteA | Delete the selected audio without closing the gap (leaves silence where audio was). |
| edit_disjoinA | Split the selected audio at detected silences, creating separate clips. |
| edit_joinB | Join selected clips into one clip. |
| edit_trimA | Trim audio outside the selection (delete everything except selected region). |
| edit_silenceA | Replace the selected audio with silence. |
| edit_duplicateB | Duplicate the selected audio into a new track. |
| 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 |
| effect_fade_inA | Apply a fade-in to the selected audio. Select the region to fade first. |
| effect_fade_outB | Apply a fade-out to the selected audio. Select the region to fade first. |
| 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 |
| effect_echoA | 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 |
| effect_change_pitchA | Change the pitch of the selected audio without changing tempo. Args: semitones: Number of semitones to shift (negative = lower, positive = higher) |
| effect_change_tempoA | 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) |
| 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) |
| effect_equalizationB | 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 |
| 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 |
| effect_wahwahA | 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 |
| 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 |
| 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 |
| effect_repeatB | Repeat the selected audio a number of times. Args: count: Number of times to repeat (1-128). Default: 1 |
| 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" |
| effect_low_pass_filterA | 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" |
| effect_bass_and_trebleB | 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 |
| effect_reverseA | Reverse the selected audio. Select a region first. |
| effect_invertA | Invert (flip phase) the selected audio. Useful for phase cancellation. |
| 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. |
| 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 |
| 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 |
| 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 |
| 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 |
| 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. |
| effect_crossfade_clipsA | Crossfade between two adjacent clips on the same track. Select the junction point between two clips first. |
| effect_crossfade_tracksA | Crossfade between two overlapping tracks. Align the tracks so they overlap, select both, then run this effect. |
| effect_clip_fixB | Attempt to repair clipped (distorted) audio by reconstructing peaks. Args: threshold: Clipping threshold as percentage of max amplitude (0-100). Default: 95 |
| 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 |
| effect_tremoloA | 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 |
| 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 |
| generate_noiseB | 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 |
| generate_chirpA | 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 |
| 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 |
| generate_rhythm_trackA | 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" |
| label_addB | Add a label at the current cursor position or selection. Args: text: Label text. Default: empty |
| 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 |
| 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. |
| 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. |
| label_findB | 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 |
| 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 |
| 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 |
| label_importB | Import labels from a text file. Args: path: Absolute path to the labels text file |
| label_exportC | Export all labels to a text file. Args: path: Absolute path for the output labels file |
| label_regular_intervalsA | 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 |
| 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 |
| 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 |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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 |
| 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 |
| project_newB | Create a new empty Audacity project. |
| project_openA | Open an existing Audacity project file (.aup3). Args: path: Absolute path to the .aup3 project file |
| 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. |
| 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 |
| project_closeB | Close the current Audacity project. |
| 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.) |
| 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. |
| 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:
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 |
| project_export_labelsB | Export all labels to a text file. Args: path: Absolute path for the exported labels file |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xDarkzx/Audacity-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server