JUCE文档MCP服务器
一个MCP(模型上下文协议)服务器,提供对JUCE Framework C++类文档的访问。
特性
- 获取特定JUCE类的文档
- 列出所有可用的JUCE课程
- 按名称搜索类
- 将文档格式化为markdown
- 通过MCP资源和工具公开文档
安装
# 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这将使用以下命令启动MCP服务器 stdio 作为传输机制,它允许它与Claude Desktop App、Continue或其他MCP兼容应用程序等MCP客户端一起使用。
将MCP服务添加到Cursor(2025-03-11测试)
- 打开光标/设置/光标设置
- 选择MCP
- 设置
Name转到JUCE Docs(或任何文件),并设置Type到Command - 设置
Command到node /path/to/juce-docs-mcp-server/dist/index.js,
替换 /path/to/juce-docs-mcp-server 带有进入克隆的实际路径
- 重新启动Cursor以应用更改(它将在内部运行
node .../dist/index.js)
请注意,Cursor将MCP请求发送到 _您的本地服务器_ 你开始 npm start 上面。
将MCP服务添加到Visual Studio中(2026-01-13测试)
带有GitHub Copilot扩展的Visual Studio 2022/2026通过内置配置支持MCP。
- 访问设置:在Copilot聊天窗口中,单击 扳手 图标,然后单击 “+”(添加源) 管理MCP服务器。
- 配置:Visual Studio使用特定的JSON结构。当系统提示编辑时
.mcp.json,使用以下模板(确保正斜杠/用于路径):
{
"inputs": [],
"servers": {
"juce-expert": {
"type": "stdio",
"command": "node",
"args": [
"C:/path/to/juce-docs-mcp-server/dist/index.js"
],
"env": {
"NODE_PATH": "C:/path/to/juce-docs-mcp-server/node_modules"
}
}
}
}
- 关于“描述”的重要说明:
与一些其他MCP客户端不同, Visual Studio要求非空 description 每个工具的字段。如果缺少工具的描述,Visual Studio将无法使用 System.ArgumentException.确保您的 index.ts 定义包括描述字符串。
- 故障排除:如果工具未出现,请尝试重新加载Copilot Chat窗口或清除解决方案中的Copilot缓存文件夹
.vs目录。
可用资源
juce://class/{className}-获取特定JUCE类的文档juce://classes-列出所有可用的JUCE课程
可用工具
/search-juce-classes-按名称搜索JUCE类/get-juce-class-docs-获取特定JUCE类的文档
可用提示
explore-juce-JUCE框架组件的交互式探索
- 使用无参数概述主要组件 - 添加主题以探索特定功能(例如。, explore-juce audio)
资源和工具
除了指示LLM(如Cursor)使用的提示外 在MCP内部,您也可以通过“资源”直接查询它 “工具”名称:
- 资源 看起来像是直接获取特定内容的URL。他们
遵循类似URI的模式和格式 protocol://path这些 在服务器中定义为直接资源端点。例子: juce://classes
- 工具 使用以开头的名称
/并支持以下内容
论证。, /tool-name arg-string,并提供互动 执行动作的命令。MCP工具从开始 / 到 将它们与资源区分开来。这类似于斜线 命令在许多应用程序中都有效,例如 Claude Code 或 aider请注意,在IDE聊天中 arg-string 包括 空格,并以行尾结束(根据克劳德3.7)。
总之,当连接到MCP客户端时(例如通过光标聊天), 您可以按以下格式访问“资源” protocol://path 以及“工具” 在格式中 /tool-name arg string.
例子
- 列出所有可用的课程:
juce://classes - 获取特定类的文档:
juce://class/ValueTree - 搜索所有音频类:
/search-juce-classes Audio - 获取特定类的文档:
/get-juce-class-docs AudioProcessor
更改JUCE文档URL
在 juce-docs-mcp-server/src/juce-docs.ts,编辑该行
const BASE_URL = 'https://ccrma.stanford.edu/~jos/juce_modules';更多最新的可能性包括
const BASE_URL = 'https://docs.juce.com/develop';
const BASE_URL = 'https://docs.juce.com/master';JUCE有效发展的技巧
在处理JUCE项目时,以下是如何充分利用JUCE文档MCP服务器的方法:
快速参考工作流
- 探索组件
- 从开始 /search-juce-classes 然后是一般类别(音频、GUI等) - 使用 explore-juce audio (或其他领域)以获取相关类的概述
- 实施帮助
- 在实现特定功能时,请使用 juce://class/ClassName 获取详细文档 - 在类文档中查找代码示例
- 方法参考
- 类文档包括所有带有签名和描述的方法 - 当您需要了解参数类型或返回值时,请使用此选项
与您的开发流程整合
- 在IDE旁边保持光标打开
- 在单独的窗口中运行带有MCP服务器的Cursor - 这使您无需离开代码编辑器即可立即访问文档
- 规划阶段的使用
- 在实现功能之前,请使用以下工具探索可用的类 /search-juce-classes - 这有助于您在编写代码之前理解JUCE方法
- 调试协助
- 遇到意外行为时,请查看类文档 - 查找有关边缘案例或实现细节的注释
JUCE开发的具体技巧
- 音频处理
- 从开始 AudioProcessor 用于插件开发 - 使用 AudioSource 用于播放应用程序 - 检查 dsp:: 用于高效信号处理的命名空间类
- GUI开发
- 所有自定义组件都基于 Component 类 - 使用 AudioAppComponent 结合音频和GUI功能 - 看 LookAndFeel 用于造型
- 插件开发
- 参考 AudioProcessor 和 AudioProcessorEditor 对于核心插件架构 - 检查 AudioProcessorValueTreeState 用于参数管理
实现细节
服务器从斯坦福大学CCRMA托管的JUCE文档中获取文档 (https://ccrma.stanford.edu/~jos/juce_modules/),但当然可以更改,如上所述。 它实时处理HTML文档:
- 从带注释的类列表页面获取类列表
- 从特定于类的页面解析单个类文档
- 文档的格式为markdown,以实现一致的显示
- 结果在服务器运行时缓存在内存中
错误处理
常见问题和解决方案:
- 未找到类:如果类名无效或找不到,服务器将返回一条明确的错误消息
- 连接问题:如果无法访问JUCE文档网站,请检查您的互联网连接
- 服务器启动失败:确保安装了正确的Node.js版本,并成功完成了构建步骤
- 光标集成:如果服务器在Cursor中不工作,请验证MCP设置中的命令路径是否正确
发展
# Run in development mode with auto-recompilation
npm run dev许可证
麻省理工学院
