elasticsearch-mcp-server

cr7258/elasticsearch-mcp-server 是一个实现模型上下文协议 (MCP) 的服务器项目,支持 Elasticsearch 和 OpenSearch 之间的交互。该项目提供了一系列工具,用于搜索文档、分析索引和管理集群。主要功能包括索引操作(如创建、删除)、文档操作(如搜索、插入、删除)、集群操作(如健康检查)以及别名管理。项目支持通过 Docker Compose 启动 Elasticsearch 或 OpenSearch 集群,并提供与 Claude Desktop 和 Anthropic MCP 客户端的集成。项目采用 Apache-2.0 许可证。


特征

常规操作

  • general_api_request :执行常规 HTTP API 请求。对于任何没有专用工具的 Elasticsearch/OpenSearch API,都可以使用此工具。

索引操作

  • list_indices :列出所有索引。
  • get_index :返回有关一个或多个索引的信息(映射、设置、别名)。
  • create_index :创建新索引。
  • delete_index :删除索引。

文档操作

  • search_documents :搜索文档。
  • index_document :创建或更新索引中的文档。
  • get_document :通过ID获取文档。
  • delete_document :根据ID删除文档。
  • delete_by_query :删除与提供的查询匹配的文档。

集群操作

  • get_cluster_health :返回有关集群健康状况的基本信息。
  • get_cluster_stats :返回集群统计信息的高级概述。

别名操作

  • list_aliases :列出所有别名。
  • get_alias :获取特定索引的别名信息。
  • put_alias :为特定索引创建或更新别名。
  • delete_alias :删除特定索引的别名。

配置环境变量

将文件复制.env.example.env 并相应地更新值。

使用 Docker Compose 启动 Elasticsearch/OpenSearch 集群:

# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d

# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d

Elasticsearch 的默认用户名是 elastic ,密码是 test123 。OpenSearch 的默认用户名是 admin ,密码是 admin

您可以从http://localhost:5601 访问 Kibana/OpenSearch 仪表板 。

要通过Smithery 自动为 Claude Desktop 安装 Elasticsearch Server :

npx -y @smithery/cli install elasticsearch-mcp-server --client claude

使用 uvx 将自动从 PyPI 安装软件包,无需将存储库克隆到本地。将以下配置添加到 Claude Desktop 的配置文件中 claude_desktop_config.json

// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": [
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}

使用 uv 需要将仓库克隆到本地并指定源代码路径。在 Claude Desktop 的配置文件中添加以下配置 claude_desktop_config.json

// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/src/elasticsearch_mcp_server",
        "run",
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

// For OpenSearch
{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/src/elasticsearch_mcp_server",
        "run",
        "opensearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}
  • 在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json

重新启动 Claude Desktop 以加载新的 MCP 服务器。

现在,您可以使用自然语言命令通过 Claude 与您的 Elasticsearch/OpenSearch 集群进行交互,例如:

  • “列出集群中的所有索引”
  • “学生鲍勃多大了?”
  • “显示集群健康状态”
uv run mcp_client/client.py src/server.py

执照

该项目根据 Apache 许可证版本 2.0 获得许可 - 有关详细信息,请参阅 LICENSE 文件。

发布 6

+ 5 个版本

套餐

没有发布任何软件包

使用 Hugo 构建
主题 StackJimmy 设计