vst-mcp-server

thomasbunch/vst-mcp-server

3.1

If you are the rightful owner of vst-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The VST MCP Server is an open-source Model Context Protocol server designed to facilitate AI-assisted VST plugin development, offering a comprehensive suite of tools and resources for audio processing and plugin creation.

Tools
5
Resources
0
Prompts
0

🎛️ VST MCP Server

An open-source MCP (Model Context Protocol) server for AI-assisted VST plugin development. Provides DSP algorithms, audio formulas, JUCE templates, and code validation tools.

License: MIT

✨ Features

🎵 Core DSP & Audio

  • 50+ DSP Algorithms: Filters, delays, reverbs, compressors, oscillators, vintage algorithms, and advanced processing
  • Audio Math Formulas: dB conversions, MIDI/frequency, timing calculations
  • JUCE Templates: Ready-to-use effect and synth plugin templates
  • UI Components: Professional knobs, meters, waveform displays, spectrum analyzers
  • Code Validation: Check for denormals, thread safety, memory issues

🧪 Testing & Development

  • Unit Testing: Complete Catch2 test suite templates for audio processors
  • Plugin Validation: pluginval integration and CI/CD workflows
  • Performance Profiling: Real-time CPU monitoring and bottleneck detection
  • Buffer Analysis: Detect clipping, DC offset, denormals, phase issues

🎹 MIDI Processing

  • MIDI Note Handling: Polyphonic voice management with proper note on/off
  • MPE Support: Full MPE implementation for expressive controllers
  • Arpeggiator: Multi-mode arpeggiator with tempo sync and swing
  • CC Mapping: Complete MIDI CC handling and automation

🏗️ Build & Deployment

  • Modern CMake: Cross-platform build system with VST3/AU/AAX support
  • CI/CD Templates: GitHub Actions workflows for automated building and testing
  • Code Signing: macOS and Windows code signing configurations

🎨 Advanced Resources

  • Sample Library Management: Multi-format sample loading with velocity layers
  • Impulse Response: Convolution reverb with IR loading and management
  • Wavetable Synthesis: Comprehensive wavetable collection and morphing

🔐 Security & Licensing

  • License Validation: Hardware fingerprinting and online/offline activation
  • Copy Protection: Code obfuscation and anti-debugging techniques
  • Demo Modes: Trial periods, feature gating, and grace periods
  • Preset Management: Complete preset save/load with A/B comparison

All C++ code is production-ready and copy-paste ready!

🚀 Quick Start

Option 1: Use Hosted Version (Easiest)

If you've deployed this to a cloud service, configure your MCP client:

{
  "mcpServers": {
    "vst": {
      "url": "https://your-deployment-url.com/mcp"
    }
  }
}

Option 2: Run Locally with npx

npx vst-mcp-server

Option 3: Clone and Run

git clone https://github.com/YOUR_USERNAME/vst-mcp-server.git
cd vst-mcp-server
npm install
npm run build
npm start

🛠️ Available Tools

DSP & Audio Processing

ToolDescription
vst_get_algorithmGet DSP algorithm implementations
vst_calculate_coefficientsCalculate filter coefficients
vst_get_formulaGet audio math formulas
vst_calculatePerform audio calculations
vst_get_ui_componentGet UI components (knobs, meters, displays)

Testing & Debugging

ToolDescription
vst_get_testing_toolGet unit tests, validation, profiling tools
vst_list_testing_toolsList all testing tools

MIDI Processing

ToolDescription
vst_get_midi_processorGet MIDI processing (MPE, arpeggiator, etc.)
vst_list_midi_processorsList MIDI processors

Build & Templates

ToolDescription
vst_get_templateBrowse JUCE plugin templates
vst_generate_templateGenerate customized plugin code
vst_get_cmake_templateGet modern CMake build system
vst_list_build_templatesList build templates

Advanced Resources

ToolDescription
vst_get_advanced_resourceGet sample libraries, IRs, wavetables
vst_list_advanced_resourcesList advanced resources
vst_get_preset_managerGet preset management system
vst_list_preset_managersList preset managers

Security & Licensing

ToolDescription
vst_get_security_resourceGet licensing & copy protection
vst_list_security_resourcesList security tools

General

ToolDescription
vst_validate_codeCheck code for audio issues
vst_list_categoriesList available categories

📚 DSP Algorithms

Filters

  • Biquad: lowpass, highpass, bandpass, notch, peaking EQ, shelves
  • One-pole lowpass
  • State variable filter (multimode)

Dynamics

  • Compressor with soft knee
  • Lookahead limiter
  • Noise gate with hysteresis

Effects

  • Delay line with interpolation
  • Allpass delay
  • Schroeder reverb
  • Soft clipper, tube saturation, bitcrusher

Modulation

  • LFO (multiple waveforms)
  • Envelope follower
  • ADSR envelope

Oscillators

  • PolyBLEP (alias-free)
  • Wavetable with morphing

Utilities

  • Parameter smoother
  • DC blocker
  • Peak meter
  • Denormal prevention

💡 Example Usage

Get a Filter Algorithm

{
  "tool": "vst_get_algorithm",
  "arguments": {
    "name": "biquad_lowpass"
  }
}

Calculate dB to Gain

{
  "tool": "vst_calculate",
  "arguments": {
    "name": "db_to_gain",
    "parameters": { "dB": -6 }
  }
}

Generate a Plugin

{
  "tool": "vst_generate_template",
  "arguments": {
    "templateName": "basic_effect",
    "parameters": {
      "PLUGIN_NAME": "SuperGain",
      "MANUFACTURER": "MyCompany"
    }
  }
}

