IE

imlewc/elasticsearch7-mcp-server

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

11 stars 8 forks 质量 61 趋势 18Apache-2.0

elasticsearch7 mcp server

概览

An MCP server for Elasticsearch 7.x, providing compatibility with Elasticsearch 7.x versions. - 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 - Python 3.10+ - Elasticsearch 7.x (7.17.x recommended) To install Elasticsearch 7.x MCP Server for Claude Desktop automatically via Smithery: 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 1. Create a .env file and set ELASTIC_PASSWORD: This will start a three-node Elasticsearch 7.17.10 cluster, Kibana, and the MCP server.

README

以下为原文 README 节选,完整内容请查看原文。

Elasticsearch 7.x MCP Server

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

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
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
            }
在 GitHub 查看完整 README

安装

npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
新手?先看 mcpskill.org 教程 →