使用说明
项目简介
本项目 'mcp-server-qdrant' 是一个基于 Qdrant 向量数据库构建的 MCP 服务器,旨在为大型语言模型(LLM)提供代码片段的检索和存储功能。它通过暴露 'qdrant-find' 和 'qdrant-store' 两个工具,使得 LLM 能够搜索已存储的代码片段并存储新生成的代码片段,从而在代码生成任务中实现代码复用和知识积累。该服务器特别适用于需要 LLM 生成前端代码的场景,可以通过预先存储 DaisyUI 等组件的代码片段,并让 LLM 在生成代码前先检索相关片段,提高代码生成质量和一致性。
主要功能点
- 代码片段检索 (qdrant-find): 允许 LLM 根据自然语言描述搜索 Qdrant 向量数据库中相似的代码片段,用于代码复用和参考。
- 代码片段存储 (qdrant-store): 允许 LLM 将新生成的代码片段及其描述存储到 Qdrant 向量数据库,构建代码知识库。
- 基于 Qdrant 向量数据库: 利用 Qdrant 的高效向量检索能力,实现快速准确的代码片段查找。
- 工具化接口: 通过 MCP 协议的标准工具接口与 LLM 客户端交互,易于集成和使用。
- 可配置工具描述: 允许用户自定义工具的描述信息,以便更好地引导 LLM 使用工具。
安装步骤
- 克隆仓库: 首先克隆 'webinar-vibe-coding-rag' 仓库到本地。虽然仓库名看起来是关于 RAG 应用的,但 'mcp-server-qdrant' 子目录是独立的 MCP 服务器实现。
- 安装 Qdrant: 确保已安装并运行 Qdrant 向量数据库。你可以使用 Docker 快速启动 Qdrant,参考仓库中的 '.scripts/run-qdrant.sh' 脚本。默认 Qdrant 地址为 'http://localhost:6333'。
- 配置环境变量: 根据你的需求配置工具的描述信息。在启动 MCP 服务器之前,设置 'TOOL_FIND_DESCRIPTION' 和 'TOOL_STORE_DESCRIPTION' 环境变量。例如:
export TOOL_FIND_DESCRIPTION="使用此工具在生成任何前端代码之前。它可以让你根据自然语言描述搜索相关的代码片段。'query' 参数应该描述你正在寻找什么,工具将返回最相关的代码片段。如果此工具找到类似的东西,那么创建你的代码使其保持一致。尽可能重用现有代码。" export TOOL_STORE_DESCRIPTION="存储可重用的前端代码片段以供将来检索。'information' 参数应包含代码作用的自然语言描述,而实际代码应包含在 'metadata' 参数中作为 'code' 属性。'metadata' 的值是一个以字符串为键的 Python 字典。当您生成一些代码以供进一步参考时,始终使用此选项。" - 启动 MCP 服务器: 仓库中没有明确的 MCP 服务器启动命令。根据 'mcp-server-qdrant' 的目录结构和 FastAPI 的使用方式推测,MCP 服务器的启动命令可能需要在 'mcp-server-qdrant' 目录下,并运行类似 'uvicorn main:app --reload' 的命令。你需要自行查找或构建 'mcp-server-qdrant' 目录下的 FastAPI 应用启动文件 (例如 'main.py' 或 'app.py'),并使用 uvicorn 或类似的 ASGI 服务器运行它。 请注意,仓库中没有直接提供可运行的 MCP 服务器代码,需要用户自行根据 FastAPI 项目结构进行推断和配置。
服务器配置 (MCP 客户端配置)
以下是 MCP 客户端 (例如 Claude Code) 连接 'mcp-server-qdrant' MCP 服务器所需的配置信息 (JSON 格式)。请注意,这里假设 MCP 服务器的启动命令是 'uvicorn main:app --reload' 并且 FastAPI 应用文件为 'main.py',实际情况可能需要根据 'mcp-server-qdrant' 目录下的代码进行调整。
{ "serverName": "qdrant-code-search", "command": "uvicorn", "args": [ "main:app", // 假设 FastAPI 应用在 main.py 文件的 app 实例中 "--reload", // 启用热重载,方便开发 "--host", "0.0.0.0", // 监听所有网络接口 "--port", "8000", // 默认端口为 8000,可根据实际情况修改 "-e", "QDRANT_URL=http://localhost:6333", // Qdrant 服务器地址,根据实际情况修改 "-e", "COLLECTION_NAME=mcp-server-qdrant-knowledge-base", // Qdrant 集合名称,可自定义 "-e", "TOOL_FIND_DESCRIPTION=使用此工具在生成任何前端代码之前。它可以让你根据自然语言描述搜索相关的代码片段。'query' 参数应该描述你正在寻找什么,工具将返回最相关的代码片段。如果此工具找到类似的东西,那么创建你的代码使其保持一致。尽可能重用现有代码。", // 工具描述,与环境变量保持一致 "-e", "TOOL_STORE_DESCRIPTION=存储可重用的前端代码片段以供将来检索。'information' 参数应包含代码作用的自然语言描述,而实际代码应包含在 'metadata' 参数中作为 'code' 属性。'metadata' 的值是一个以字符串为键的 Python 字典。当您生成一些代码以供进一步参考时,始终使用此选项。" // 工具描述,与环境变量保持一致 ] }
配置说明:
- 'serverName': MCP 服务器的名称,客户端用于标识和引用。
- 'command': 启动 MCP 服务器的命令,这里假设使用 'uvicorn' 运行 FastAPI 应用。
- 'args': 启动命令的参数列表。
- 'main:app': 指定 uvicorn 运行的 FastAPI 应用模块和实例。
- '--reload': 启用代码热重载,方便开发调试。
- '--host', '--port': 指定服务器监听的地址和端口。
- '-e ...': 通过环境变量传递配置信息,包括 Qdrant 地址、集合名称和工具描述。请确保工具描述与你在客户端配置中使用的描述一致。
请务必根据 'mcp-server-qdrant' 目录下的实际代码结构和 FastAPI 应用启动方式,调整上述配置信息。
基本使用方法
- 启动 MCP 服务器: 按照上述 "安装步骤" 中的说明启动 'mcp-server-qdrant' MCP 服务器。
- 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端 (例如 Claude Code) 中,添加上述 "服务器配置" JSON 信息,将 'qdrant-code-search' 添加为可用的 MCP 服务器。
- 在 LLM 中使用工具: 在 LLM 的交互过程中,当 LLM 需要搜索代码片段或存储代码片段时,它应该能够根据工具描述选择并调用 'qdrant-find' 和 'qdrant-store' 工具。你需要根据具体的 LLM 客户端使用方法,引导 LLM 使用这些工具。 例如,你可以指示 LLM "在生成前端代码之前,先使用 'qdrant-find' 工具搜索相关代码片段"。
注意: 本仓库主要作为 Webinar 的示例材料,'mcp-server-qdrant' 部分可能需要用户进行一定的配置和调整才能作为 полноценный MCP 服务器运行。请仔细阅读仓库代码和文档,根据实际情况进行配置。
信息
分类
开发者工具