Validate Code

{
  "tool": "vst_validate_code",
  "arguments": {
    "code": "void process(float* buffer, int size) { ... }"
  }
}

🌐 Hosting Guide

Free Hosting Options

1. Railway (Recommended - Free Tier)

Railway offers a free tier with 500 hours/month - perfect for personal use.

# Install Railway CLI
npm install -g @railway/cli

# Login
railway login

# Initialize and deploy
railway init
railway up

railway.json:

{
  "build": {
    "builder": "NIXPACKS"
  },
  "deploy": {
    "startCommand": "npm start",
    "healthcheckPath": "/health"
  }
}

Environment Variables:

TRANSPORT=http
PORT=3000

2. Render (Free Tier)

Render offers free web services (spins down after inactivity).

  1. Connect your GitHub repo at render.com
  2. Create a new Web Service
  3. Configure:
    • Build Command: npm install && npm run build
    • Start Command: npm start
    • Environment Variables: TRANSPORT=http

3. Fly.io (Free Tier)

Fly.io offers free allowance for small apps.

# Install flyctl
curl -L https://fly.io/install.sh | sh

# Login and launch
fly auth login
fly launch
fly deploy

fly.toml:

app = "vst-mcp-server"
primary_region = "iad"

[build]
  builder = "heroku/buildpacks:20"

[env]
  TRANSPORT = "http"
  PORT = "8080"

[http_service]
  internal_port = 8080
  force_https = true

[[services]]
  internal_port = 8080
  protocol = "tcp"

  [[services.ports]]
    port = 80
    handlers = ["http"]

  [[services.ports]]
    port = 443
    handlers = ["tls", "http"]

4. Vercel (Serverless - Limited)

Note: Vercel's serverless functions have timeout limits. For full functionality, use Railway, Render, or Fly.io.

5. Self-Hosted (Docker)

docker build -t vst-mcp-server .
docker run -p 3000:3000 -e TRANSPORT=http vst-mcp-server

🔧 Client Configuration

Claude Desktop / Claude Code

Add to your MCP settings (~/.config/claude/settings.json or similar):

{
  "mcpServers": {
    "vst": {
      "url": "https://your-deployment-url.com/mcp"
    }
  }
}

Cursor

In Cursor settings, add MCP server:

{
  "mcp.servers": {
    "vst": {
      "url": "https://your-deployment-url.com/mcp"
    }
  }
}

Local Development (stdio)

For local use with stdio transport:

{
  "mcpServers": {
    "vst": {
      "command": "node",
      "args": ["/path/to/vst-mcp-server/dist/index.js"]
    }
  }
}

🤝 Contributing

Contributions are welcome! Here's how to add new content:

Adding DSP Algorithms

Edit src/resources/dsp-algorithms/algorithms.ts:

{
  name: 'my_algorithm',
  category: 'filter',
  description: 'Description of the algorithm',
  parameters: [
    { name: 'param1', type: 'float', description: '...', defaultValue: 0 }
  ],
  code: `class MyAlgorithm { ... }`,
  usage: `MyAlgorithm alg; alg.process(sample);`,
  references: ['Source 1', 'Source 2']
}

Adding Formulas

Edit src/resources/formulas/formulas.ts:

{
  name: 'my_formula',
  category: 'conversion',
  description: 'What it does',
  formula: 'output = input * 2',
  code: `inline float myFormula(float x) { return x * 2; }`,
  parameters: [{ name: 'input', description: '...' }],
  examples: [{ input: { x: 1 }, output: 2, description: 'Example' }]
}

Adding Templates

Edit src/resources/templates/templates.ts:

{
  name: 'my_template',
  category: 'effect',
  description: 'Template description',
  parameters: [
    { name: 'PLUGIN_NAME', description: '...', placeholder: '{{PLUGIN_NAME}}', defaultValue: 'MyPlugin' }
  ],
  files: [
    { path: 'MyFile.h', content: '// {{PLUGIN_NAME}} header' }
  ]
}

📖 References

All algorithms and implementations are derived from authoritative academic and industry sources. See for complete citations.

Primary Sources

ResourceDescriptionURL
JUCE FrameworkOfficial C++ audio plugin frameworkhttps://juce.com
Audio EQ CookbookBiquad filter coefficients (R. Bristow-Johnson)https://www.w3.org/TR/audio-eq-cookbook/
CCRMA StanfordJ.O. Smith DSP books & resourceshttps://ccrma.stanford.edu/~jos/
DAFX BookDigital Audio Effects (U. Zölzer, ed.)https://www.dafx.de
Cytomic PapersState Variable Filter (A. Simper)https://cytomic.com/technical-papers/

Academic Papers

  • Välimäki, V. et al. "Alias-Suppressed Oscillators Based on Differentiated Polynomial Waveforms" - IEEE Trans. Audio, Speech, Lang. Process. Vol. 18, No. 4, 2010
  • Schroeder, M.R. "Natural Sounding Artificial Reverberation" - AES Convention Paper 203, 1961
  • Giannoulis, D. et al. "Digital Dynamic Range Compressor Design" - J. Audio Eng. Soc., 2012

Books

  • Pirkle, W.C. Designing Audio Effect Plugins in C++ (2nd ed.) - Routledge, 2019
  • Zölzer, U. (ed.) DAFX: Digital Audio Effects (2nd ed.) - Wiley, 2011
  • Smith, J.O. Physical Audio Signal Processing - Online: ccrma.stanford.edu/~jos/pasp/

Tools

📄 License

MIT License - See for details.


Made with ❤️ for the audio development community