apc-mcp
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., "@apc-mcpbuild my plugin project"
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.
apc-mcp is a Model Context Protocol server for audio plugin development. It wraps the tools you already use — CMake, ctest, clang-format, pluginval, clap-validator — into a clean MCP tool interface for building, testing, linting, validating, and scaffolding plugin projects across JUCE, CLAP, VST3, and ARA formats.
Works with any MCP client: Claude Code, OpenCode, VS Code with MCP, Continue.dev, and more.
Quick Start
Add one entry to your MCP config — no npm, no clone, no setup:
{
"mcp": {
"apc-mcp": {
"type": "local",
"command": ["npx", "-y", "github:sgm-audio/apc-mcp"],
"enabled": true
}
}
}That's it. npx handles fetching and caching. Updates automatically when you restart your client.
Requirements
Node.js 18+
CMake 3.22+ — required for build/configure tools
clang-format — required for lint tool
pluginval — required for VST3 validation
clap-validator — required for CLAP validation
A JUCE/CLAP/VST3 audio plugin project with a
plugins/directory
Related MCP server: REAPER MCP Server
Tools
Tool | Description |
CMake configure + build with parsed error/warning counts | |
CMake configure with custom generator and flags | |
ctest runner with pass/fail/total summary | |
clang-format check (dry-run) or auto-fix on C++ sources | |
Discover plugins with metadata — text or JSON output | |
Run pluginval (VST3) or clap-validator on built binaries | |
Scaffold a new CLAP or JUCE plugin from production templates |
Build
audio_plugin_build()
audio_plugin_build(config="Release", clean=true)
audio_plugin_build(projectPath="/path/to/project", target="MyPlugin_Standalone")Returns structured output with error count, warning count, and the first 20 of each.
Configure
audio_plugin_configure(generator="Ninja")
audio_plugin_configure(options="-DAPC_ENABLE_VISAGE=ON")Test
audio_plugin_test()
audio_plugin_test(config="Release", testName="MyPluginTest")Returns pass/failed/total summary.
Lint
audio_plugin_lint()
audio_plugin_lint(fix=true)
audio_plugin_lint(target="plugins/Foo/Source")Dry-run by default. Pass fix=true to format in place.
List plugins
audio_plugin_plugins(format="json")Omitting format returns human-readable text. Use format="json" for programmatic consumption.
Validate
audio_plugin_validate()
audio_plugin_validate(format="VST3")
audio_plugin_validate(format="CLAP")Scans the build directory for plugin binaries and runs the appropriate validator on each.
Scaffold
audio_plugin_create(name="Phaser9000", type="clap")
audio_plugin_create(name="MyVerb", type="juce", vendor="MyCompany", formats="VST3;AU")
audio_plugin_create(name="SimpleDelay", type="clap", vendor="MyCompany", description="A simple delay effect")Generates a working plugin stub with CMakeLists.txt, source files, and proper CLAP entry point or JUCE AudioProcessor structure.
Configuration
Per-project config
Drop an apc-mcp.json in your project root. When this file is present, projectPath is optional — the server detects your project from the working directory.
{
"generator": "Ninja",
"config": "Release",
"buildDir": "build",
"pluginsDir": "plugins",
"validateFormats": ["VST3", "CLAP"],
"validateCommand": "pluginval",
"clapValidatorCommand": "clap-validator"
}Expected layout
my-plugin/
├── apc-mcp.json # Per-project config (optional)
├── CMakeLists.txt # Root CMake project
├── plugins/
│ ├── MyPlugin/
│ │ ├── CMakeLists.txt # Per-plugin CMake target
│ │ ├── Source/
│ │ └── status.json # Optional metadata (type, version, etc.)
│ └── ...
├── common/ # Shared sources (optional)
└── build/ # Build directory (auto-created)Development
git clone https://github.com/sgm-audio/apc-mcp.git
cd apc-mcp
npm install
npm test # 11 tests, node:test, zero deps
npm run lint # syntax check on the server code itselfProject structure
apc-mcp/
├── index.js # MCP server — single file, 7 tools
├── templates/
│ ├── clap/ # CLAP plugin scaffold template
│ └── juce/ # JUCE plugin scaffold template
├── tests/
│ └── server.test.js # 11 integration tests
├── .github/
│ ├── workflows/
│ │ ├── publish.yml # CI: test on push/PR, publish on tag
│ │ └── codeql.yml # CodeQL security analysis
│ ├── dependabot.yml # Automated dependency updates
│ └── ISSUE_TEMPLATE/ # Bug report + feature request templates
├── .editorconfig # Editor consistency
├── CHANGELOG.md
├── CONTRIBUTING.md
└── LICENSEVersioning
This project follows Semantic Versioning. Breaking changes to any tool's input schema or output format increment the major version.
FAQ / Troubleshooting
Q: I get "command not found: cmake"
A: apc-mcp uses your system's existing toolchain. Install CMake via your package manager: brew install cmake, apt install cmake, or download from cmake.org.
Q: Does it work with VS Code / Cursor / Continue.dev?
A: Yes — any MCP client works. Point it at npx github:sgm-audio/apc-mcp using whatever MCP config format that client uses.
Q: How do I update to a new version?
A: If using npx github:..., clear the npx cache: npx --cache clear github:sgm-audio/apc-mcp — or just restart your MCP client, npx checks for updates automatically.
Q: Can I use this with non-JUCE projects?
A: Yes. audio_plugin_build, audio_plugin_configure, audio_plugin_test, and audio_plugin_lint work with any CMake-based C++ project. Only audio_plugin_create and audio_plugin_validate are plugin-format-specific.
License
MIT © 2026 Scott Mills. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA high-performance desktop application that implements the Model Context Protocol (MCP), providing both server and client capabilities for tool discovery, usage, and management through a modern PyQt6 interface.MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that exposes REAPER digital audio workstation functionality through a clean API interface, enabling programmatic control of 169+ REAPER operations across track management, MIDI editing, effects, automation and more.79MIT
- FlicenseNot gradedqualityCmaintenanceA Gradio-based MCP server for comprehensive CMake project management that enables configuring, building, and testing CMake projects with preset support, error analysis, and LLM-friendly output formatting. Provides both web UI and MCP protocol access for streamlined C++ development workflows.1-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server built with the mcp-framework for developing and managing custom tools. It provides a structured foundation for building and integrating modular components like data processors and API clients into Claude Desktop.5 npm-