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.pswp.cn/pingmian/85103.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85103.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85103.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Elasticsearch 分布式搜索在聊天記錄檢索中的深度優化》

Elasticsearch 分布式搜索在聊天記錄檢索中的深度優化 引言 在現代聊天應用中,聊天記錄檢索面臨著數據量大、查詢復雜、實時性要求高的多重挑戰。以某社交平臺為例,其聊天記錄每天新增數千萬條,總數據量達百億級,用戶需要在海量…

CSS實現元素撐滿剩余空間的5種方法

CSS實現元素撐滿剩余空間的5種方法 🎨 在日常開發中,我們經常需要讓某個元素占據容器的剩余空間。這是一個常見的布局需求,比如側邊欄主內容區、頭部內容區底部等布局。本文將介紹5種不同的方法來實現這個需求,并分析各種方法的優…

[AI]從零開始的YOLO數據集增強教程

一、前言 不知道大家在訓練YOLO時有沒有遇到過這樣的情況,明明數據集已經準備了很多了,但是YOLO還是不認識某個物品,或者置信度低。那么有沒有辦法讓我們不制作新數據集的情況下讓代碼幫我們生成新的數據集來訓練模型呢?當然有&am…

軟件工程的相關名詞解釋

目錄 1. 軟件生命周期2.開源軟件3.軟件工程4.模塊化原則5.信息隱藏原則6.雙向追蹤7.原型8.軟件需求9.需求工程10.邊界類11.軟件實現(的任務)12.軟件缺陷13.回歸測試14.軟件β版15.軟件部署16.糾正性維護17.改善性維護18.適應性維護19.軟件邏輯老化 1. 軟…

2025.06.17【BUG】|多樣品VCF文件合并技巧及注意事項(以bcftools為例)

文章目錄 [toc]一、合并VCF的常用命令1.1 合并多個bgzip壓縮的VCF文件1.2 使用文件列表合并 二、合并前的準備與注意事項2.1 文件格式要求2.2 樣本名唯一性2.3 檢查文件模式匹配 三、常見報錯與解決方法3.1 報錯:Error: Duplicate sample names (sample1), use --fo…

包含30個APP客戶端UI界面的psd適用于旅游酒店項目

包含30個APP客戶端UI界面的psd適用于旅游酒店項目 此資源包含30個完全可編輯的psd界面組成。內容包括歡迎頁、登錄、注冊、首頁、搜索、側邊菜單、用戶中心、個人介紹、用戶空間、產品詳細信息、酒店預定、天氣情況等各種常用界面,您可以將其用于旅游酒店類的APP應用…

ArrayList源碼分析

目錄 ArrayList簡介 ArrayList和vector的區別(了解即可) ArrayList添加null值 ArrayList和LinkedList區別 ArrayList核心源碼解讀 ArrayList擴容機制分析 一步一分析ArrayList擴容機制 hugeCapacity()方法 System.arraycopy() Arrays.copyOf()方法 …

NX二次開發C#---通過Face找Edges,再通過Edges找Curve

