Elasticsearch/OpenSearch MCP Quickstart
项目概述
elasticsearch-mcp-server
是一个基于 Model Context Protocol (MCP) 的服务器实现,提供了与 Elasticsearch 和 OpenSearch 交互的能力。该服务器允许用户搜索文档、分析索引以及管理集群,通过一系列工具函数实现这些功能。
项目结构
项目主要由以下部分组成:
-
服务器核心 (server.py):
- 定义了
SearchMCPServer
类,负责初始化服务器、创建搜索客户端和注册工具 - 提供了
run_search_server
函数,支持不同的传输协议(stdio、streamable-http、sse) - 包含命令行参数解析功能
- 定义了
-
工具模块 (tools/):
register.py
:定义ToolsRegister
类,负责注册工具到 MCP 服务器index.py
:定义IndexTools
类,提供索引管理工具document.py
:定义DocumentTools
类,提供文档操作工具cluster.py
:定义ClusterTools
类,提供集群管理工具alias.py
:定义AliasTools
类,提供别名管理工具general.py
:定义GeneralTools
类,提供通用 API 请求工具
-
配置文件:
docker-compose-elasticsearch.yml
:用于启动 Elasticsearch 集群docker-compose-opensearch.yml
:用于启动 OpenSearch 集群.env.example
:环境变量示例
工作流程
功能特点
-
索引操作:
- 列出所有索引
- 获取索引信息(映射、设置、别名)
- 创建新索引
- 删除索引
-
文档操作:
- 搜索文档
- 创建或更新文档
- 通过 ID 获取文档
- 删除文档
- 通过查询删除文档
-
集群操作:
- 获取集群健康信息
- 获取集群统计信息
-
别名操作:
- 列出所有别名
- 获取特定索引的别名信息
- 创建或更新别名
- 删除别名
-
通用操作:
- 执行通用 HTTP API 请求
使用方式
-
配置环境变量:
- git clone https://github.com/cr7258/elasticsearch-mcp-server.git
- cd elasticsearch-mcp-server
- 复制
.env.example
到.env
并更新相应的值
-
启动 Elasticsearch/OpenSearch 集群:
# 对于 Elasticsearch docker-compose -f docker-compose-elasticsearch.yml up -d# 对于 OpenSearch docker-compose -f docker-compose-opensearch.yml up -d
以docker-compose -f docker-compose-opensearch.yml up -d
为例
- 运行 MCP 服务器:
- 可以通过 stdio、streamable-http 或 sse 传输协议运行
- 支持配置主机、端口和路径
chatbot测试
配置
示例1
问题:创建一个名为 users 的索引,要求包含 username (文本类型)和 age (整型)字段。
trae:
示例2
问题:Returns basic information about the health of the cluster.
tare:
inspector测试
启动
配置
命令参数
环境变量
token
工具