项目简介
'Codebase-RAG' 是一个基于Neo4j图数据库构建的综合智能知识管理系统,它将非结构化的开发文档和代码转化为结构化的、可查询的知识图谱。通过集成向量搜索、图数据库技术和大型语言模型,该系统能够提供智能代码分析、文档管理和开发辅助功能。作为 MCP 服务器,它以标准化的方式向 LLM 客户端提供丰富的上下文信息和外部功能调用能力。
主要功能点
- 代码知识图谱构建: 自动解析代码仓库(支持多种编程语言),构建文件、函数、类等代码实体及其相互调用、继承、导入等关系图谱,帮助AI助手理解代码结构和依赖。
- 文档智能处理: 支持处理多种文档格式(如纯文本、Markdown、PDF、代码文件等),对内容进行自动切块、生成向量嵌入,并与图谱结合实现高级的检索增强生成(RAG)能力。
- 项目记忆存储: 提供长期记忆存储功能,用于记录项目的设计决策、团队编码偏好、过往的开发经验(问题与解决方案)、团队开发规范以及未来计划等关键知识,支持高效的搜索、检索和管理,确保知识的持久化。
- 异步任务管理: 支持提交耗时较长的后台任务,例如大型文档的批量处理、目录文件的递归扫描导入等。提供实时的任务状态监控(Web UI、SSE流、MCP工具),并支持任务的取消和重试。
- Prompt模板与资源: 定义了丰富的预设 Prompt 模板,供LLM客户端调用以获取定制化的交互内容。同时,也提供了系统配置、服务健康状态等资源访问接口,让AI助手能够实时获取服务器的运行信息。
- AI助手集成: 通过Model Context Protocol (MCP) 协议,实现与各类AI助手的无缝对接,允许AI助手调用暴露的工具执行复杂操作、获取所需的上下文信息和生成精确的响应。
安装步骤
-
前置条件:
- 安装 Python 3.13 或更高版本。
- 安装 Neo4j 5.0 或更高版本。
- (可选)安装 Ollama 以支持本地大型语言模型。
-
克隆仓库:
git clone https://github.com/royisme/codebase-rag.git cd codebase-rag -
安装依赖:
pip install -r requirements.txt # 或者使用 uv (推荐) uv pip install -e . -
配置环境: 复制示例配置文件 '.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)。 -
启动 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 -
启动 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 助手就可以开始使用其功能:
-
AI 助手连接: 您的 AI 助手(如 Claude Desktop)将自动通过配置的 'mcpServers' 条目连接到 'codebase-rag-complete-v2' 服务。
-
调用工具: 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' 获取知识库统计数据。
-
访问资源: AI 助手可以读取 MCP 服务器提供的资源 URI,例如:
- 'knowledge://config': 获取当前的系统配置和模型信息。
- 'knowledge://status': 获取实时的服务运行状态和健康状况。
-
获取 Prompt: AI 助手可以请求预定义的 Prompt 模板,例如 'suggest_queries',以获得针对特定领域(如代码、记忆)的查询建议,从而优化与用户的交互。
信息
分类
开发者工具