Skip to main content

MCP Server for Elasticsearch - schema discovery, search, CRUD operations

Project description

Elasticsearch Client MCP

MCP Server for Elasticsearch - 支持 ES 6/7/8 版本,连接管理,搜索和 CRUD 操作。

配置

MCP 配置(~/.claude/settings.json)

mcpServers 中配置连接信息:

{
  "mcpServers": {
    "elasticsearch-client": {
      "command": "uvx",
      "args": ["elasticsearch-client-mcp-py"],
      "env": {
        "ES_CONNECTIONS": "[{\"name\":\"my_es\",\"env\":\"prod\",\"url\":\"http://your-es-host:9200\",\"username\":\"elastic\",\"password\":\"your_password\"}]"
      },
      "type": "stdio"
    }
  }
}

ES_CONNECTIONS 格式:

[
  {
    "name": "连接名称",
    "env": "环境(dev/prod/test)",
    "description": "可选描述",
    "url": "http://es-host:9200",
    "username": "elastic",
    "password": "密码",
    "safety": {
      "read_only": false,
      "max_search_size": 100,
      "confirm_delete": false,
      "allow_delete_index": true,
      "allow_create_index": true
    }
  }
]

profile.json - 权限配置

权限配置存储在 ~/.config/elasticsearch-client-mcp/profile.json

{
  "_last_connection": "prod_finance",
  "_connection_cache": {},
  "_envs": {
    "prod": {
      "safety": {
        "read_only": true,
        "max_search_size": 50,
        "confirm_delete": true,
        "allow_delete_index": false,
        "allow_create_index": false,
        "risk_check": true
      }
    },
    "dev": {
      "safety": {
        "read_only": false,
        "max_search_size": 100,
        "confirm_delete": false,
        "allow_delete_index": true,
        "allow_create_index": true,
        "risk_check": true
      }
    }
  }
}

safety 配置说明:

  • read_only: 只读模式,拒绝写操作
  • max_search_size: 最大搜索条数
  • confirm_delete: 删除时需要确认
  • allow_delete_index: 是否允许删除索引
  • allow_create_index: 是否允许创建索引

优先级:

  1. MCP env 中的 safety 配置(优先)
  2. profile.json 中对应 env 的 safety

Tools

  • list_connections - 列出所有连接
  • get_current_connection - 获取当前连接
  • select_connection - 选择连接
  • es_search - 搜索文档 (from/size 分页)
  • es_scroll - 滚动查询
  • es_scroll_next - 滚动下一页
  • es_scroll_clear - 清除滚动
  • es_index_doc - 索引文档
  • es_update_doc - 更新文档
  • es_delete_doc - 删除文档
  • es_bulk - 批量操作
  • es_create_index - 创建索引
  • es_delete_index - 删除索引
  • es_index_exists - 检查索引是否存在
  • es_get_index_mapping - 获取索引 mapping
  • es_list_indices - 列出所有索引

版本兼容

自动检测 ES 版本 (6/7/8),适配对应的 API:

  • ES 8: 移除 _type
  • ES 7: scroll / search_after
  • ES 6: scroll (注意 _type 处理)

安装

uv pip install -e .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elasticsearch_client_mcp_py-1.0.2.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elasticsearch_client_mcp_py-1.0.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file elasticsearch_client_mcp_py-1.0.2.tar.gz.

File metadata

File hashes

Hashes for elasticsearch_client_mcp_py-1.0.2.tar.gz
Algorithm Hash digest
SHA256 04a83be20dfc35efd7d4a312f3b01100c86b59f468edc7f7ef297a5f10fbae6e
MD5 e03df701d38d5509194a00c13340befc
BLAKE2b-256 5371329f3ae3e92c5bdf7b1de51f518b6fcdb64164c250e7771f3f4c3745a610

See more details on using hashes here.

File details

Details for the file elasticsearch_client_mcp_py-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for elasticsearch_client_mcp_py-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f683989e745724efe306516f4517fa47c25f84726fe5fce398914fa2fe98b53d
MD5 84e59317ed8a8cdae15668eaec4e4fc5
BLAKE2b-256 df2abe765d923b956a20a40d3a47d9baa82eee4864041e6c63fe7bbbb6cb4787

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page