当前位置: 首页 > 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
在这里插入图片描述

工具
在这里插入图片描述

http://www.lryc.cn/news/571393.html

相关文章:

  • 日本生活:日语语言学校-日语作文-沟通无国界(2):回忆深刻的生日
  • threejs webVR获取相机正前方向量
  • 【保姆级】讯飞ROS智能车 Debian系统 U盘克隆/恢复教程
  • Spring Boot启动流程深度解析(源码级剖析)
  • 键盘动作可视化技术浅析:如何做到低延迟显示
  • word如何插入高清晰的matlab绘图
  • 【数据分析三:Data Storage】数据存储
  • Kafka数据写入流程源码深度剖析(Broker篇)
  • Python训练营打卡Day50
  • Linux网络配置工具ifconfig与ip命令的全面对比
  • 游戏技能编辑器之状态机的设计与实现
  • 攻防世界[level7]-Web_php_wrong_nginx_config
  • 一次生产故障引发的JVM垃圾回收器选型思考:彻底掌握垃圾回收原理及通用配置!
  • 在 Java 中操作 Map时,高效遍历和安全删除数据
  • Arrays.asList() 的不可变陷阱:问题、原理与解决方案
  • FPGA 43 ,UDP 协议详细解析( FPGA 中的 UDP 协议 )
  • 升级OpenSSL和OpenSSH 修复漏洞
  • 多组件 flask 项目
  • 数据库新选择?KingbaseES在线体验详解
  • Patch Position Embedding (PPE) 在医疗 AI 中的应用编程分析
  • 工业 AI Agent:智能化转型的核心驱动力
  • 计算机网络学习笔记:TCP流控、拥塞控制
  • taro小程序如何实现新用户引导功能?
  • 【数据结构】图论实战:DAG空间压缩术——42%存储优化实战解析
  • AI大模型初识(一):AI大模型的底层原理与技术演进
  • 数据库系统概论(二十)数据库恢复技术
  • Linux Kernel崩溃分析的法宝:Kdump+Crash(上)
  • 暴雨服务器成功中标洪湖市政府框架采购项目
  • 汽车 CDC威胁分析与风险评估
  • 解锁VSCode:从入门到精通的全攻略