使用说明
MCP(模型上下文协议)服务器
该存储库包含MCP服务器,为AI代理提供对MelechDSP代码库、JUCE文档和DSP算法的结构化访问。这些服务器使AI编码助手能够检索准确、上下文感知的信息,而无需依赖网络搜索。
概述
MCP文件夹实现了 三一协议 人工智能辅助开发:
- 建筑检查 -在MelechDSP monorepo中查找文件
- API验证 -验证JUCE类签名和继承
- 组件重用 -搜索现有的DSP算法和实现
服务器架构
1. melech_internal_server/ -项目结构定位器
目的:映射MelechDSP monorepo结构,以帮助AI代理找到特定文件。
工具:
find_project_file(project, role)-按项目名称和角色查找文件(例如“AnalyzerPro”、“Editor”)
数据源:
- 扫描
AnalyzerPro和melechdsp-hq仓库 - 生成
project_structure.json通过ingest_projects.py
用法示例:
find_project_file("AnalyzerPro", "Editor") # Returns UI editor file paths
文件:
server.py-FastMCP服务器实施ingest_projects.py-扫描项目并生成索引project_structure.json-生成的索引文件schema.json-工具模式定义
2. juce_api_server/ -JUCE API文件
目的:提供对JUCE框架类定义、继承层次结构和方法签名的本地访问。
工具:
search_juce_docs(class_name)-按名称搜索JUCE类
数据源:
- 扫描
~/JUCE/modules目录 - 提取类定义、继承和API签名
- 生成
juce_docs.json通过ingest_juce.py
用法示例:
search_juce_docs("AudioProcessor") # Returns class definition and inheritance
文件:
server.py-FastMCP服务器实施ingest_juce.py-扫描JUCE模块并生成索引juce_docs.json-生成的索引文件(不在仓库中,在本地生成)schema.json-工具模式定义
备注:通过提供准确的JUCE 8 API信息,防止人工智能代理对不推荐使用的JUCE 5方法产生幻觉。
3. dsp_algorithms_server/ -DSP算法库
目的:从索引和搜索本地C++DSP实现 melechdsp-hq 共享图书馆。
工具:
get_dsp_algorithm(query)-按名称或功能搜索DSP算法
数据源:
- 扫描
melechdsp-hq/shared/mdsp_dsp/为了.h,.cpp,.hpp文件 - 检测处理域(频域、时域、控制速率)
- 识别SIMD优化
- 生成
dsp_index.json通过ingest.py
用法示例:
get_dsp_algorithm("filter") # Returns matching filter implementations
get_dsp_algorithm("FFT") # Returns frequency domain algorithms
文件:
server.py-FastMCP服务器实施ingest.py-扫描DSP代码库并生成索引dsp_index.json-生成的索引文件schema.json-工具模式定义
特性:
- 检测SIMD优化(
__m128,vDSP) - 按处理域分类
- 返回上下文的代码片段
4. juce-rag-server/ -基于云的JUCE RAG
目的:使用ChromaDB云和HuggingFace嵌入对JUCE文档进行语义搜索。
建筑:
- FastAPI服务器(
server.py)查询ChromaDB云 - 用途
Qwen/Qwen3-Embedding-0.6B嵌入模型 - MCP电桥(
mcp_juce_bridge.py)连接到FastAPI服务器
工具:
search_juce_docs(query)-JUCE文档的语义搜索
配置:
- 需要
.env具有ChromaDB凭据的文件:CHROMA_HOSTCHROMA_API_KEYCHROMA_TENANTCHROMA_DATABASE
文件:
server.py-集成ChromaDB的FastAPI服务器mcp_juce_bridge.py-MCP服务器桥接到FastAPIrag_client.py-RAG客户端实用程序agent.py-代理集成代码stress_test.py-负载测试工具.env-环境变量(不在仓库中)
用法:
- 启动FastAPI服务器:
python server.py(在端口8000上运行) - 使用
mcp_juce_bridge.py作为MCP服务器入口点
配置
Claude桌面配置
这 claude_desktop_config.json 文件为Claude Desktop配置MCP服务器:
{
"mcpServers": {
"melech_dsp": {
"command": "python3",
"args": ["/path/to/dsp_algorithms_server/server.py"]
},
"juce_docs": {
"command": "python3",
"args": ["/path/to/juce_api_server/server.py"]
}
}
}
位置:通常放置在 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上。
光标集成
配置时,Cursor会自动发现MCP服务器。这 .cursorrules 此存储库中的文件为AI代理提供了指导:
- 在进行网络搜索之前,始终检查本地MCP工具
- 使用
melech_dsp用于滤波器、均衡器、算法 - 使用
juce_docs用于音频处理器、组件、JUCE API
设置和使用
先决条件
pip install mcp fastmcp # For MCP servers
pip install fastapi uvicorn chromadb langchain-huggingface # For RAG server
生成索引
在使用服务器之前,请生成索引文件:
# Generate DSP algorithm index
cd dsp_algorithms_server
python ingest.py
# Generate JUCE API index
cd ../juce_api_server
python ingest_juce.py
# Generate project structure index
cd ../melech_internal_server
python ingest_projects.py
正在运行的服务器
独立MCP服务器 (stdio模式):
python dsp_algorithms_server/server.py
python juce_api_server/server.py
python melech_internal_server/server.py
RAG服务器 (HTTP模式):
cd juce-rag-server
python server.py # Runs on http://localhost:8000
# Then use mcp_juce_bridge.py as the MCP entry point
开发流程
三一协议
在实现功能时,AI代理应遵循以下顺序:
-
建筑检查 (
melech_internal_server)- 找到正确的文件路径
- 验证项目结构
- 确定功能是属于AnalyzerPro还是VoxScript
-
API验证 (
juce_api_server或juce-rag-server)- 检查JUCE类继承
- 验证方法签名
- 确保与JUCE 8兼容
-
组件重用 (
dsp_algorithms_server)- 搜索现有实现
- 避免重写现有的过滤器/算法
- 重用
SimpleEq,FrequencyBandProcessor等等。
错误处理
如果工具返回“无结果”,代理商应:
- 明确声明:“我检查了本地库,但没有找到现有的实现,所以我将编写一个自定义的实现。”
- 只有在验证后才能继续实施
文件结构
MCP/
├── README.md # This file
├── .cursorrules # AI agent guidance
├── claude_desktop_config.json # Claude Desktop MCP config
├── MCP.code-workspace # VS Code workspace
│
├── dsp_algorithms_server/ # DSP algorithm search
│ ├── server.py
│ ├── ingest.py
│ ├── dsp_index.json
│ └── schema.json
│
├── juce_api_server/ # JUCE API documentation
│ ├── server.py
│ ├── ingest_juce.py
│ ├── juce_docs.json # Generated (not in repo)
│ └── schema.json
│
├── melech_internal_server/ # Project structure locator
│ ├── server.py
│ ├── ingest_projects.py
│ ├── project_structure.json
│ └── schema.json
│
└── juce-rag-server/ # Cloud-based RAG
├── server.py # FastAPI server
├── mcp_juce_bridge.py # MCP bridge
├── rag_client.py
├── agent.py
├── stress_test.py
└── .env # ChromaDB config (not in repo)
最佳实践
- 始终重新生成索引 在代码库发生重大变化后
- 保持路径更新 如果存储库位置发生变化,则在摄取脚本中
- 测试MCP服务器 在部署之前,确保它们返回准确的结果
- 使用语义搜索 (RAG服务器)用于复杂查询,关键字搜索精确匹配
- 监控令牌使用情况 -服务器将结果限制在顶级匹配中以节省令牌
故障排除
服务器未找到
- 验证中的Python路径
claude_desktop_config.json - 检查一下
PYTHONUNBUFFERED=1设置在环境中
空结果
- 使用摄取脚本重新生成索引文件
- 验证摄取脚本中的源路径是否与存储库位置匹配
- 检查索引JSON文件的文件权限
RAG服务器连接错误
- 确保FastAPI服务器在端口8000上运行
- 验证
.env文件包含正确的ChromaDB凭据 - 检查ChromaDB云实例的网络连接
未来的增强功能
- []添加增量索引(仅扫描更改的文件)
- []为频繁访问的查询实现缓存
- []添加对算法之间交叉引用的支持
- []与CI/CD集成以自动重新生成索引
- []为查询模式添加度量/分析