E

Elasticsearch模型上下文协议服务器

@cr7258/elasticsearch-mcp-server
0 Stars 849 次浏览 cr7258 更新于 2026-08-23

通过允许用户通过模型上下文协议服务器和自然语言命令执行索引操作、文档搜索和集群管理,促进与 Elasticsearch 集群的交互。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (6 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

list_indices

List all indices in the Elasticsearch cluster

该工具无需必填参数,直接调用即可

get_mapping 1 个参数 需填 1 项

Get index mapping

必填参数:index

get_settings 1 个参数 需填 1 项

Get index settings

必填参数:index

search_documents 2 个参数 需填 2 项

Search documents in an index with a custom query

必填参数:index、body

get_cluster_health

Get cluster health status

该工具无需必填参数,直接调用即可

get_cluster_stats

Get cluster statistics

该工具无需必填参数,直接调用即可

服务介绍

Elasticsearch/OpenSearch MCP 服务器

smithery 徽章

概览

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

演示

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

功能

索引操作

  • 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 集群:

# 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 控制面板。

与 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 中。

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

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

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

使用 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_HOST": "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_HOST": "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文件。

相关 MCP 服务