OpenSearch MCP Server 使用说明

项目简介

OpenSearch MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供与 OpenSearch 分布式搜索引擎集成的能力。它允许 LLM 通过标准化的 MCP 协议,利用 OpenSearch 存储和检索信息,从而增强 LLM 的上下文理解和知识获取能力。该服务器充当 LLM 的语义记忆层,使其能够访问和利用 OpenSearch 数据库中的信息。

主要功能点

  • 文档检索工具: 提供 'opensearch-find-documents' 工具,允许 LLM 通过查询在 OpenSearch 中查找文档。
  • 语义记忆: 作为 LLM 的外部知识库,存储和检索记忆(文档),增强 LLM 的长期记忆能力。
  • 可配置的 OpenSearch 连接: 支持通过环境变量或命令行参数配置 OpenSearch 服务器的连接信息,包括主机地址、端口和索引名称。
  • 基于 FastMCP 框架: 使用 FastMCP 框架简化 MCP 服务器的开发,提供工具注册、资源管理和协议处理等功能。
  • 易于集成: 可以通过 Smithery 或手动配置集成到 Claude Desktop 等 MCP 客户端应用中。

安装步骤

  1. 环境准备: 确保已安装 Python 3.7+ 和 pip。建议使用 'uv' 包管理器 (https://docs.astral.sh/uv/),以获得更快的包安装和运行速度。
  2. 安装依赖: 虽然文档中提到 'opensearch-py[async]' 安装可能存在问题,但根据代码,项目主要使用了同步的 'opensearchpy' 库。可以直接尝试安装 'opensearchpy' 和 'fastmcp':
    pip install opensearchpy fastmcp
    如果使用 'uv',则无需显式安装,'uv run' 命令会自动处理依赖。
  3. 下载仓库代码: 从 GitHub 克隆或下载 'mcp-server-opensearch' 仓库的代码。

服务器配置

要将 OpenSearch MCP Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端的 MCP 服务器设置。以下是 Claude Desktop 'claude_desktop_config.json' 中 'mcpServers' 部分的配置示例:

{
  "opensearch": {
    "command": "uv",
    "args": [
      "run",
      "src/mcp-server-opensearch/server.py",
      "--opensearch_host",
      "http://localhost",  // OpenSearch 主机地址 (请替换为您的 OpenSearch 服务器地址)
      "--opensearch_hostPort",
      "9200",             // OpenSearch 端口号 (通常为 9200,请根据您的配置修改)
      "--index-name",
      "your_index_name"   // OpenSearch 索引名称 (请替换为您要使用的索引名称)
    ]
  }
}

参数说明:

  • 'command': 运行服务器的命令,这里使用 'uv run',如果未使用 'uv',可以替换为 'python' 或 'python3'。
  • 'args': 传递给服务器的参数列表。
    • 'src/mcp-server-opensearch/server.py': 服务器主程序脚本路径。
    • '--opensearch_host': OpenSearch 服务器的主机地址。
    • '--opensearch_hostPort': OpenSearch 服务器的端口号。
    • '--index-name': 要连接的 OpenSearch 索引的名称。

注意:

  • 请根据您的 OpenSearch 服务器实际地址、端口和索引名称修改上述配置。
  • 如果您的 OpenSearch 服务器需要身份验证,可能需要在代码中或通过环境变量配置用户名和密码。当前代码中使用了默认的 '('admin', 'pizzaParty123')',请务必根据您的 OpenSearch 安全配置进行调整,生产环境中切勿在代码中硬编码凭据

基本使用方法

  1. 启动 OpenSearch 服务器: 确保您的 OpenSearch 服务器正在运行,并且可以通过配置的地址和端口访问。
  2. 启动 MCP 服务器: 在 MCP 客户端(如 Claude Desktop)中配置并启动 "opensearch" 服务器。客户端会通过 MCP 协议与服务器建立连接。
  3. 在 LLM 应用中使用工具: 在支持 MCP 协议的 LLM 应用中,您可以调用 'opensearch-find-documents' 工具,向 OpenSearch MCP Server 发送查询请求。服务器会将查询发送到 OpenSearch,并将检索到的文档作为工具的返回结果返回给 LLM 应用。
  4. 示例工具调用: 假设在 Claude 中,您可以指示 Claude 使用 'opensearch-find-documents' 工具,并提供查询语句,例如:'使用 opensearch-find-documents 工具查询关于 "Women's Clothing" 的文档'。服务器会将 "Women's Clothing" 作为查询发送到 OpenSearch,并将结果返回给 Claude。

环境变量配置: 除了命令行参数,您还可以使用环境变量配置服务器:

  • 'OPENSEARCH_HOST': OpenSearch 主机地址。
  • 'OPENSEARCH_HOST_PORT': OpenSearch 端口号。
  • 'INDEX_NAME': OpenSearch 索引名称。

使用环境变量配置时,启动命令可以简化为:

{
  "opensearch": {
    "command": "uv",
    "args": [
      "run",
      "src/mcp-server-opensearch/server.py"
    ]
  }
}

并在运行 MCP 客户端前,在终端中设置相应的环境变量。

信息

分类

数据库与文件