使用说明

项目简介

mcp-docs-rag 是一个基于 Model Context Protocol (MCP) 构建的服务器,它专注于为大型语言模型 (LLM) 提供本地文档的检索增强生成 (RAG) 能力。该服务器允许用户将本地目录中的 Git 仓库和文本文件作为知识库,并通过工具和资源以标准化的方式向 LLM 客户端提供文档内容和查询功能。

主要功能点

  • 资源管理
    • 将本地文档目录中的 Git 仓库和文本文件作为资源进行管理。
    • 允许客户端通过 'docs://' URI 访问和读取文档内容。
    • 支持纯文本 ('text/plain') 内容类型。
  • 工具集成
    • 提供以下工具,允许 LLM 客户端调用以执行特定操作:
      • 'list_documents': 列出所有可用的文档资源。
      • 'rag_query': 使用 RAG 技术查询指定文档的内容。
      • 'add_git_repository': 将远程 Git 仓库克隆到本地文档目录。支持稀疏检出特定子目录。
      • 'add_text_file': 下载并添加远程文本文件到本地文档目录。
  • Prompt 模板
    • 提供 'guide_documents_usage' Prompt 模板,用于指导用户如何使用文档和 RAG 功能。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
  2. 克隆仓库: 使用 'git clone https://github.com/kazuph/mcp-docs-rag' 命令克隆仓库到本地。
  3. 进入目录: 使用 'cd mcp-docs-rag' 命令进入项目目录。
  4. 安装依赖: 运行 'npm install' 命令安装项目依赖。
  5. 构建服务器: 运行 'npm run build' 命令构建服务器。
  6. 配置 Gemini API 密钥: 获取 Google Gemini API 密钥,并将其设置为环境变量 'GEMINI_API_KEY'。你可以在 Google AI Studio 获取密钥。

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,你需要在客户端的配置文件中添加服务器配置信息。以下是一个示例 'claude_desktop_config.json' 配置文件片段,你需要根据你的实际环境进行修改:

{
  "mcpServers": {
    "docs-rag": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-docs-rag"],
      "env": {
        "DOCS_PATH": "/path/to/your/docs",  // 替换为你的本地文档存储目录的绝对路径,例如:"/Users/username/docs" (macOS/Linux) 或 "C:\\Users\\username\\docs" (Windows)
        "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY" // 替换为你的 Gemini API 密钥
      }
    }
  }
}

配置参数说明:

  • 'server name': 服务器名称,这里是 "docs-rag",可以自定义。
  • 'command': 启动服务器的命令,这里使用 'npx' 来运行 '@kazuph/mcp-docs-rag' 包。
  • 'args': 传递给 'command' 的参数,这里使用 '-y' 参数,允许 'npx' 在安装包时跳过确认提示。
  • 'env': 环境变量配置:
    • 'DOCS_PATH': 必须配置。指定本地文档存储的根目录。服务器将在此目录下查找和存储文档资源。请确保该目录存在且服务器进程有读写权限。
    • 'GEMINI_API_KEY': 必须配置。Google Gemini API 的密钥,用于文档索引和查询的嵌入模型和 LLM。

请注意:

  • 请将 '/path/to/your/docs' 替换为你实际存放文档的本地目录的绝对路径。
  • 请将 'YOUR_GEMINI_API_KEY' 替换为你从 Google AI Studio 获取的 Gemini API 密钥。

基本使用方法

  1. 启动 MCP 客户端: 启动配置了 mcp-docs-rag 服务器的 MCP 客户端(例如 Claude Desktop)。
  2. 添加文档: 在客户端中,你可以指示 LLM 调用 'add_git_repository' 或 'add_text_file' 工具来添加新的文档资源。例如:
    • "添加一个GitHub仓库:https://github.com/username/repository"
    • "添加一个文本文件:https://example.com/document.txt 并命名为 'example-doc'"
  3. 列出文档: 你可以指示 LLM 调用 'list_documents' 工具来查看当前可用的文档资源。例如:
    • "当前有哪些文档可以使用?"
  4. 查询文档: 你可以指示 LLM 调用 'rag_query' 工具来查询特定文档的内容。例如:
    • "在 'repository' 文档中,关于 X 的描述是什么?"
  5. 获取使用指南: 你可以指示 LLM 使用 'guide_documents_usage' Prompt 模板来获取使用帮助。例如:
    • "如何使用文档功能?"

服务器会自动处理文档的索引创建,以便高效地进行 RAG 查询。首次查询新添加的文档时,索引创建可能需要一些时间。

信息

分类

数据库与文件