npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

audiopluginmcp

v1.0.0

Published

MCP server for audio plugin development — load VST3/AU/CLAP plugins, process audio, render MIDI, analyze spectral content, and compile JUCE projects.

Downloads

33

Readme

Audio Plugin MCP Server

A local MCP server that gives Claude the ability to interact with VST3/AU audio plugins programmatically. Load plugins, inspect parameters, process audio, render MIDI through instruments, analyze spectral content, compare outputs, generate presets, and compile JUCE projects — all from within a Claude conversation.

Installation

Prerequisites

You need Python 3.10 or later and pip installed on your system. On Windows, ensure you're using native Windows Python (not WSL — VST3 plugins cannot load under WSL).

Step 1: Clone or download this directory

Place the mcp-audio-plugin-server folder wherever you keep your MCP servers.

Step 2: Install dependencies

cd mcp-audio-plugin-server
pip install -r requirements.txt

If you also want DawDreamer for advanced MIDI rendering (optional):

pip install dawdreamer>=0.8.3

Step 3: Configure plugin paths

Edit config.yaml to match your system. The defaults work for a standard Windows 11 installation with VST3 plugins in the standard directory (C:\Program Files\Common Files\VST3).

Step 4: Add to Claude Desktop

Add this block to your claude_desktop_config.json (typically at %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "audio-plugin-server": {
      "command": "python",
      "args": ["C:/path/to/mcp-audio-plugin-server/server.py"],
      "env": {}
    }
  }
}

Replace the path with the actual location of server.py on your machine.

Step 5: Restart Claude Desktop

The server will start automatically when Claude Desktop launches. Verify by asking Claude to run the health_check tool.

Available Tools (29)

Plugin Interaction (5 tools)

| Tool | Purpose | |------|---------| | health_check | Verify server status, dependencies, and configuration | | scan_plugins | Find VST3/AU/CLAP plugins in configured directories | | load_plugin | Load a plugin from a file path, inspect its type and parameters | | list_plugin_parameters | Get full parameter list with values, ranges, and metadata | | set_plugin_parameters | Set one or more parameters on a loaded plugin |

Audio Processing (4 tools)

| Tool | Purpose | |------|---------| | render_audio | Process audio through an effect plugin (file input or generated test signals) | | render_midi_through_plugin | Render MIDI notes/chords/scales through an instrument plugin | | create_chain | Build a multi-plugin serial chain and render audio through it in one call | | batch_render | Render with multiple parameter sets for A/B testing and dataset generation |

Audio File Operations (3 tools)

| Tool | Purpose | |------|---------| | convert_audio | Convert between formats, sample rates, bit depths, and mono/stereo | | trim_audio | Cut, fade in/out, normalize, or split audio at silence boundaries | | concatenate_audio | Join files end-to-end (with optional crossfade) or layer/mix them together |

Analysis & Measurement (6 tools)

| Tool | Purpose | |------|---------| | analyze_audio | Spectral analysis, loudness (LUFS), dynamics, pitch, rhythm, features | | compare_audio | Compare two audio files (spectral similarity, loudness diff, correlation) | | extract_impulse_response | Send impulse through a plugin, capture IR, estimate RT60 | | measure_thd | Total Harmonic Distortion with per-harmonic breakdown | | detect_aliasing | Check for spectral folding artifacts with severity rating | | measure_frequency_response | Sine sweep to measure magnitude response across the spectrum |

Preset & State Management (5 tools)

| Tool | Purpose | |------|---------| | generate_preset | Iteratively optimize parameters toward a described target sound | | save_plugin_state | Export all parameter values to a JSON file | | load_plugin_state | Restore parameter values from a saved state file | | export_preset_bank | Save multiple named presets as a bank file | | interpolate_presets | Morph between two parameter sets by a blend factor | | randomize_parameters | Generate random but musically sensible parameter values |

MIDI Utilities (2 tools)

| Tool | Purpose | |------|---------| | generate_midi_file | Create MIDI files from note descriptions (name, velocity, beat timing) | | analyze_midi | Parse MIDI files — note count, range, velocity stats, channels, duration |

Monitoring & Testing (3 tools)

| Tool | Purpose | |------|---------| | monitor_cpu_usage | Benchmark plugin CPU at various buffer sizes with real-time ratio | | stress_test_plugin | 11-point edge case battery (silence, max level, DC, denormals, extreme params) | | compile_juce_project | Compile a JUCE plugin project from source via CMake |

Plugin Info (1 tool)

| Tool | Purpose | |------|---------| | get_plugin_latency | Report latency in samples and milliseconds |

Example Workflows

Load a plugin and explore its parameters

"Scan my VST3 folder, then load FabFilter Pro-Q 3 and list all its parameters."

Process audio through a chain of effects

"Load my compressor and EQ plugins, create a chain with the compressor first then EQ, and process my drum loop through it."

Measure plugin quality

"Load my distortion plugin, measure the THD at 1kHz, check for aliasing, and plot the frequency response."

Generate and compare presets

"Save the current state of my reverb, randomize the parameters, render my vocal through both, and compare the outputs."

Stress test before release

"Load my new plugin, run the stress test, then benchmark CPU usage at 64, 128, and 256 sample buffer sizes."

Create a MIDI file and render through a synth

"Generate a MIDI file with a C minor chord progression (Cm, Fm, Gm, Cm) at 90 BPM, then render it through my loaded synth plugin."

Built With

Python, FastMCP, Pedalboard (Spotify), librosa, pyloudnorm, mido, scipy. Runs locally on your machine — your plugins, your audio, your hardware.