Elasticsearch

by MCP-Mirror

341 downloads
Not rated
GitHub

About

This is a Model Context Protocol (MCP) server for Elasticsearch clusters. It enables LLMs to manage indices and execute search queries by exposing tools and index mapping resources.

Details

Author
MCP-Mirror
Downloads
341
Categories
Database

- Execute search queries against indices using Elasticsearch Query DSL.
- Create new indices with optional mappings and settings.
- List all available indices.
- Index documents with an optional custom ID.
- Automatically discover index mappings as resources.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Elasticsearch
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Add the server to the mcpServers section of your claude_desktop_config.json using the command npx -y @modelcontextprotocol/server-elasticsearch <url> (e.g., http://localhost:9200). A local Elasticsearch instance can be started with the provided Docker one‑liner docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:8.11.3.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "elasticsearch": {
            "da1y_mcp-server-elasticsearch": {
                "command": "docker",
                "args": [
                    "run",
                    "-d",
                    "--name",
                    "elasticsearch",
                    "-p",
                    "9200:9200",
                    "-p",
                    "9300:9300",
                    "-e",
                    "discovery.type=single-node",
                    "-e",
                    "xpack.security.enabled=false",
                    "docker.elastic.co/elasticsearch/elasticsearch:8.11.3"
                ]
            }
        }
    }
}

McpServers

{
    "da1y_mcp-server-elasticsearch": {
        "command": "docker",
        "args": [
            "run",
            "-d",
            "--name",
            "elasticsearch",
            "-p",
            "9200:9200",
            "-p",
            "9300:9300",
            "-e",
            "discovery.type=single-node",
            "-e",
            "xpack.security.enabled=false",
            "docker.elastic.co/elasticsearch/elasticsearch:8.11.3"
        ]
    }
}

Elasticsearch

A Model Context Protocol server for Elasticsearch clusters. Enables LLMs to manage indices and execute queries.

IMPORTANT NOTE : this was built mainly by feeding examples to claude from the postgres mcp server.

Components

Tools

- search - Execute search queries against indices - Input: - index (string): Target index name - query (object): Elasticsearch query DSL - Returns search hits

- create_index
- Create new Elasticsearch indices
- Input:
- index (string): Index name
- mappings (object, optional): Index mappings configuration
- settings (object, optional): Index settings configuration

- list_indices
- List all available indices
- No input required
- Returns array of index information

- index_document
- Index a document
- Input:
- index (string): Target index name
- id (string, optional): Document ID
- document (object): Document content
- Returns indexing operation result

Resources

The server provides mapping information for each index: - Index Mappings (elasticsearch://<host>/<index>/schema) - JSON mapping information - Field names, types and configurations - Automatically discovered from metadata

Usage with Claude Desktop

Add to the "mcpServers" section of your claude_desktop_config.json:
{
  "mcpServers": {
    "elasticsearch": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-elasticsearch",
        "http://localhost:9200"
      ]
    }
  }
}

Docker one liner to run container :

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:8.11.3
Replace the URL with your Elasticsearch endpoint.

License

Licensed under MIT License. Free to use, modify, and distribute. See LICENSE file for details.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.