Skip to main content
Glama
baburajr

elasticsearch-mcp

by baburajr

elasticsearch-mcp

适用于 Elasticsearch 的 MCP 服务器,直接基于 REST API 构建(不依赖 elasticsearch-py,因此也适用于 OpenSearch 以及仅暴露 HTTP 接口的托管集群)。

提供 21 个工具,涵盖查询、诊断、映射和集群操作。默认只读,所有写入路径均受门控。

安装

git clone <your-repo> elasticsearch-mcp && cd elasticsearch-mcp
uv sync            # or: pip install -e ".[dev]"
cp .env.example .env
pytest -q

Related MCP server: OpenSearch MCP Server

注册到 Claude Code / Claude Desktop

{
  "mcpServers": {
    "elasticsearch": {
      "command": "uv",
      "args": ["--directory", "/abs/path/elasticsearch-mcp", "run", "elasticsearch-mcp"],
      "env": {
        "ES_MCP_HOSTS": "https://es.internal:9200",
        "ES_MCP_API_KEY": "base64-encoded-api-key",
        "ES_MCP_INDEX_ALLOW": "logs-*,metrics-*",
        "ES_MCP_READ_ONLY": "true"
      }
    }
  }
}

远程 / 共享部署(替代 stdio):

elasticsearch-mcp --transport streamable-http

工具

查询

工具

说明

run_query

执行 Query DSL。限制结果条数、注入超时、拒绝深分页,支持 search_after

generate_dsl

将结构化规范转换为有效 DSL,并针对索引进行校验,返回字段目录

explain_query

_validate?rewrite=true + profile 耗时明细 + 逐文档 _explain

count_documents

仅返回匹配数量,不获取命中详情

诊断工具

工具

说明

cluster_health

状态、分片数量、待处理任务,可选节点级堆内存/磁盘/CPU/拒绝次数

index_health

按索引:文档数、存储、段、平均查询和索引延迟、合并次数

shard_分配

_cat/shards 以及 _cluster/allocation/explain 中未分配分片的决策原因

find_slow_queries

按平均查询延迟排序的索引、运行中的搜索任务、线程池拒绝率、慢查询日志阈值

映射

工具

说明

list_indices

索引和别名,包含文档数、大小和存储

get_mapping

扁平化的 字段路径 -> 类型 目录,包含多字段

analyze_text

分析器的分词结果,用于 0 结果匹配查询的调试

put_mapping

添加字段映射变更(写入门控)

操作

工具

说明

list_snapshot_repositorieslist_snapshotssnapshot_status

快照清单和进度

create_snapshot

快照所选索引,默认异步执行

restore_snapshot

恢复快照,包含预检以确保打开的索引不存在,并支持重命名

reindex

异步重建索引,支持查询、管道、脚本、切片过滤、节流;返回任务 ID

get_taskcancel_task

轮询或取消长时间运行的任务

cluster_info

版本、发行版以及当前安全策略

配置

所有配置项均使用 ES_MCP_ 前缀,从环境变量或 .env 文件中读取。

配置项

默认值

用途

HOSTS

http://localhost:9200

逗号分隔的地址;在这些可用的之间进行故障转移

API_KEY / USERNAME+PASSWORD / BEARER_TOKEN

选择其中一种认证方式

VERIFY_CERTSCA_CERTSCLIENT_CERTCLIENT_KEY

true

TLS

REQUEST_TIMEOUTCONNECT_TIMEOUTMAX_REQUEST

30303

重试覆盖 429/502/503/504 和连接错误,采用 jittered backoff 并遵循 Retry-After

READ_ONLY

true

所有写入和破坏性操作的唯一总开关

ALLOW_DESTRUCTIVE

false

对 restore、reindex、put_mapping 进行额外的二次门禁(第二道闸门)

INDEX_ALLOW

*

全局允许列表

INDEX_DENY

.*,security-*

全局拒绝列表;拒绝优先级更高

DEFAULT_SIZEMAX_RESULT_SIZE

10200

命中数限制

MAX_AGG_BUCKETS

1000

拒绝聚合桶数爆炸

SEARCH_TIMEOUTTERMINATE_AFTER

30s、未设置

每次查询的自定义超时和提前终止保护

MAX_RESPONSE_CHARSMAX_SOURCE_CHARS

600002000

结果字符数限制,控制 token 使用

AUDIT_LOG_PATH

未设置

每条工具调用及其结果的 JSONL 审计日志

LOG_LEVEL

INFO

日志输出到 stderr;stderr 仍然覆盖写入,这是为了实现 stdio 传输。

安全模型

四层独立防护,全部默认拒绝:

  1. 索引策略 —— 每次调用都检查允许列表和拒绝列表;索引权限拒绝优先;拒绝在集群范围内执行通配符写入。

  2. 只读 —— 除非 READ_ONLY=false,否则可变工具拒绝执行。

  3. 破坏性操作门控(第二层) —— restore、reindex 和 put_mapping 额外需要 ALLOW_DESTRUCTIVE=true,且在调用时显式传入 confirm=true

  4. 查询限制 —— 命中条数限制、聚合桶上限、嵌套聚合深度上限、深分页拒绝,以及注入搜索超时。

工具会以可读文本的形式返回错误(如 原因(run_query):...),而非抛出异常,让模型可以自行修正,而不是卡住。

推荐的生产环境做法:为 ES 创建专用的 API 密钥,仅对允许的索引授予 read 权限,并设置 READ_ONLY=true;只有在确实需要由助手执行 reindex/restore 时,才另开一个启用写入的实例。

扩展

src/es_mcp/tools/ 下添加一个模块,导出 register(server, ctx),并在 server.build_server 中进行接线。使用 ctx.guard 进行策略检查,用 ctx.render 处理输出,这样所有限制自动生效。

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that enables interaction with Elasticsearch and OpenSearch clusters for searching documents and managing indices. It provides tools for cluster health monitoring, index configuration, and general API requests.
    16
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with OpenSearch clusters to monitor cluster health, manage indices, and perform data searches. It provides a standardized interface for real-time OpenSearch operations within MCP-compatible environments like Open WebUI.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with OpenSearch clusters for searching indices, retrieving mappings, and managing shards through the MCP protocol.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.
    MIT

View all related MCP servers

Related MCP Connectors

  • Search, document and execute authenticated API calls across 700+ apps via one MCP server

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • Read-only Remote MCP for externally grounded AI agent trust receipts.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/baburajr/elasticsearch_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server