项目简介

本项目包含两个基于 MCP (Model Context Protocol) 协议实现的服务器:

  1. opensearch-vector-mcp-server: 连接阿里云 OpenSearch 向量检索版服务,提供向量搜索等能力。
  2. aisearch-mcp-server: 连接阿里云 AI 搜索服务,提供文档分析、图片分析、文本向量化、搜索增强等能力。

这些服务器作为 LLM (Large Language Model) 客户端的后端服务,通过标准化的 MCP 协议,向 LLM 应用提供访问外部数据和调用外部工具的能力。

主要功能点

本项目提供的 MCP 服务器通过工具(Tools)的形式对外暴露了以下核心功能:

OpenSearch 向量检索服务器功能:

  • 简单搜索 (simple_search): 支持基于文本(自动转向量)或直接基于向量进行相似度搜索。
  • 根据ID查询 (query_by_ids): 根据文档的唯一ID列表进行查询。
  • 推理查询 (inference_query): 利用 OpenSearch 控制台配置的 Embedding 模型进行文本查询。
  • 多向量查询 (multi_query): 支持同时使用多个向量进行批量查询。
  • 稠密/稀疏向量混合查询 (mix_query_with_sparse_vector): 结合稠密向量和稀疏向量进行高级查询。
  • 向量/文本混合查询 (mix_query_with_text): 结合稠密向量和文本关键词进行混合查询。

AI 搜索服务器功能:

  • 文档分析 (document_analyze): 解析 PDF、DOC、HTML、TXT 等文档,提取结构化内容。
  • 图片分析 (image_analyze): 分析图片内容,支持文字识别 (OCR) 和多模态描述。
  • 文档切片 (document_split): 将文档内容按语义、段落或自定义规则切分成小块,便于后续处理。
  • 文本向量化 (text_embedding): 将文本转化为稠密向量。
  • 文本稀疏向量化 (text_sparse_embedding): 将文本转化为稀疏向量。
  • 结果重排序 (rerank): 根据查询与文档的相关性对搜索结果进行重新排序。
  • 联网搜索 (web_search): 执行互联网搜索,获取外部信息。
  • 查询分析 (query_analyze): 分析用户查询意图、扩展相似查询等。

安装步骤

  1. 克隆仓库: 将本项目代码克隆到本地。

    git clone https://github.com/aliyun/alibabacloud-opensearch-mcp-server.git
    cd alibabacloud-opensearch-mcp-server
  2. 安装依赖: 分别进入 'aisearch-mcp-server' 和 'opensearch-vector-mcp-server' 目录,安装各自的 Python 依赖。请确保您已安装 Python 环境(推荐 3.8+)。

    # 安装 AI Search 服务器依赖
    cd aisearch-mcp-server
    pip install -r requirements.txt # 假设存在 requirements.txt 文件
    # 返回上级目录
    cd ..
    # 安装 OpenSearch Vector 服务器依赖
    cd opensearch-vector-mcp-server
    pip install -r requirements.txt # 假设存在 requirements.txt 文件

    注意:项目中未直接提供 'requirements.txt' 文件,您可能需要根据代码中的导入项手动创建或安装所需库(如 'mcp.server.fastmcp', 'alibabacloud_searchplat20240529', 'alibabacloud_ha3engine_vector', 'python-dotenv', 'pydantic' 等)。

  3. 配置环境变量: 在 'aisearch-mcp-server' 和 'opensearch-vector-mcp-server' 目录下分别创建 '.env' 文件,或在运行环境中设置相应的环境变量,用于配置阿里云服务的连接信息。

    • opensearch-vector-mcp-server 需要配置:
      • 'OPENSEARCH_VECTOR_ENDPOINT': OpenSearch Vector 服务地址。
      • 'OPENSEARCH_VECTOR_USERNAME': 连接 OpenSearch Vector 的用户名。
      • 'OPENSEARCH_VECTOR_PASSWORD': 连接 OpenSearch Vector 的密码。
      • 'OPENSEARCH_VECTOR_INSTANCE_ID': OpenSearch Vector 实例ID。
      • 'OPENSEARCH_VECTOR_INDEX_NAME': (可选,默认为 'embedding') 用于混合查询的索引名称。
    • aisearch-mcp-server 需要配置:
      • 'AISEARCH_API_KEY': AI Search API 密钥 (Bearer Token)。
      • 'AISEARCH_ENDPOINT': AI Search 服务地址。

服务器配置 (供 MCP 客户端参考)

MCP 客户端需要知道如何启动和连接这些服务器。以下是两个服务器的示例配置信息(JSON 格式),通常保存在 MCP 客户端的配置文件中:

[
  {
    "name": "aisearch_mcp_server",
    "command": ["python", "-m", "aisearch_mcp_server"],
    "args": [],
    "description": "MCP server for Alibaba Cloud AI Search services"
  },
  {
    "name": "opensearch_vector_mcp_server",
    "command": ["python", "-m", "opensearch_vector_mcp_server"],
    "args": [],
    "description": "MCP server for Alibaba Cloud OpenSearch Vector search"
  }
]
  • 'name': 服务器的唯一标识名称。
  • 'command': 启动服务器进程的命令及其参数列表。
  • 'args': 传递给命令的额外参数列表。
  • 'description': 服务器的简要描述(可选)。

注意:MCP 客户端会使用这些配置信息在需要时自动启动或连接对应的 MCP 服务器进程。确保运行 MCP 客户端的环境已经安装了本项目的代码和依赖,并且配置了正确的环境变量。

基本使用方法

用户无需直接与这些服务器交互。这些 MCP 服务器是为 MCP 客户端(如基于 LLM 的应用或代理框架)设计的后端服务。

  1. 启动服务器: MCP 客户端会根据其配置(参考上一节),在需要时自动启动相应的 MCP 服务器进程。
  2. 工具发现与调用: MCP 客户端连接到服务器后,会发现服务器提供的工具(如 'simple_search', 'document_analyze', 'text_embedding' 等)。当 LLM 或代理需要执行特定任务时,客户端会通过 MCP 协议调用对应的工具,并将结果返回给 LLM 或代理。
  3. 数据访问: 如果服务器还托管了资源(本项目示例代码中未直接展示资源托管,但 MCP 协议支持),客户端也可以通过协议访问这些资源。

用户只需要确保服务器已正确安装、配置并可由 MCP 客户端访问即可。具体的工具调用逻辑由 MCP 客户端应用根据用户的需求和 LLM 的决策来完成。

信息

分类

AI与计算