AI辅助开发协议服务器

MCP服务器为AI编程助手提供结构化访问代码库、JUCE文档和DSP算法的能力,实现无需依赖网络搜索的准确、上下文感知信息检索。

  • by avishali
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 avishali/MCP

使用说明

MCP(模型上下文协议)服务器

该存储库包含MCP服务器,为AI代理提供对MelechDSP代码库、JUCE文档和DSP算法的结构化访问。这些服务器使AI编码助手能够检索准确、上下文感知的信息,而无需依赖网络搜索。

概述

MCP文件夹实现了 三一协议 人工智能辅助开发:

  1. 建筑检查 -在MelechDSP monorepo中查找文件
  2. API验证 -验证JUCE类签名和继承
  3. 组件重用 -搜索现有的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_HOST
    • CHROMA_API_KEY
    • CHROMA_TENANT
    • CHROMA_DATABASE

文件:

  • server.py -集成ChromaDB的FastAPI服务器
  • mcp_juce_bridge.py -MCP服务器桥接到FastAPI
  • rag_client.py -RAG客户端实用程序
  • agent.py -代理集成代码
  • stress_test.py -负载测试工具
  • .env -环境变量(不在仓库中)

用法:

  1. 启动FastAPI服务器: python server.py (在端口8000上运行)
  2. 使用 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代理应遵循以下顺序:

  1. 建筑检查 (melech_internal_server)

    • 找到正确的文件路径
    • 验证项目结构
    • 确定功能是属于AnalyzerPro还是VoxScript
  2. API验证 (juce_api_server 或 juce-rag-server)

    • 检查JUCE类继承
    • 验证方法签名
    • 确保与JUCE 8兼容
  3. 组件重用 (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)

最佳实践

  1. 始终重新生成索引 在代码库发生重大变化后
  2. 保持路径更新 如果存储库位置发生变化,则在摄取脚本中
  3. 测试MCP服务器 在部署之前,确保它们返回准确的结果
  4. 使用语义搜索 (RAG服务器)用于复杂查询,关键字搜索精确匹配
  5. 监控令牌使用情况 -服务器将结果限制在顶级匹配中以节省令牌

故障排除

服务器未找到

  • 验证中的Python路径 claude_desktop_config.json
  • 检查一下 PYTHONUNBUFFERED=1 设置在环境中

空结果

  • 使用摄取脚本重新生成索引文件
  • 验证摄取脚本中的源路径是否与存储库位置匹配
  • 检查索引JSON文件的文件权限

RAG服务器连接错误

  • 确保FastAPI服务器在端口8000上运行
  • 验证 .env 文件包含正确的ChromaDB凭据
  • 检查ChromaDB云实例的网络连接

未来的增强功能

  • []添加增量索引(仅扫描更改的文件)
  • []为频繁访问的查询实现缓存
  • []添加对算法之间交叉引用的支持
  • []与CI/CD集成以自动重新生成索引
  • []为查询模式添加度量/分析