返回 MCP 目录
public公开dns本地运行

imlewc_elasticsearch7-mcp-server

Elasticsearch 7.x的MCP协议服务端,提供与Elasticsearch 7.x版本的兼容接口,支持基础操作和高级搜索功能。

article

README

🚀 Elasticsearch 7.x MCP 服务器

本服务器专为 Elasticsearch 7.x 提供 MCP 协议接口,完美支持与 Elasticsearch 7.x 版本兼容,让你轻松访问 Elasticsearch 的各项功能。

🚀 快速开始

本服务器为 Elasticsearch 7.x 提供 MCP 协议接口,支持与该版本兼容。你可以通过 Smithery 自动安装或手动安装,配置好环境变量后,就能使用 MCP 客户端连接服务器进行操作。

✨ 主要特性

  • 提供 Elasticsearch 7.x 的 MCP 协议访问接口,方便快捷。
  • 支持基础 Elasticsearch 操作,如心跳检测、信息查询等,保障系统稳定运行。
  • 完全支持搜索功能,涵盖聚合查询、高亮显示、排序以及其他高级特性,满足多样化的搜索需求。
  • 可通过任何 MCP 客户端轻松访问 Elasticsearch 功能,使用灵活。

📦 安装指南

使用 Smithery 自动安装

通过 Smithery 自动安装 Elasticsearch 7.x MCP Server for Claude Desktop:

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 示例

基本搜索

# 基本搜索
search_response = client.call("es-search", {
    "index": "my_index",
    "query": {
        "match": {
            "title": "搜索关键词"
        }
    },
    "size": 10,
    "from": 0
})

聚合查询

# 聚合查询
agg_response = client.call("es-search", {
    "index": "my_index",
    "size": 0,  # 只需聚合结果,不需要文档内容
    "aggs": {
        "categories": {
            "terms": {
                "field": "category.keyword",
                "size": 10
            }
        },
        "avg_price": {
            "avg": {
                "field": "price"
            }
        }
    }
})

高级搜索

# 带有高亮和排序的高级搜索
search_response = client.call("es-search", {
    "index": "my_index",
    "query": {
        "multi_match": {
            "query": "搜索关键词",
            "fields": ["title", "content"]
        }
    },
    "highlight": {
        "pre_tag": "<em>",
        "post_tag": "</em>",
        "fields": {
            "title": {},
            "content": {}
        }
    },
    "sort": [
        {"price": { "order": "asc" }}
    ]
})

📚 详细文档

开发

在项目根目录下运行以下命令启动服务器:

python -m elasticsearch_mcp_server

默认情况下,服务器将在 http://localhost:9999 启动。

API 文档

当前支持的 MCP 方法:

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

📄 许可证

本项目的授权遵循 MIT License

依赖项

| 属性 | 详情 | |------|------| | 模型类型 | 为 Elasticsearch 7.x 提供 MCP 协议接口的服务器 | | 训练数据 | 无 | | 依赖环境 | Python 3.10+;Elasticsearch 7.x(推荐使用 7.17.x 版本) |

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端