项目简介

'Codebase-RAG' 是一个基于Neo4j图数据库构建的综合智能知识管理系统,它将非结构化的开发文档和代码转化为结构化的、可查询的知识图谱。通过集成向量搜索、图数据库技术和大型语言模型,该系统能够提供智能代码分析、文档管理和开发辅助功能。作为 MCP 服务器,它以标准化的方式向 LLM 客户端提供丰富的上下文信息和外部功能调用能力。

主要功能点

  • 代码知识图谱构建: 自动解析代码仓库(支持多种编程语言),构建文件、函数、类等代码实体及其相互调用、继承、导入等关系图谱,帮助AI助手理解代码结构和依赖。
  • 文档智能处理: 支持处理多种文档格式(如纯文本、Markdown、PDF、代码文件等),对内容进行自动切块、生成向量嵌入,并与图谱结合实现高级的检索增强生成(RAG)能力。
  • 项目记忆存储: 提供长期记忆存储功能,用于记录项目的设计决策、团队编码偏好、过往的开发经验(问题与解决方案)、团队开发规范以及未来计划等关键知识,支持高效的搜索、检索和管理,确保知识的持久化。
  • 异步任务管理: 支持提交耗时较长的后台任务,例如大型文档的批量处理、目录文件的递归扫描导入等。提供实时的任务状态监控(Web UI、SSE流、MCP工具),并支持任务的取消和重试。
  • Prompt模板与资源: 定义了丰富的预设 Prompt 模板,供LLM客户端调用以获取定制化的交互内容。同时,也提供了系统配置、服务健康状态等资源访问接口,让AI助手能够实时获取服务器的运行信息。
  • AI助手集成: 通过Model Context Protocol (MCP) 协议,实现与各类AI助手的无缝对接,允许AI助手调用暴露的工具执行复杂操作、获取所需的上下文信息和生成精确的响应。

安装步骤

  1. 前置条件:

    • 安装 Python 3.13 或更高版本。
    • 安装 Neo4j 5.0 或更高版本。
    • (可选)安装 Ollama 以支持本地大型语言模型。
  2. 克隆仓库:

    git clone https://github.com/royisme/codebase-rag.git
    cd codebase-rag
  3. 安装依赖:

    pip install -r requirements.txt
    # 或者使用 uv (推荐)
    uv pip install -e .
  4. 配置环境: 复制示例配置文件 '.env.example' 到项目根目录并重命名为 '.env'。

    cp env.example .env
    # 编辑 .env 文件,根据您的实际情况配置 Neo4j 数据库连接信息 (NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD)
    # 以及选择您偏好的 LLM (LLM_PROVIDER, OLLAMA_MODEL/OPENAI_MODEL 等) 和 Embedding 模型 (EMBEDDING_PROVIDER)。
  5. 启动 Neo4j 数据库: 如果使用 Docker,运行:

    docker run \
        --name neo4j-code-graph \
        -p 7474:7474 -p 7687:7687 \
        -e NEO4J_AUTH=neo4j/password \
        -e NEO4J_PLUGINS='["apoc"]' \
        neo4j:5.15
  6. 启动 MCP 服务器: 在项目根目录下运行以下命令来启动 MCP 服务器:

    python start_mcp.py

    此命令会启动一个通过标准输入/输出(Stdio)协议与 MCP 客户端进行通信的 MCP 服务器实例。

MCP服务器配置

当您使用支持 Model Context Protocol (MCP) 的客户端(例如 Claude Desktop 或兼容的 VS Code 插件)时,需要提供以下 JSON 格式的配置信息,以便客户端能够发现并连接到此 MCP 服务器。请确保将 '/path/to/codebase-rag' 替换为您的 'codebase-rag' 仓库在本地文件系统中的实际路径。

{
  "mcpServers": {
    "codebase-rag-complete-v2": {
      "command": "python",
      "args": ["/path/to/codebase-rag/mcp_server.py"],
      "cwd": "/path/to/codebase-rag",
      "env": {},
      "description": "提供代码图谱、项目记忆、文档处理及异步任务管理的AI上下文服务。"
    }
  }
}
  • '"codebase-rag-complete-v2"': 这是 MCP 服务器的唯一名称,客户端将通过此名称识别和连接服务。
  • '"command": "python"': 指定启动服务器的可执行程序。
  • '"args": ["/path/to/codebase-rag/mcp_server.py"]': 指定启动服务器所需的脚本及其参数。
  • '"cwd": "/path/to/codebase-rag"': 指定服务器进程的工作目录。
  • '"env": {}': (可选)为服务器进程设置环境变量。
  • '"description"': (可选)对 MCP 服务器功能的简要描述。

基本使用方法

一旦 MCP 服务器成功启动并被您的 MCP 客户端配置,AI 助手就可以开始使用其功能:

  1. AI 助手连接: 您的 AI 助手(如 Claude Desktop)将自动通过配置的 'mcpServers' 条目连接到 'codebase-rag-complete-v2' 服务。

  2. 调用工具: AI 助手可以根据其需求,通过 JSON-RPC 调用此 MCP 服务器暴露的 30 个工具来执行各种操作。例如:

    • 知识查询: 调用 'query_knowledge' 工具,向知识库提问并获取答案及相关源节点。
    • 文档导入: 调用 'add_document'、'add_file' 或 'add_directory' 工具,将文本内容、文件或整个目录导入到知识图谱中。
    • 代码分析: 调用 'code_graph_ingest_repo' 导入代码仓库,'code_graph_related' 查找相关文件,或 'code_graph_impact' 进行影响分析。
    • 记忆管理: 调用 'add_memory' 记录新的项目记忆,'search_memories' 查找现有记忆,或 'get_project_summary' 获取项目记忆概览。
    • 任务监控: 调用 'watch_task' 或 'watch_tasks' 工具,实时监控长时间运行任务的进度和状态。
    • 系统信息: 调用 'get_graph_schema' 获取图谱结构信息,或 'get_statistics' 获取知识库统计数据。
  3. 访问资源: AI 助手可以读取 MCP 服务器提供的资源 URI,例如:

    • 'knowledge://config': 获取当前的系统配置和模型信息。
    • 'knowledge://status': 获取实时的服务运行状态和健康状况。
  4. 获取 Prompt: AI 助手可以请求预定义的 Prompt 模板,例如 'suggest_queries',以获得针对特定领域(如代码、记忆)的查询建议,从而优化与用户的交互。

信息

分类

开发者工具