JUCE Documentation
STDIOMCP server providing access to JUCE Framework C++ class documentation
MCP server providing access to JUCE Framework C++ class documentation
An MCP (Model Context Protocol) server that provides access to JUCE Framework C++ class documentation.
# Clone the repository git clone https://github.com/josmithiii/mcp-servers-jos.git cd mcp-servers-jos/juce-docs-mcp-server # Install dependencies npm install # Build the project npm run build
npm start
This starts the MCP server using stdio as the transport mechanism, which allows it to be used with MCP clients like Claude Desktop App, Continue, or other MCP-compatible applications.
Name to JUCE Docs (or whatever), and set the Type to CommandCommand to node /path/to/juce-docs-mcp-server/dist/index.js,
replacing /path/to/juce-docs-mcp-server with the actual path into your clonenode .../dist/index.js)Note that Cursor sends MCP requests to your local server that you started with npm start above.
juce://class/{className} - Get documentation for a specific JUCE classjuce://classes - List all available JUCE classes/search-juce-classes - Search for JUCE classes by name/get-juce-class-docs - Get documentation for a specific JUCE classexplore-juce - Interactive exploration of JUCE framework components
explore-juce audio)In addition to prompts that direct your LLM (such as in Cursor) to use the MCP internally, you can also query it directly via "resource" and "tool" names:
Resources look like URLs that directly fetch specific content. They
follow a URI-like pattern with the format protocol://path. These
are defined in the server as direct resource endpoints.  Example:
juce://classes
Tools use names beginning with / and support a following
argument, i.e., /tool-name arg-string, and provide interactive
commands that perform an action. MCP tools start with / to
distinguish them from resources. This is similar to how slash
commands work in many applications such as Claude Code or
aider.  Note that in an IDE chat, the arg-string can include
spaces and is terminated by end-of-line (according to Claude 3.7).
In summary, when connected to an MCP client (such as via Cursor chat),
you can access "resources" in the format protocol://path and "tools"
in the format /tool-name arg string.
juce://classesjuce://class/ValueTree/search-juce-classes Audio/get-juce-class-docs AudioProcessorIn juce-docs-mcp-server/src/juce-docs.ts, edit the line
const BASE_URL = 'https://ccrma.stanford.edu/~jos/juce_modules';
More up-to-date possibilities include
const BASE_URL = 'https://docs.juce.com/develop';
const BASE_URL = 'https://docs.juce.com/master';
When working on a JUCE project, here's how to get the most out of the JUCE Documentation MCP Server:
Exploring Components
/search-juce-classes followed by a general category (Audio, GUI, etc.)explore-juce audio (or other domain) to get an overview of related classesImplementation Help
juce://class/ClassName to get detailed documentationMethod Reference
Keep Cursor Open Alongside Your IDE
Use During Planning Phases
/search-juce-classesDebugging Assistance
Audio Processing
AudioProcessor for plugin developmentAudioSource for playback applicationsdsp:: namespace classes for efficient signal processingGUI Development
Component classAudioAppComponent to combine audio and GUI functionalityLookAndFeel for stylingPlugin Development
AudioProcessor and AudioProcessorEditor for the core plugin architectureAudioProcessorValueTreeState for parameter managementThe server fetches documentation from the JUCE documentation hosted at Stanford CCRMA (https://ccrma.stanford.edu/~jos/juce_modules/), but of course you can change that, as noted above. It processes the HTML documentation in real-time:
Common issues and solutions:
# Run in development mode with auto-recompilation npm run dev
MIT