mcpField
E
Elasticsearch 7.x MCP Server

Elasticsearch 7.x MCP Server

本地服务
github.com/imlewc数据库1130 周前更新

关于 Elasticsearch 7.x MCP Server

Elasticsearch 7.x MCP Server 为 Elasticsearch 7.x 提供 MCP 接口,面向需要通过 MCP 客户端访问集群的用户。它涵盖连接检查、集群信息和包含聚合等选项的搜索。

主要功能

  1. 01检查 Elasticsearch 连接
  2. 02获取集群信息
  3. 03搜索索引文档
  4. 04支持聚合、高亮与排序

适用场景

  1. 01确认 Elasticsearch 集群连通性
  2. 02通过 MCP 查询索引文档
  3. 03执行聚合或高亮搜索

MCP 相关

该 MCP 服务提供 ping、集群信息和搜索方法,供 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"elasticsearch7": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

Elasticsearch 7.x MCP 服务

smithery badge

适用于 Elasticsearch 7.x 的 MCP 服务,兼容 Elasticsearch 7.x 版本。

Elasticsearch 7.x Server MCP server

功能

  • 提供用于与 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 Server:

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 文件中的许可证]

中文文档

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。