使用说明
项目简介
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': 下载并添加远程文本文件到本地文档目录。
- 提供以下工具,允许 LLM 客户端调用以执行特定操作:
- Prompt 模板:
- 提供 'guide_documents_usage' Prompt 模板,用于指导用户如何使用文档和 RAG 功能。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
- 克隆仓库: 使用 'git clone https://github.com/kazuph/mcp-docs-rag' 命令克隆仓库到本地。
- 进入目录: 使用 'cd mcp-docs-rag' 命令进入项目目录。
- 安装依赖: 运行 'npm install' 命令安装项目依赖。
- 构建服务器: 运行 'npm run build' 命令构建服务器。
- 配置 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 密钥。
基本使用方法
- 启动 MCP 客户端: 启动配置了 mcp-docs-rag 服务器的 MCP 客户端(例如 Claude Desktop)。
- 添加文档: 在客户端中,你可以指示 LLM 调用 'add_git_repository' 或 'add_text_file' 工具来添加新的文档资源。例如:
- "添加一个GitHub仓库:https://github.com/username/repository"
- "添加一个文本文件:https://example.com/document.txt 并命名为 'example-doc'"
- 列出文档: 你可以指示 LLM 调用 'list_documents' 工具来查看当前可用的文档资源。例如:
- "当前有哪些文档可以使用?"
- 查询文档: 你可以指示 LLM 调用 'rag_query' 工具来查询特定文档的内容。例如:
- "在 'repository' 文档中,关于 X 的描述是什么?"
- 获取使用指南: 你可以指示 LLM 使用 'guide_documents_usage' Prompt 模板来获取使用帮助。例如:
- "如何使用文档功能?"
服务器会自动处理文档的索引创建,以便高效地进行 RAG 查询。首次查询新添加的文档时,索引创建可能需要一些时间。
信息
分类
数据库与文件