E

Elasticsearch

community
search

MCP server implementation that provides Elasticsearch interaction.

Elasticsearch/OpenSearch MCP Server

smithery badge

Overview

A Model Context Protocol (MCP) server implementation that provides Elasticsearch and OpenSearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.
<a href="https://glama.ai/mcp/servers/b3po3delex"><img width="380" height="200" src="https://glama.ai/mcp/servers/b3po3delex/badge" alt="Elasticsearch MCP Server" /></a>

Demo

Features

Index Operations

  • list_indices
    : List all indices.
  • get_index
    : Returns information (mappings, settings, aliases) about one or more indices.
  • create_index
    : Create a new index.
  • delete_index
    : Delete an index.

Document Operations

  • search_documents
    : Search for documents.
  • index_document
    : Creates or updates a document in the index.
  • get_document
    : Get a document by ID.
  • delete_document
    : Delete a document by ID.
  • delete_by_query
    : Deletes documents matching the provided query.

Cluster Operations

  • get_cluster_health
    : Returns basic information about the health of the cluster.
  • get_cluster_stats
    : Returns high-level overview of cluster statistics.

Alias Operations

  • list_aliases
    : List all aliases.
  • get_alias
    : Get alias information for a specific index.
  • put_alias
    : Create or update an alias for a specific index.
  • delete_alias
    : Delete an alias for a specific index.

Configure Environment Variables

Copy the
.env.example
file to
.env
and update the values accordingly.

Start Elasticsearch/OpenSearch Cluster

Start the Elasticsearch/OpenSearch cluster using Docker Compose:
# For Elasticsearch
docker-compose -f docker-compose-elasticsearch.yml up -d

# For OpenSearch
docker-compose -f docker-compose-opensearch.yml up -d
The default Elasticsearch username is
elastic
and password is
test123
. The default OpenSearch username is
admin
and password is
admin
.
You can access Kibana/OpenSearch Dashboards from http://localhost:5601.

Usage with Claude Desktop

Option 1: Installing via Smithery

To install Elasticsearch Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install elasticsearch-mcp-server --client claude

Option 2: Using uvx

Using
uvx
will automatically install the package from PyPI, no need to clone the repository locally. Add the following configuration to Claude Desktop's config file
claude_desktop_config.json
.
// For Elasticsearch
{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "ELASTICSEARCH_HOSTS": "https://localhost:9200",
        "ELASTICSEARCH_USERNAME": "elastic",
        "ELASTICSEARCH_PASSWORD": "test123"
      }
    }
  }
}

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

Option 3: Using uv with local development

Using
uv
requires cloning the repository locally and specifying the path to the source code. Add the following configuration to Claude Desktop's config file
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_HOSTS": "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_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}
  • On macOS:
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • On Windows:
    %APPDATA%/Claude/claude_desktop_config.json
Restart Claude Desktop to load the new MCP server.
Now you can interact with your Elasticsearch/OpenSearch cluster through Claude using natural language commands like:
  • "List all indices in the cluster"
  • "How old is the student Bob?"
  • "Show me the cluster health status"

Usage with Anthropic MCP Client

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

License

This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.

Related Servers

B

Brave Search

reference

Web and local search using Brave's Search API

View Details
G

Git

reference

Tools to read, search, and manipulate Git repositories

View Details
G

Google Drive

reference

File access and search capabilities for Google Drive

View Details
Aiven logo

Aiven

official

Navigate your [Aiven projects](https://go.aiven.io/mcp-server) and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services

View Details
Apify logo

Apify

official

[Actors MCP Server](https://apify.com/apify/actors-mcp-server): Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more

View Details