项目简介
本项目包含两个基于 MCP (Model Context Protocol) 协议实现的服务器:
- opensearch-vector-mcp-server: 连接阿里云 OpenSearch 向量检索版服务,提供向量搜索等能力。
- 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): 分析用户查询意图、扩展相似查询等。
安装步骤
-
克隆仓库: 将本项目代码克隆到本地。
git clone https://github.com/aliyun/alibabacloud-opensearch-mcp-server.git cd alibabacloud-opensearch-mcp-server -
安装依赖: 分别进入 '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' 等)。
-
配置环境变量: 在 '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 服务地址。
- opensearch-vector-mcp-server 需要配置:
服务器配置 (供 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 的应用或代理框架)设计的后端服务。
- 启动服务器: MCP 客户端会根据其配置(参考上一节),在需要时自动启动相应的 MCP 服务器进程。
- 工具发现与调用: MCP 客户端连接到服务器后,会发现服务器提供的工具(如 'simple_search', 'document_analyze', 'text_embedding' 等)。当 LLM 或代理需要执行特定任务时,客户端会通过 MCP 协议调用对应的工具,并将结果返回给 LLM 或代理。
- 数据访问: 如果服务器还托管了资源(本项目示例代码中未直接展示资源托管,但 MCP 协议支持),客户端也可以通过协议访问这些资源。
用户只需要确保服务器已正确安装、配置并可由 MCP 客户端访问即可。具体的工具调用逻辑由 MCP 客户端应用根据用户的需求和 LLM 的决策来完成。
信息
分类
AI与计算