项目简介
Local Knowledge RAG MCP Server 是一个强大的工具,它允许您对本地文档(如Markdown文件、代码文件、文本文件等)进行语义搜索。不同于传统的关键词搜索,它能够理解查询的含义,并通过向量嵌入技术找到最相关的内容。该服务器通过MCP协议与大型语言模型(LLM)客户端(如Claude Code)通信,将您的本地知识库无缝集成到AI工作流中,支持定制化的报告输出。
主要功能点
- 语义搜索: 深入理解查询意图,查找语义相似的文档片段,而非简单关键词匹配。
- 多源嵌入模型支持: 兼容OpenAI、Ollama(本地运行)、LiteLLM等多种嵌入模型,灵活选择。
- 智能索引管理: 通过PostgreSQL的pgvector扩展高效存储和检索向量,支持HNSW索引加速查询,并提供增量更新和全量重建功能。
- 定制化报告生成: 使用灵活的Markdown模板生成结构化报告,将检索到的信息整合为易于阅读的输出。
- 会话管理与结果缓存: 缓存搜索结果,方便在多次交互中引用和复用。
- 多工作区支持: 可以在单个数据库中为多个项目维护独立的知识库。
- 可视化索引管理器: 提供一个Web界面,实时监控索引进度、管理知识库并查看项目统计。
安装步骤
-
设置PostgreSQL数据库 (推荐使用Docker):
- 确保已安装Docker。
- 运行以下命令启动一个带有'pgvector'扩展的PostgreSQL容器:
docker run -d \ --name local-knowledge-rag-db \ -e POSTGRES_DB=local_knowledge_rag \ -e POSTGRES_USER=user \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ ankane/pgvector - 或者,您也可以手动安装PostgreSQL并启用'pgvector'扩展。
-
克隆并构建项目:
- 打开您的终端或命令行工具,执行以下命令:
git clone https://github.com/patakuti/local-knowledge-rag-mcp.git cd local-knowledge-rag-mcp npm install npm run build
- 打开您的终端或命令行工具,执行以下命令:
-
配置环境变量:
- 在项目根目录中,复制示例配置文件:'cp .env.example .env'
- 编辑新创建的 '.env' 文件,至少配置数据库连接和选择一个嵌入模型提供商。
# 数据库连接 (示例: Docker容器连接) DATABASE_URL=postgresql://user:password@localhost:5432/local_knowledge_rag # 请根据您的需求,选择以下一种嵌入模型配置: # 选项A: OpenAI (使用您的API密钥) # OPENAI_API_KEY=sk-your-openai-api-key # 选项B: LiteLLM 或其他OpenAI兼容API (推荐,支持多种模型) # OPENAI_COMPATIBLE_BASE_URL=http://localhost:4000/v1 # OPENAI_COMPATIBLE_API_KEY=your-litellm-key # EMBEDDING_MODEL=cl-nagoya/ruri-v3-310m # 选项C: Ollama (本地离线运行,需要先安装Ollama并拉取模型) # OLLAMA_BASE_URL=http://localhost:11434/v1 # EMBEDDING_MODEL=nomic-embed-text - 保存 '.env' 文件。
服务器配置 (用于MCP客户端)
将此MCP服务器添加到您的MCP客户端(例如Claude Code扩展)的配置中。配置通常是JSON格式,指示客户端如何启动和连接服务器。
{ "mcpServers": { "local-knowledge-rag": { "command": "node", "args": [ "/path/to/local-knowledge-rag-mcp/dist/mcp-server.js" ], "description": "提供本地文档的语义搜索和报告生成功能。" } } }
- 'local-knowledge-rag': 为此MCP服务器在客户端中的唯一标识符,您可以自定义。
- 'command': 启动服务器的命令,这里是 'node'。
- 'args': 传递给 'command' 的参数,这里是MCP服务器的启动脚本路径。请务必将 '/path/to/local-knowledge-rag-mcp/dist/mcp-server.js' 替换为您本地项目中的实际路径。
- 'description': 服务器的简要描述,方便您识别。
- 重要提示: 环境变量(如API密钥、数据库URL等)应通过 '.env' 文件或系统环境变量设置,不要直接写在客户端配置中以确保安全。
基本使用方法
- 重启MCP客户端: 配置完成后,重启您的MCP客户端(如VS Code中的Claude Code扩展)。
- 打开索引管理器: 在与LLM的对话中,对LLM说:“Open the Index Manager”(打开索引管理器)。这将会在浏览器中打开一个Web界面。
- 构建索引: 在打开的Web界面中,点击“Update Index”按钮,开始索引您的本地文档。等待索引过程完成。您可以在Web界面中实时查看索引进度。
- 开始搜索: 索引完成后,您可以直接向LLM提问,例如:
- “Search my documents for information about React hooks and create a report”(在我的文档中搜索关于React Hook的信息并生成报告)。
- “Find documentation about database setup and create a summary”(查找关于数据库设置的文档并生成摘要)。
- 您也可以使用LLM调用具体的工具来执行操作,例如:
- 'search_knowledge': 执行语义搜索。
- 'get_search_results': 获取详细的搜索结果。
- 'create_rag_report': 根据模板生成定制化的报告。
- 'index_status': 查看索引状态和配置信息。
- 'rebuild_index': 重新构建或更新索引。
- 'reload_config': 重新加载服务器配置(修改'.env'后使用)。
- 'open_index_manager': 重新打开索引管理器。
- 'get_template_schema': 获取报告模板的变量结构,帮助LLM正确填充报告内容。
信息
分类
数据库与文件