首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Elasticsearch模型上下文协议服务器2026-10-24186分享添加福利群:解决AI开发者的「MCP实战痛点」
通过允许用户通过模型上下文协议服务器和自然语言命令执行索引操作、文档搜索和集群管理,促进与 Elasticsearch 集群的交互。
By cr7258
2026-10-24186
github
详情内容

Elasticsearch/OpenSearch MCP 服务器

smithery 徽章

MseeP.ai 安全评估徽章

概述

一个实现了模型上下文协议(MCP)的服务器,用于提供 Elasticsearch 和 OpenSearch 的交互。该服务器通过一系列工具支持文档搜索、索引分析和集群管理。

Elasticsearch MCP 服务器

演示

https://github.com/user-attachments/assets/f7409e31-fac4-4321-9c94-b0ff2ea7ff15

功能

通用操作

  • 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 并相应地更新值。

启动 Elasticsearch/OpenSearch 集群

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

# 对于 Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d

# 对于 OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d

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

你可以通过 http://localhost:5601 访问 Kibana/OpenSearch 仪表盘。

与 Claude Desktop 的使用

选项 1:通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 Elasticsearch 服务器:

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

选项 2:使用 uvx

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

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

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

选项 3:使用 uv 进行本地开发

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

// 对于 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"
      }
    }
  }
}

// 对于 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 集群进行交互,例如:

  • "列出集群中的所有索引"
  • "学生 Bob 多大了?"
  • "显示集群健康状态"

与 Anthropic MCP 客户端的使用

uv run mcp_client/client.py src/server.py

许可证

本项目根据 Apache 许可证 2.0 版本授权 - 详情请参阅 LICENSE 文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档