MCP Now
Elasticsearch

Elasticsearch

by cr7258
GitHub

MCP server implementation that provides Elasticsearch interaction.

cluster
elasticsearch
index
server
desktop

Elasticsearch MCP Server

smithery badge

Overview

A Model Context Protocol (MCP) server implementation that provides Elasticsearch interaction. This server enables searching documents, analyzing indices, and managing cluster through a set of tools.

Elasticsearch MCP Server

Demo

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

Features

Index Operations

  • list_indices: List all indices in the Elasticsearch cluster.
  • get_mapping: Retrieve the mapping configuration for a specific index.
  • get_settings: Get the settings configuration for a specific index.

Document Operations

  • search_documents: Search documents in an index using Elasticsearch Query DSL.

Cluster Operations

  • get_cluster_health: Get health status of the cluster.
  • get_cluster_stats: Get statistical information about the cluster.

Start Elasticsearch Cluster

Start the Elasticsearch cluster using Docker Compose:

1docker-compose up -d

This will start a 3-node Elasticsearch cluster and Kibana. Default Elasticsearch username elastic, password test123.

You can access Kibana from http://localhost:5601.

Usage with Claude Desktop

Option 1: Installing via Smithery

To install Elasticsearch Server for Claude Desktop automatically via Smithery:

1npx -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.

1{ 2 "mcpServers": { 3 "elasticsearch-mcp-server": { 4 "command": "uvx", 5 "args": [ 6 "elasticsearch-mcp-server" 7 ], 8 "env": { 9 "ELASTIC_HOST": "https://localhost:9200", 10 "ELASTIC_USERNAME": "elastic", 11 "ELASTIC_PASSWORD": "test123" 12 } 13 } 14 } 15}

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.

1{ 2 "mcpServers": { 3 "elasticsearch": { 4 "command": "uv", 5 "args": [ 6 "--directory", 7 "path/to/src/elasticsearch_mcp_server", 8 "run", 9 "elasticsearch-mcp-server" 10 ], 11 "env": { 12 "ELASTIC_HOST": "https://localhost:9200", 13 "ELASTIC_USERNAME": "elastic", 14 "ELASTIC_PASSWORD": "test123" 15 } 16 } 17 } 18}
  • 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 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"

License

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