项目简介

Local Knowledge RAG MCP Server 是一个强大的工具,它允许您对本地文档(如Markdown文件、代码文件、文本文件等)进行语义搜索。不同于传统的关键词搜索,它能够理解查询的含义,并通过向量嵌入技术找到最相关的内容。该服务器通过MCP协议与大型语言模型(LLM)客户端(如Claude Code)通信,将您的本地知识库无缝集成到AI工作流中,支持定制化的报告输出。

主要功能点

  • 语义搜索: 深入理解查询意图,查找语义相似的文档片段,而非简单关键词匹配。
  • 多源嵌入模型支持: 兼容OpenAI、Ollama(本地运行)、LiteLLM等多种嵌入模型,灵活选择。
  • 智能索引管理: 通过PostgreSQL的pgvector扩展高效存储和检索向量,支持HNSW索引加速查询,并提供增量更新和全量重建功能。
  • 定制化报告生成: 使用灵活的Markdown模板生成结构化报告,将检索到的信息整合为易于阅读的输出。
  • 会话管理与结果缓存: 缓存搜索结果,方便在多次交互中引用和复用。
  • 多工作区支持: 可以在单个数据库中为多个项目维护独立的知识库。
  • 可视化索引管理器: 提供一个Web界面,实时监控索引进度、管理知识库并查看项目统计。

安装步骤

  1. 设置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'扩展。
  2. 克隆并构建项目:

    • 打开您的终端或命令行工具,执行以下命令:
      git clone https://github.com/patakuti/local-knowledge-rag-mcp.git
      cd local-knowledge-rag-mcp
      npm install
      npm run build
  3. 配置环境变量:

    • 在项目根目录中,复制示例配置文件:'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' 文件或系统环境变量设置,不要直接写在客户端配置中以确保安全。

基本使用方法

  1. 重启MCP客户端: 配置完成后,重启您的MCP客户端(如VS Code中的Claude Code扩展)。
  2. 打开索引管理器: 在与LLM的对话中,对LLM说:“Open the Index Manager”(打开索引管理器)。这将会在浏览器中打开一个Web界面。
  3. 构建索引: 在打开的Web界面中,点击“Update Index”按钮,开始索引您的本地文档。等待索引过程完成。您可以在Web界面中实时查看索引进度。
  4. 开始搜索: 索引完成后,您可以直接向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正确填充报告内容。

信息

分类

数据库与文件