当前位置: 首页 > news >正文

Elasticsearch/OpenSearch MCP Quickstart

项目概述

elasticsearch-mcp-server 是一个基于 Model Context Protocol (MCP) 的服务器实现,提供了与 Elasticsearch 和 OpenSearch 交互的能力。该服务器允许用户搜索文档、分析索引以及管理集群,通过一系列工具函数实现这些功能。

项目结构

项目主要由以下部分组成:

  1. 服务器核心 (server.py)

    • 定义了 SearchMCPServer 类,负责初始化服务器、创建搜索客户端和注册工具
    • 提供了 run_search_server 函数,支持不同的传输协议(stdio、streamable-http、sse)
    • 包含命令行参数解析功能
  2. 工具模块 (tools/)

    • register.py:定义 ToolsRegister 类,负责注册工具到 MCP 服务器
    • index.py:定义 IndexTools 类,提供索引管理工具
    • document.py:定义 DocumentTools 类,提供文档操作工具
    • cluster.py:定义 ClusterTools 类,提供集群管理工具
    • alias.py:定义 AliasTools 类,提供别名管理工具
    • general.py:定义 GeneralTools 类,提供通用 API 请求工具
  3. 配置文件

    • docker-compose-elasticsearch.yml:用于启动 Elasticsearch 集群
    • docker-compose-opensearch.yml:用于启动 OpenSearch 集群
    • .env.example:环境变量示例

工作流程

工具层
客户端层
elasticsearch
opensearch
IndexTools
DocumentTools
ClusterTools
AliasTools
GeneralTools
SearchClient
用户请求
SearchMCPServer
引擎类型?
Elasticsearch 客户端
OpenSearch 客户端
注册工具
处理用户请求
返回结果

功能特点

  1. 索引操作

    • 列出所有索引
    • 获取索引信息(映射、设置、别名)
    • 创建新索引
    • 删除索引
  2. 文档操作

    • 搜索文档
    • 创建或更新文档
    • 通过 ID 获取文档
    • 删除文档
    • 通过查询删除文档
  3. 集群操作

    • 获取集群健康信息
    • 获取集群统计信息
  4. 别名操作

    • 列出所有别名
    • 获取特定索引的别名信息
    • 创建或更新别名
    • 删除别名
  5. 通用操作

    • 执行通用 HTTP API 请求

使用方式

  1. 配置环境变量

    • git clone https://github.com/cr7258/elasticsearch-mcp-server.git
    • cd elasticsearch-mcp-server
    • 复制 .env.example.env 并更新相应的值
  2. 启动 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为例
在这里插入图片描述

  1. 运行 MCP 服务器
    • 可以通过 stdio、streamable-http 或 sse 传输协议运行
    • 支持配置主机、端口和路径

chatbot测试

配置
在这里插入图片描述

示例1
问题:创建一个名为 users 的索引,要求包含 username (文本类型)和 age (整型)字段。

trae:
在这里插入图片描述

示例2
问题:Returns basic information about the health of the cluster.

tare:
在这里插入图片描述

inspector测试

启动
在这里插入图片描述

配置
命令参数
在这里插入图片描述
环境变量
在这里插入图片描述
token
在这里插入图片描述

工具
在这里插入图片描述

相关文章:

  • C++并发编程-2.C++ 线程管控
  • FPGA基础 -- Verilog 表达式之操作符
  • FPGA基础 -- Verilog语言要素之数组
  • CMake指令:set_property和get_property
  • Tomcat本地部署Maven Java Web项目
  • Spring Boot + MyBatis + Redis Vue3 Docker + Kubernetes + Nginx
  • python大学生志愿者管理系统-高校志愿者管理信息系统
  • C++智能指针(详细解答)
  • 渣土车辆定位与监管:科技赋能城市建筑垃圾管理
  • 小米ROM下载安装
  • Java 常用类 Time API:现代时间处理的艺术
  • 项目的难点
  • 游戏技能编辑器之状态机的设计与实现
  • Visual Studio Code 的 AI 特性:开启智能编程新时代
  • 【图像处理入门】10. 计算机视觉基础:从人脸识别到文档矫正
  • 云计算-Raft算法报告-raft与paxos对比
  • opensuse安装腾讯会议
  • 第七天 Labview进阶(7.4 NI Vision简单使用)
  • OpenCV——图像形态学
  • OpenCV 图像仿射变换之旋转
  • 做内贸注册什么网站/广州网站制作实力乐云seo
  • 全国商城网站建设/国内好的seo
  • 回老家做PHP网站/线上推广外包公司
  • 网站建设需要注意哪些细节/在线seo优化工具
  • 比较好用的免费素材网/郑州seo外包服务
  • 无锡 网站 seo 优化/seo建站技巧