Elasticsearch 7.x MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Utilizes environment variables through .env files to configure connection details for Elasticsearch, including host address, authentication credentials, and server port settings.

  • Enables interaction with Elasticsearch 7.x instances, supporting basic operations like ping and info, as well as complete search functionality including aggregation queries, highlighting, sorting, and other advanced search features.

  • Supports connection to Kibana as part of an Elasticsearch deployment through the Docker Compose setup, providing visualization and management capabilities for Elasticsearch data.

Elasticsearch 7.x MCP 服务器

Elasticsearch 7.x 的 MCP 服务器,提供与 Elasticsearch 7.x 版本的兼容性。

特征

  • 提供与 Elasticsearch 7.x 交互的 MCP 协议接口
  • 支持基本的 Elasticsearch 操作(ping、info 等)
  • 支持完整的搜索功能,包括聚合查询、突出显示、排序和其他高级功能
  • 通过任何 MCP 客户端轻松访问 Elasticsearch 功能

要求

  • Python 3.10+
  • Elasticsearch 7.x(推荐 7.17.x)

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Elasticsearch 7.x MCP 服务器:

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

手动安装

pip install -e .

环境变量

服务器需要以下环境变量:

  • ELASTIC_HOST :Elasticsearch 主机地址(例如http://localhost:9200
  • ELASTIC_USERNAME :Elasticsearch 用户名
  • ELASTIC_PASSWORD :Elasticsearch 密码
  • MCP_PORT :(可选)MCP 服务器监听端口,默认 9999

使用 Docker Compose

  1. 创建一个.env文件并设置ELASTIC_PASSWORD
ELASTIC_PASSWORD=your_secure_password
  1. 启动服务:
docker-compose up -d

这将启动一个三节点 Elasticsearch 7.17.10 集群、Kibana 和 MCP 服务器。

使用 MCP 客户端

您可以使用任何 MCP 客户端连接到 MCP 服务器:

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

API 文档

目前支持的 MCP 方法:

  • es-ping :检查 Elasticsearch 连接
  • es-info :获取 Elasticsearch 集群信息
  • es-search :在 Elasticsearch 索引中搜索文档

搜索 API 示例

基本搜索

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

聚合查询

# 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 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"] })

发展

  1. 克隆存储库
  2. 安装开发依赖项
  3. 运行服务器: elasticsearch7-mcp-server

执照

[LICENSE 文件中的许可证]

中文詳細

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

提供与 Elasticsearch 7.x 数据库交互的 MCP 协议接口,支持包括聚合、突出显示和排序在内的全面搜索功能。

  1. Features
    1. Requirements
      1. Installation
        1. Installing via Smithery
        2. Manual Installation
      2. Environment Variables
        1. Using Docker Compose
          1. Using an MCP Client
            1. API Documentation
              1. Search API Examples
            2. Development
              1. License
                ID: zxwxozvlme