项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大语言模型 (LLM) 客户端提供文档搜索功能。它利用 Google Cloud Vertex AI Search 引擎,允许 LLM 应用安全、便捷地访问和检索存储在 Vertex AI Datastore 中的私有数据。通过标准化的 MCP 协议,该服务器能够与各种 MCP 客户端无缝集成,为构建企业级知识库应用提供强大的后端支持。

主要功能点

  • 文档搜索服务: 通过 Vertex AI Search 引擎,提供高效、精准的文档内容搜索能力。
  • 私有数据支持: 允许 LLM 客户端访问和检索存储在用户私有的 Vertex AI Datastore 中的数据,保障数据安全。
  • MCP 协议标准: 遵循 MCP 协议标准,易于与各种 MCP 客户端集成,实现即插即用。
  • 多传输协议支持: 支持 Stdio 和 SSE (Server-Sent Events) 等多种传输协议,满足不同应用场景的需求。
  • 灵活配置: 通过 YAML 配置文件管理服务器参数、Vertex AI 模型和数据存储连接信息。
  • 工具化封装: 将 Vertex AI Search 功能封装为 MCP 工具 (Tool),方便 LLM 客户端调用。

安装步骤

  1. 克隆仓库

    git clone [email protected]:ubie-oss/mcp-vertexai-search.git
    cd mcp-vertexai-search
  2. 创建并激活虚拟环境 (推荐使用 uv 或 virtualenv)

    # 使用 uv (更快速)
    uv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows
    
    # 或者使用 virtualenv
    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装依赖

    uv sync --all-extras  # 使用 uv
    # 或者
    pip install -r requirements.txt # 使用 pip

服务器配置

MCP 客户端需要配置以下 JSON 格式信息才能连接到本 MCP 服务器。

{
  "serverName": "document-search",
  "command": "mcp-vertexai-search",
  "args": ["serve", "--config", "config.yml", "--transport", "stdio"]
}

配置参数说明:

  • 'serverName': MCP 服务器名称,固定为 '"document-search"'。
  • 'command': 启动 MCP 服务器的命令,为 '"mcp-vertexai-search"'。
  • 'args': 传递给 'mcp-vertexai-search' 命令的参数列表:
    • '"serve"': 指定运行服务器模式。
    • '"--config"': 指定配置文件路径。
    • '"config.yml"': 配置文件名,你需要根据 'config.yml.template' 创建并配置 'config.yml' 文件,填入你的 Vertex AI 项目ID、模型名称、数据存储等信息。
    • '"--transport"': 指定传输协议。
    • '"stdio"': 使用标准输入输出流进行通信。这是最常用的方式。
    • 可选的传输协议 SSE: 如果你想使用 SSE 协议,可以将 '"stdio"' 替换为 '"sse"',并根据需要添加主机和端口参数,例如 '["serve", "--config", "config.yml", "--transport", "sse", "--host", "0.0.0.0", "--port", "8080"]'。

'config.yml' 配置文件:

请复制 'config.yml.template' 为 'config.yml',并根据模板中的注释,填写你的 Vertex AI 项目和数据存储的详细信息。这是配置服务器连接 Google Cloud Vertex AI 的关键步骤。

基本使用方法

  1. 配置 'config.yml' 文件: 根据你的 Vertex AI 项目和数据存储信息,详细配置 'config.yml' 文件。确保配置文件的正确性,特别是项目ID、区域 (location)、模型名称和数据存储ID。

  2. 启动 MCP 服务器: 在终端中,进入项目根目录,并使用以下命令启动 MCP 服务器 (以 stdio 传输协议为例):

    uv run mcp-vertexai-search serve --config config.yml --transport stdio
    # 或者
    mcp-vertexai-search serve --config config.yml --transport stdio

    如果使用 SSE 协议,请使用相应的命令启动服务器,例如:

    uv run mcp-vertexai-search serve --config config.yml --transport sse --host 0.0.0.0 --port 8080
    # 或者
    mcp-vertexai-search serve --config config.yml --transport sse --host 0.0.0.0 --port 8080
  3. 连接 MCP 客户端: 配置你的 MCP 客户端,使其连接到启动的 MCP 服务器。客户端需要使用上述 “服务器配置” 中提供的 JSON 信息来建立连接。

  4. 调用工具进行搜索: 客户端成功连接后,可以调用服务器提供的工具 (Tool) 进行文档搜索。通常工具名称会与你在 'config.yml' 中配置的数据存储 'tool_name' 相关联。客户端可以通过 'list_tools' 方法获取可用的工具列表,并使用 'call_tool' 方法调用相应的搜索工具,传递查询语句 (query) 作为参数。

通过以上步骤,你就可以使用本 MCP 服务器,为你的 LLM 应用提供基于 Vertex AI Search 的文档搜索能力。

信息

分类

AI与计算