项目简介
SuperNova 文档 MCP 检索服务是一个基于 Model Context Protocol (MCP) 实现的后端服务,旨在通过检索增强生成 (RAG) 技术,为连接的 LLM 客户端提供关于虚拟 SuperNova 文档库的上下文信息。它能够理解用户的自然语言问题,并在文档中查找相关段落,从而帮助 LLM 生成更准确和相关的回答。
主要功能点
- 文档处理与索引:服务启动时,会自动加载指定目录下的 HTML 文档,提取文本内容,并分割成适合检索的小块。
- 文本嵌入:利用 Hugging Face 提供的嵌入模型,将文本块转换为向量表示,捕捉文本的语义信息。
- 语义检索:当接收到用户查询时,将查询转换为向量,并在内存中的向量数据库中进行语义相似度搜索,找出与查询最相关的文档片段。
- MCP 工具暴露:通过 MCP 协议向 LLM 客户端暴露一个名为 'search_docs' 的工具。LLM 客户端可以调用此工具,将用户问题作为参数发送给服务器进行文档检索。
- 结果返回:将检索到的相关文档片段及其来源(文件名)返回给 LLM 客户端,作为生成回答的上下文。
- Stdio 传输支持:默认通过标准输入/输出流 (Stdio) 与 MCP 客户端通信,易于与各种开发工具(如 Cursor)集成。
安装步骤
- 前提条件: 确保您的系统已安装 Node.js (版本 18 或更高) 和 Yarn。
- 克隆仓库: 将 SuperNova MCP RAG 仓库克隆到您的本地机器上。
- 安装依赖: 在仓库的根目录下打开终端,运行 'yarn install' 来安装所有必需的依赖项。
- 配置环境:
- 进入 'mcp-rag-server/' 目录。
- 在该目录下创建一个名为 '.env' 的文件。
- 在 '.env' 文件中添加您的 Hugging Face API Key,格式如下:
您可以从 Hugging Face 网站获取您的 API Key。HUGGINGFACE_API_KEY=your_huggingface_token_here
- 构建服务器: 回到仓库根目录,运行命令 'yarn workspace mcp-rag-server build' 来构建 TypeScript 代码。
- 启动服务器: 在仓库根目录运行命令 'yarn workspace mcp-rag-server start' 来启动 MCP 服务器。
- 注意:首次启动可能需要一些时间来处理文档并构建向量存储,请耐心等待。您可以在终端看到处理进度。
- 如需开发时进行热重载启动,可使用 'yarn dev' 命令。
服务器配置(供 MCP 客户端参考)
MCP 客户端(如 Cursor)需要知道如何启动并连接到此服务器。您通常需要在客户端的设置中添加一个 MCP 服务器配置。以下是配置的关键信息:
- 服务器类型: 选择 MCP 类型,如果通过标准输入输出连接,选择 Stdio。
- 启动命令 (Command): 用于启动服务器的可执行程序路径,通常是 'node'。
- 启动参数 (Arguments): 传递给启动命令的参数,通常是服务器入口脚本的绝对路径。对于此项目,入口脚本位于 'mcp-rag-server/dist/index.js'。您需要提供该文件的完整绝对路径。
- 服务器名称 (Name): 用于标识该服务器的名称,例如 'mcp-rag-server'。
- 自动批准 (autoApprove): 可选,设置允许哪些客户端功能自动使用此服务器提供的工具。
请根据您的 MCP 客户端的具体设置界面,填入相应的启动命令和入口脚本的绝对路径。
基本使用方法
- 确保服务器正在运行: 按照上面的“启动服务器”步骤,让服务在后台运行。
- 配置并连接客户端: 在您的 MCP 兼容客户端(如 Cursor)中,按照“服务器配置”部分的信息添加并配置此 MCP 服务器。
- 向 LLM 提问: 在客户端中向 LLM 提出与 SuperNova 虚拟文档相关的问题。LLM 可能会调用此 MCP 服务器的 'search_docs' 工具来获取文档上下文,然后基于这些信息生成回答。
注意事项
- 服务器在启动时需要加载和处理所有文档,文档越多,启动时间越长。
- 当前的实现使用内存存储向量数据,不适合非常大的文档集或生产环境。
- 使用 Hugging Face 免费 API 时,请注意其速率限制。
信息
分类
AI与计算