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 Command
Command
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://classes
juce://class/ValueTree
/search-juce-classes Audio
/get-juce-class-docs AudioProcessor
In 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-classes
Debugging 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