npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ray0404/juce-audio-mcp

v1.1.0

Published

MCP server providing instant access to JUCE framework documentation with online fetching capabilities

Readme

JUCE Audio MCP Server

An MCP (Model Context Protocol) server that provides instant access to JUCE framework documentation with online fetching capabilities.

Overview

This project implements an MCP server that serves as a queryable reference for the JUCE framework, enabling AI assistants and developers to search and navigate JUCE documentation efficiently. The server provides:

  • Tool-based queries for classes, modules, tutorials, and documentation search
  • Resource URIs for direct documentation access
  • Prompt templates for common JUCE development patterns
  • Online/offline fallback for robust documentation access
  • Request caching for improved performance

Features

  • 🔍 Search JUCE classes by name or partial match
  • 📚 Get detailed documentation for specific JUCE classes including methods
  • 🧩 Retrieve information about JUCE modules and their classes
  • 📖 Search across all JUCE documentation (classes, modules, tutorials)
  • 💡 Get topic-specific help for areas like audio, DSP, GUI, etc.
  • 🌐 Automatic fallback to online documentation when local index is incomplete
  • ⚡ Caching mechanism for improved performance on repeated queries
  • 📋 Pre-built prompt templates for common JUCE development tasks

Installation

Prerequisites

  • Node.js >= 18.0.0
  • npm or yarn package manager

Install from npm

npm install -g @ray0404/juce-audio-mcp

Install from source

git clone https://github.com/ray0404/juce-audio-mcp.git
cd juce-audio-mcp
npm install
npm run build

Usage

As a Command Line Tool

After installation, you can start the MCP server:

juce-audio-mcp

The server will start and wait for MCP connections on stdio.

Development Mode

For development and testing:

npm run dev

Building

To build the TypeScript source:

npm run build

Testing

Run the test suite:

npm test

Linting

Check code quality with ESLint:

npm run lint

MCP Server Capabilities

Once connected, the server provides the following capabilities through the MCP protocol:

Tools

search_classes

Search for JUCE classes by name.

Parameters:

  • query (string, required): Search query to find JUCE classes
  • limit (number, optional, default: 20): Maximum number of results to return
  • module (string, optional): Filter by module name (e.g., "juce_audio_basics")

Example:

{
  "query": "AudioProcessor",
  "limit": 10
}

get_class

Get detailed documentation for a specific JUCE class.

Parameters:

  • className (string, required): Name of the JUCE class to retrieve
  • includeMethods (boolean, optional, default: true): Include class methods

Example:

{
  "className": "AudioProcessor",
  "includeMethods": true
}

search_docs

Search across all JUCE documentation.

Parameters:

  • query (string, required): Search query for JUCE documentation
  • type (string, optional, default: "all"): Type of documentation to search ('all', 'classes', 'modules', 'tutorials')
  • limit (number, optional, default: 10): Maximum results per type

Example:

{
  "query": "filter",
  "type": "classes",
  "limit": 5
}

get_module

Get information about a specific JUCE module.

Parameters:

  • moduleName (string, required): Name of the JUCE module (with or without juce_ prefix)
  • includeClasses (boolean, optional, default: true): Include classes in this module

Example:

{
  "moduleName": "juce_dsp",
  "includeClasses": true
}

get_topic_help

Get help and overview for a specific JUCE topic.

Parameters:

  • topic (string, required): Topic to get help on (e.g., "audio", "dsp", "gui")
  • includeExamples (boolean, optional, default: false): Include example references

Example:

{
  "topic": "dsp",
  "includeExamples": true
}

Resources

The server provides resource URIs for direct access to documentation:

  • juce://class/{className} - Access specific class documentation
  • juce://module/{moduleName} - Access specific module documentation

Prompts

Pre-built prompt templates for common JUCE development patterns:

  • get_audio_processor_class - Get documentation for an AudioProcessor class
  • find_dsp_class - Find a DSP class for a specific purpose
  • create_plugin - Get started creating an audio plugin with JUCE
  • component_guide - Get help creating a GUI component

Architecture

Local Documentation Index

The server maintains a local index of JUCE classes and modules for fast offline access. This index is generated from the JUCE documentation and includes:

  • Class names, full names, and inheritance information
  • Module associations
  • Brief descriptions
  • Documentation URLs

Online Fallback

When information is not found in the local index, the server automatically falls back to fetching documentation from the official JUCE documentation website.

Caching

Frequently accessed documentation is cached to improve performance and reduce external requests.

Configuration

The server uses the following constants (found in src/constants.js):

  • JUCE_DOCS_BASE: Base URL for JUCE documentation (default: https://docs.juce.com/master/)
  • JUCE_TUTORIALS_BASE: Base URL for JUCE tutorials
  • JUCE_FORUM_BASE: Base URL for JUCE forum
  • SERVER_NAME: Name of the MCP server
  • SERVER_VERSION: Version of the MCP server

Project Structure

juce-audio-mcp/
├── src/                    # TypeScript source files
│   ├── index.ts           # MCP server implementation
│   ├── tools.ts           # Tool implementations
│   ├── fetcher.js         # Documentation fetching logic
│   ├── schemas.js         # Zod schemas for tool parameters
│   └── constants.js       # Configuration constants
├── tests/                 # Test files
├── site/                  # Generated documentation site
├── package.json           # Project metadata and dependencies
├── tsconfig.json          # TypeScript configuration
└── README.md              # This file

Dependencies

Production Dependencies

  • @modelcontextprotocol/sdk: MCP SDK for server implementation
  • axios: HTTP client for fetching online documentation
  • cheerio: HTML parser for extracting documentation content
  • zod: Schema validation for tool parameters

Development Dependencies

  • @types/node: TypeScript definitions for Node.js
  • typescript: TypeScript compiler
  • tsx: TypeScript execution for development
  • vitest: Testing framework
  • eslint: Linting tool
  • @typescript-eslint/eslint-plugin: TypeScript ESLint plugin
  • @typescript-eslint/parser: TypeScript ESLint parser

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • The JUCE framework team for their excellent audio application framework
  • The Model Context Protocol team for enabling standardized AI-tool interactions
  • All contributors to the open-source projects used in this implementation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing-feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and follow the existing code style.

Contact

Ray0404 - GitHub Profile

Project Link: https://github.com/ray0404/juce-audio-mcp