Skip to main content

MCP Server for interacting with Elasticsearch 7.x

Project description

Elasticsearch 7.x MCP Server

smithery badge

An MCP server for Elasticsearch 7.x, providing compatibility with Elasticsearch 7.x versions.

Elasticsearch 7.x Server MCP server

Features

  • Provides an MCP protocol interface for interacting with Elasticsearch 7.x
  • Supports basic Elasticsearch operations (ping, info, etc.)
  • Supports complete search functionality, including aggregation queries, highlighting, sorting, and other advanced features
  • Easily access Elasticsearch functionality through any MCP client

Requirements

  • Python 3.10+
  • Elasticsearch 7.x (7.17.x recommended)

Installation

Installing via Smithery

To install Elasticsearch 7.x MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude

Manual Installation

pip install -e .

Environment Variables

The server requires the following environment variables:

  • ELASTIC_HOST: Elasticsearch host address (e.g., http://localhost:9200)
  • ELASTIC_USERNAME: Elasticsearch username
  • ELASTIC_PASSWORD: Elasticsearch password
  • MCP_PORT: (Optional) MCP server listening port, default 9999

Using Docker Compose

  1. Create a .env file and set ELASTIC_PASSWORD:
ELASTIC_PASSWORD=your_secure_password
  1. Start the services:
docker-compose up -d

This will start a three-node Elasticsearch 7.17.10 cluster, Kibana, and the MCP server.

Using an MCP Client

You can use any MCP client to connect to the MCP server:

from mcp import MCPClient

client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response)  # {"success": true}

API Documentation

Currently supported MCP methods:

  • es-ping: Check Elasticsearch connection
  • es-info: Get Elasticsearch cluster information
  • es-search: Search documents in Elasticsearch index

Search API Examples

Basic Search

# Basic search
search_response = client.call("es-search", {
    "index": "my_index",
    "query": {
        "match": {
            "title": "search keywords"
        }
    },
    "size": 10,
    "from": 0
})

Aggregation Query

# Aggregation query
agg_response = client.call("es-search", {
    "index": "my_index",
    "size": 0,  # Only need aggregation results, no documents
    "aggs": {
        "categories": {
            "terms": {
                "field": "category.keyword",
                "size": 10
            }
        },
        "avg_price": {
            "avg": {
                "field": "price"
            }
        }
    }
})

Advanced Search

# Advanced search with highlighting, sorting, and filtering
advanced_response = client.call("es-search", {
    "index": "my_index",
    "query": {
        "bool": {
            "must": [
                {"match": {"content": "search term"}}
            ],
            "filter": [
                {"range": {"price": {"gte": 100, "lte": 200}}}
            ]
        }
    },
    "sort": [
        {"date": {"order": "desc"}},
        "_score"
    ],
    "highlight": {
        "fields": {
            "content": {}
        }
    },
    "_source": ["title", "date", "price"]
})

Development

  1. Clone the repository
  2. Install development dependencies
  3. Run the server: elasticsearch7-mcp-server

License

[License in LICENSE file]

中文文档

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

mseep_elasticsearch7_mcp_server-1.0.0.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

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

mseep_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file mseep_elasticsearch7_mcp_server-1.0.0.tar.gz.

File metadata

File hashes

Hashes for mseep_elasticsearch7_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1fc62caaff4d8bf7a05adca6033f11b65adbeb307bf155c9e558708a1b5a462f
MD5 c3ed431bb056c469366af6617ac27ba8
BLAKE2b-256 7a00a671d4dc5052dedb568465edcee32049bfad1c7d8abb74a16b54563487a4

See more details on using hashes here.

File details

Details for the file mseep_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_elasticsearch7_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20db62c629f7f0ae1b919413630d37e57601be08f941c2f110facf4adf1684c9
MD5 5f059b0592a594ca2bc3243ac4b675f8
BLAKE2b-256 32a303eda3d2fb42c7d859e1cd8b1582e3760f4d4762cb944e75145e8d18ce1d

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