MCP Hub
Back to servers

Easysearch

A comprehensive MCP server for INFINI Easysearch (Elasticsearch/OpenSearch compatible) clusters, offering 121 tools for cluster management, index operations, advanced searching (DSL/SQL/KNN), and lifecycle policies.

Stars
2
Tools
121
Updated
Jan 1, 2026
Validated
Jan 11, 2026

Easysearch MCP Server

License Python

让 AI Agent 能够操作 INFINI Easysearch(兼容 Elasticsearch/OpenSearch API)的 MCP 服务器。

特性

  • 🔧 121 个工具 - 覆盖集群、索引、文档、搜索、监控等全部功能
  • 🔌 即插即用 - 支持 Kiro、Claude Desktop 等 MCP 客户端
  • 🔒 安全连接 - 支持 HTTPS 和基础认证
  • 高性能 - 基于 httpx 异步 HTTP 客户端

安装

# 克隆仓库
git clone https://github.com/cloudsmithy/easysearch-mcp-server.git
cd easysearch-mcp-server

# 安装依赖
pip install -e .

快速开始

1. 配置 MCP 客户端

Kiro (.kiro/settings/mcp.json):

{
  "mcpServers": {
    "easysearch": {
      "command": "python3",
      "args": ["-m", "easysearch_mcp.server"],
      "cwd": "/path/to/easysearch-mcp-server/src",
      "env": {
        "EASYSEARCH_URL": "https://localhost:9200",
        "EASYSEARCH_USER": "admin",
        "EASYSEARCH_PASSWORD": "your-password",
        "PYTHONPATH": "/path/to/easysearch-mcp-server/src"
      }
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "easysearch": {
      "command": "python3",
      "args": ["-m", "easysearch_mcp.server"],
      "cwd": "/path/to/easysearch-mcp-server/src",
      "env": {
        "EASYSEARCH_URL": "https://localhost:9200",
        "EASYSEARCH_USER": "admin",
        "EASYSEARCH_PASSWORD": "your-password",
        "PYTHONPATH": "/path/to/easysearch-mcp-server/src"
      }
    }
  }
}

注意:将 /path/to/easysearch-mcp-server 替换为实际的项目路径

2. 开始使用

配置完成后,AI Agent 就可以直接操作 Easysearch 了:

  • "查看集群健康状态"
  • "创建一个 products 索引"
  • "搜索价格大于 100 的商品"
  • "统计每个分类的订单数量"

工具列表

集群管理 (8)

工具说明
cluster_health集群健康状态
cluster_stats集群统计信息
cluster_state集群状态详情
cluster_settings获取集群设置
cluster_update_settings更新集群设置
cluster_pending_tasks待处理任务
cluster_allocation_explain分片分配解释
cluster_reroute手动路由分片

索引管理 (25)

工具说明
index_create创建索引
index_delete删除索引
index_exists检查索引是否存在
index_get获取索引详情
index_get_mapping获取映射
index_put_mapping更新映射
index_get_settings获取设置
index_put_settings更新设置
index_open打开索引
index_close关闭索引
index_refresh刷新索引
index_flush刷盘
index_forcemerge强制合并段
index_clear_cache清除缓存
index_stats索引统计
index_segments段信息
index_recovery恢复状态
index_shard_stores分片存储信息
index_set_readonly设置只读(clone/split/shrink 前置条件)
index_prepare_for_shrink准备收缩(shrink 前置条件)
index_create_with_write_alias创建带可写别名的索引(rollover 前置条件)
index_clone克隆索引
index_split拆分索引
index_shrink收缩索引
index_rollover滚动索引

别名管理 (4)

工具说明
alias_get获取别名
alias_create创建别名
alias_delete删除别名
alias_actions批量别名操作

模板管理 (3)

工具说明
template_get获取模板
template_create创建模板
template_delete删除模板

文档操作 (11)

工具说明
doc_index写入文档
doc_get获取文档
doc_exists检查文档是否存在
doc_delete删除文档
doc_update更新文档
doc_bulk批量操作
doc_bulk_simple简化批量写入
doc_mget批量获取
doc_source获取文档源
doc_delete_by_query按查询删除
doc_update_by_query按查询更新

搜索功能 (15)

工具说明
searchDSL 搜索
search_simple简单关键词搜索
search_template模板搜索
msearch多重搜索
count文档计数
validate_query验证查询
explain解释评分
aggregate聚合查询
aggregate_simple简化聚合
scroll_start开始滚动搜索
scroll_next获取下一批
scroll_clear清除滚动上下文
field_caps字段能力
knn_search向量搜索
sql_querySQL 查询

CAT API (19)

工具说明
cat_health集群健康
cat_nodes节点列表
cat_indices索引列表
cat_shards分片分布
cat_allocation磁盘分配
cat_thread_pool线程池状态
cat_master主节点信息
cat_segments段信息
cat_count文档计数
cat_recovery恢复状态
cat_pending_tasks待处理任务
cat_aliases别名列表
cat_templates模板列表
cat_plugins插件列表
cat_fielddataFielddata 使用
cat_nodeattrs节点属性
cat_repositories快照仓库
cat_snapshots快照列表
cat_tasks任务列表

节点管理 (5)

工具说明
nodes_info节点信息
nodes_stats节点统计
nodes_hot_threads热点线程
nodes_usage功能使用统计
nodes_reload_secure_settings重载安全设置

快照管理 (10)

工具说明
snapshot_repo_create创建仓库
snapshot_repo_get获取仓库
snapshot_repo_delete删除仓库
snapshot_repo_verify验证仓库
snapshot_create创建快照
snapshot_get获取快照
snapshot_status快照状态
snapshot_delete删除快照
snapshot_restore恢复快照
snapshot_clone克隆快照

快照生命周期管理 SLM (6)

工具说明
slm_policy_create创建策略
slm_policy_get获取策略
slm_policy_delete删除策略
slm_policy_explain解释策略
slm_policy_start启动策略
slm_policy_stop停止策略

任务管理 (3)

工具说明
tasks_list任务列表
tasks_get任务详情
tasks_cancel取消任务

Ingest Pipeline (6)

工具说明
pipeline_get获取 Pipeline
pipeline_create创建 Pipeline
pipeline_delete删除 Pipeline
pipeline_simulate模拟 Pipeline
ingest_statsIngest 统计
ingest_processor_grokGrok 模式列表

ILM 索引生命周期管理 (5)

工具说明
ilm_policy_get获取 ILM 策略
ilm_policy_create创建 ILM 策略
ilm_policy_delete删除 ILM 策略
ilm_add_policy给索引绑定 ILM 策略
ilm_remove_policy从索引移除 ILM 策略

其他 (1)

工具说明
reindex重建索引

使用示例

集群监控

查看集群健康状态
→ cluster_health()

查看所有节点
→ cat_nodes()

查看线程池状态
→ cat_thread_pool()

按大小排序查看索引
→ cat_indices(sort_by="store.size", order="desc")

索引操作

创建索引
→ index_create("products", 
    mappings={"properties": {"name": {"type": "text"}, "price": {"type": "float"}}},
    settings={"number_of_shards": 3})

写入文档
→ doc_index("products", {"name": "iPhone", "price": 999})

批量写入
→ doc_bulk_simple("products", [
    {"name": "iPad", "price": 799},
    {"name": "MacBook", "price": 1299}
])

搜索查询

简单搜索
→ search_simple("products", "iPhone")

DSL 搜索
→ search("products", query={
    "bool": {
        "must": [{"match": {"name": "phone"}}],
        "filter": [{"range": {"price": {"lte": 1000}}}]
    }
})

聚合统计
→ aggregate("orders", aggs={
    "by_status": {"terms": {"field": "status"}},
    "avg_amount": {"avg": {"field": "amount"}}
})

SQL 查询
→ sql_query("SELECT * FROM products WHERE price > 500 ORDER BY price DESC")

索引克隆/拆分/收缩

# 克隆索引(需要先设置只读)
→ index_set_readonly("my-index", True)
→ index_clone("my-index", "my-index-clone")
→ index_set_readonly("my-index", False)

# 收缩索引(需要准备)
→ index_prepare_for_shrink("my-index")
→ index_shrink("my-index", "my-index-shrunk", {"index.number_of_shards": 1})

# 滚动索引(需要可写别名)
→ index_create_with_write_alias("logs-000001", "logs")
→ index_rollover("logs", conditions={"max_docs": 1000000})

环境变量

变量说明默认值
EASYSEARCH_URLEasysearch 地址https://localhost:9200
EASYSEARCH_USER用户名admin
EASYSEARCH_PASSWORD密码-

开发

# 克隆仓库
git clone https://github.com/cloudsmithy/easysearch-mcp-server.git
cd easysearch-mcp-server

# 安装依赖
pip install -e .

# 运行测试
pytest

# 代码格式化
black src/
ruff check src/

兼容性测试

所有 121 个工具已在 INFINI Easysearch 上完成测试验证:

分类工具数状态
集群管理8✅ 全部通过
索引管理25✅ 全部通过
别名管理4✅ 全部通过
模板管理3✅ 全部通过
文档操作11✅ 全部通过
搜索功能15✅ 全部通过
CAT API19✅ 全部通过
节点管理5✅ 全部通过
快照管理10✅ 全部通过
SLM6✅ 全部通过
任务管理3✅ 全部通过
Ingest Pipeline6✅ 全部通过
ILM5✅ 全部通过
其他1✅ 全部通过

注意:快照和 SLM 功能需要服务器配置 path.repo 才能创建仓库。

许可证

MIT License

Reviews

No reviews yet

Sign in to write a review