apc-mcp
Click on "Install 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:scottmills306/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/scottmills306/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:scottmills306/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:scottmills306/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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/scottmills306/apc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server