文章介紹了一個名為AskFaceEdge的靜態方法,用于處理3D建模中的邊緣曲線生成。該方法通過NX Open API調用,主要功能是獲取指定面的邊緣并生成相應的曲線。方法接收兩個參數:faceTag(面標簽)和curveLoop(曲線…

設計模式筆記_創建型_工廠模式

1. 工廠模式簡介 工廠模式是一種創建型設計模式,主要用于創建對象實例。 它通過定義一個接口或抽象類來創建對象,而不是直接實例化具體類,從而將對象的創建過程與使用過程分離。 工廠模式通常分為兩種類型: 簡單工廠模式&#x…

2025.6.16總結

工作:今天閉環了個遺留問題。在做專項評估時寫得太簡單,這讓測試經理質疑你的測試質量。如果換位思考,你是測試經理,你該怎么去把握風險和保證產品的質量,就知道寫得太簡單,沒有可信度。 找開發看了下后臺…

記錄:安裝VMware、Ubuntu、ROS2

安裝了VMware,就能夠在Windows系統裝安裝Ubuntu,使用Linux系統。安裝了Ubuntu,就能在里面安裝ROS2,之后寫代碼控制機器人兒。 安裝VMware 我安裝的是16 pro【具體是vmware16.2.4】,下載網站:VMware Works…

將后端數據轉換為docx文件

使用docx npm install docx 按照注釋處理數據并轉換為對應的bolb數據流 <template><Button type"primary" click"handleDocxCreate">{{buttonTitle || "報告生成"}}</Button> </template><script> import {Doc…

數據結構排序算法合集

快排 private static void quickSort(int[] ret) { quick(ret,0,ret.length-1); } private static void quick(int[] ret, int left, int right) { if(left>right) 記一下這里是大于等于 return; int pivot partition(ret,left,right); quick(ret…

【算法筆記】紅黑樹插入操作

紅黑樹插入與調整詳解 一、紅黑樹的五大性質 紅黑樹是一種自平衡的二叉搜索樹&#xff08;BST&#xff09;&#xff0c;其核心特性如下&#xff1a; 顏色屬性&#xff1a;每個節點非紅即黑根屬性&#xff1a;根節點必須為黑色葉子屬性&#xff1a;所有的 NIL 葉子節點都是黑…

認知計算革命:從算法創新到產業落地的AI專業核心應用全景

??一、自動化機器學習&#xff08;AutoML&#xff09;?? ??技術機理與產業實踐深度剖析?? ??神經網絡架構搜索&#xff08;NAS&#xff09;?? 強化學習方案&#xff1a;Google Brain的NASNet采用策略梯度優化卷積單元進化算法方案&#xff1a;DeepMind的AmeobaNe…

篇章十 論壇系統——業務開發——板塊和帖子

目錄 1.板塊 1.1 思路 1.2 實現邏輯 1.3 參數要求 1.4 實現步驟 1.Mapper.xml 2.Mapper.java 3.Service接口 4.Service實現 5.單元測試 6.Controller 7.測試API 8.前后端交互 2.帖子 1.1思路?編輯 1.2 參數要求 ?編輯 1.3 實現步驟 1.Mapper.xml 2.Mapper…

React Native 上線前的準備與企業實戰經驗總結

上線前的準備與企業實戰經驗總結 關鍵要點 熱更新簡化部署&#xff1a;CodePush 和 Expo OTA 允許快速推送 JavaScript 和資源更新&#xff0c;繞過應用商店審核&#xff0c;適合修復 Bug 或小規模功能迭代。監控與分析提升質量&#xff1a;Sentry 提供實時錯誤跟蹤&#xff…

【AI時代速通QT】第一節:C++ Qt 簡介與環境安裝

目錄 前言 一、為什么是 Qt&#xff1f;—— C 開發者的必備技能 二、Qt 的核心魅力&#xff1a;不止于跨平臺 2.1 優雅之一&#xff1a;代碼隔離&#xff0c;清晰明了 2.2 優雅之二&#xff1a;信號與槽&#xff08;Signal & Slot&#xff09;機制 2.3 優雅之三&…

pandas學習筆記

前言 總結才是知識&#xff0c;作者習慣不好&#xff0c;不會總結&#xff0c;導致函數一旦不使用就會忘記怎么使用&#xff0c;特此寫了本文&#xff0c;用于給自己一個復習的資料. 提示&#xff1a;如果你是小白&#xff0c;每個代碼請自己敲打。 一 pandas的介紹 Pandas is…

算法題(力扣每日一題)—改變一個整數能得到的最大差值

給你一個整數 num 。你可以對它進行以下步驟共計 兩次&#xff1a; 選擇一個數字 x (0 < x < 9). 選擇另一個數字 y (0 < y < 9) 。 數字 y 可以等于 x 。 將 num中所有出現 x 的數位都用 y 替換。 令兩次對 num 的操作得到的結果分別為 a 和 b 。 請你返回 a 和 b…