Skip to main content

elasticsearch-mcp

An MCP (Model Context Protocol) server for Elasticsearch clusters. Enables AI assistants like Claude to search, analyze, and interact with Elasticsearch through natural language.

PyPI version Python 3.10+ License: Apache-2.0

Features

  • Natural Language Search: Ask Claude about your data in plain English
  • Index Discovery: Explore indices, mappings, and field types
  • Search & Aggregations: Full Query DSL and aggregation support
  • Document Operations: Read, index, update, and delete documents
  • Data Export: Export search results to JSON or CSV
  • Knowledge Persistence: Claude remembers what it learns about your cluster
  • Safety Controls: Read-only mode, index blocking, result limits
  • Connection Watchdog: Automatic recovery from hung connections
  • OAuth Integration: Deploy as a Claude.ai Custom Connector with SSO

Quick Start

1. Install

pip install elasticsearch-mcp

2. Configure Claude Desktop

Edit your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "elasticsearch": {
      "command": "elasticsearch-mcp",
      "env": {
        "ES_HOST": "https://your-cluster.es.example.com:9200",
        "ES_API_KEY": "your-api-key",
        "ES_READ_ONLY": "true"
      }
    }
  }
}

3. Restart Claude Desktop

Quit and reopen Claude Desktop. You'll see a hammer icon indicating tools are available.

4. Start Chatting

Ask Claude about your Elasticsearch data:

"What indices are available?"

"Search for errors in the logs index from the last hour"

"Show me the top 10 users by request count"

"Describe the mappings for the customers index"

Documentation

Guide Description
Installation Complete installation guide
Configuration All configuration options
Tools Reference Detailed tool documentation
Usage Examples Common usage patterns
OAuth Setup Claude.ai integration with SSO

Available Tools

Connection & Cluster

Tool Description
connect Connect to the cluster
disconnect Close connections
cluster_health Get cluster health status
cluster_info Get cluster version and info

Index Operations

Tool Description
list_indices List all indices
describe_index Get index mappings and settings
get_index_stats Get index statistics

Search & Query

Tool Description
search Execute Query DSL search
search_simple Simple query string search
count Count matching documents
get_document Get document by ID

Aggregations

Tool Description
aggregate Run aggregation queries
terms_aggregation Quick terms aggregation
date_histogram Time-based aggregations

Document Operations

Tool Description
index_document Create/update document
update_document Partial document update
delete_document Delete document

Export & Knowledge

Tool Description
export_to_json Export results to JSON
export_to_csv Export results to CSV
save_knowledge Save learned information
get_all_knowledge Retrieve saved knowledge

Configuration

Required Variables

Variable Description
ES_HOST Elasticsearch host URL

Authentication (choose one)

Variable Description
ES_API_KEY API key authentication
ES_USERNAME + ES_PASSWORD Basic authentication
ES_CLOUD_ID Elastic Cloud ID

Safety Settings

Variable Default Description
ES_READ_ONLY false Block all write operations
ES_MAX_RESULTS 1000 Maximum results per query
ES_BLOCKED_INDICES .security*,... Indices to hide

Deployment Modes

Local (Default)

elasticsearch-mcp

HTTP/SSE Server

elasticsearch-mcp --http --host 0.0.0.0 --port 8080

Streamable HTTP (Claude.ai)

elasticsearch-mcp --streamable-http --host 0.0.0.0 --port 8080

Development

# Clone repository
git clone https://github.com/bpamiri/elasticsearch-mcp.git
cd elasticsearch-mcp

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check .
ruff format .

# Type check
mypy src/

Security

  • API keys and passwords are never logged
  • Configurable index blocklist
  • Optional read-only mode
  • Result size limits
  • Query validation

License

Apache-2.0. See LICENSE for details.

Metadata

Release files for elasticsearch-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elasticsearch-mcp 0.1.1
File Size Uploaded
elasticsearch_mcp-0.1.1.tar.gz 22.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for elasticsearch-mcp 0.1.1
File Interpreter ABI Platform
elasticsearch_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 43.5 kB

Release files / elasticsearch_mcp-0.1.1.tar.gz

Download URL elasticsearch_mcp-0.1.1.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
deac3fe6598afa3edbacb3d2dd037e36635094e91e2c2d123a41c777aa497d40
BLAKE2b-256 checksum
How to use checksums
bb3c4ee0f02b34de706cb9d74153c9307cd4ebf1870b3d4d7e611d8ecaa85339
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / elasticsearch_mcp-0.1.1-py3-none-any.whl

Download URL elasticsearch_mcp-0.1.1-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20e1c7b56c2e08cf1f8b402e23872392b81dfb3acc732b2cbe989cccd45c95e7
BLAKE2b-256 checksum
How to use checksums
b25b0280f878b5e1b00056da1a8e525821e06a9ee96cd27415fc5e2d0f56f7d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page