项目简介

该项目是一个 Model Context Protocol (MCP) 服务器,旨在连接大型语言模型 (LLM) 客户端与 Elasticsearch 集群。它允许 LLM 通过标准化的 MCP 协议,利用 Elasticsearch 的强大搜索和数据管理能力,实现更智能的应用。

主要功能点

  • 索引管理:允许 LLM 创建新的 Elasticsearch 索引,并查看现有的索引列表。
  • 数据写入:支持 LLM 向指定的 Elasticsearch 索引中添加新的文档数据。
  • 数据查询:使 LLM 能够执行复杂的 Elasticsearch 查询,检索索引中的信息。
  • 元数据发现:自动发现并提供 Elasticsearch 索引的映射 (schema) 信息,帮助 LLM 理解数据结构。

安装步骤

  1. 克隆仓库:将 GitHub 仓库 'https://github.com/da1y/mcp-server-elasticsearch' 克隆到本地。
  2. 安装依赖:在项目根目录下运行 'npm install' 或 'yarn install' 安装项目依赖。
  3. 启动 Elasticsearch:确保已安装并运行 Elasticsearch 集群。可以使用 Docker 快速启动一个单节点 Elasticsearch 实例 (命令见下方)。
  4. 运行 MCP 服务器:在项目根目录下,使用命令行工具运行服务器,需要传入 Elasticsearch 的连接 URL 作为参数。例如:
    npx @modelcontextprotocol/server-elasticsearch http://localhost:9200

Docker 一键运行 Elasticsearch (可选)

如果您没有 Elasticsearch 环境,可以使用 Docker 快速启动一个用于测试的 Elasticsearch 实例:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:8.11.3

请注意,这仅用于本地测试,生产环境请使用更完善的 Elasticsearch 集群配置。

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要在客户端的配置文件中添加以下 JSON 配置信息。假设您的 Elasticsearch 服务器运行在 'http://localhost:9200'。

{
  "mcpServers": {
    "elasticsearch": {  //  服务器名称,可以自定义,用于在客户端中标识和引用
      "command": "npx",  //  启动服务器的命令,通常是 npx 或 node
      "args": [         //  传递给启动命令的参数
        "-y",           //  (可选) 一些 npm 包管理器需要的参数,例如 -y 自动确认
        "@modelcontextprotocol/server-elasticsearch", //  MCP 服务器的 npm 包名
        "http://localhost:9200"   //  Elasticsearch 集群的连接 URL,**请替换为您的 Elasticsearch 地址**
      ]
    }
  }
}

配置说明:

  • '"elasticsearch"': 这是您为该 MCP 服务器定义的名称,在客户端中用于引用。您可以自定义这个名称。
  • '"command": "npx"' 和 '"args"': 这两个字段定义了如何启动 MCP 服务器进程。
    • '"command": "npx"' 表示使用 'npx' 命令来执行。
    • '"args"' 数组包含了传递给 'npx' 的参数:
      • '"-y"': (可选) '-y' 参数通常用于 npm 包管理器,例如 'npx -y' 可以自动确认一些安装提示。如果您的环境中不需要,可以移除。
      • '"@modelcontextprotocol/server-elasticsearch"': 这是 MCP 服务器的 npm 包名称。'npx' 会查找并执行这个包。
      • '"http://localhost:9200"': 这是最重要的参数,需要替换为您实际的 Elasticsearch 集群的 HTTP 地址。 MCP 服务器会使用这个地址连接到 Elasticsearch。

请将上述 JSON 配置添加到您的 MCP 客户端的配置文件中(例如 Claude Desktop 的 'claude_desktop_config.json')。具体的配置文件位置和格式请参考您使用的 MCP 客户端的文档。

基本使用方法

  1. 启动 MCP 服务器:按照上述安装步骤启动 MCP 服务器。

  2. 配置 MCP 客户端:将上述服务器配置添加到您的 MCP 客户端中,并确保客户端已连接到该服务器。

  3. 在 LLM 中使用:现在,您的 LLM 客户端应该能够通过 MCP 协议与 Elasticsearch 服务器交互了。您可以指示 LLM 使用 "elasticsearch" 服务器提供的工具(例如 "search", "create_index", "index_document", "list_indices")来管理 Elasticsearch 索引和查询数据。

    例如,在 Claude 中,您可以指示 Claude 使用 'elasticsearch.search' 工具来查询数据,或者使用 'elasticsearch.list_indices' 工具来查看索引列表。具体的工具名称和使用方法请参考该 MCP 服务器的 'ListTools' 接口返回的工具列表和工具描述。

信息

分类

数据库与文件