日志管理進入「對話式」時代:日志易MCP Server落地實錄

01 背景:MCP協議介紹

在AI蓬勃發展的當下,大型語言模型(LLM)雖展現出強大潛力,卻受困于與外部資源連接的難題。數據分散、接口繁雜,致使AI模型難以靈活對接本地資源與遠程服務,極大限制了其響應質量與工作效率。而就在這一關鍵時刻,MCP Server強勢登場,成為破局的關鍵力量。尤其隨著Manus的火爆出圈,MCP Server也備受矚目,迎來了飛速發展,短短1個多月時間,數量已超5000個。

MCP Server,即模型上下文協議服務器,基于Anthropic公司2024年11月開源的模型上下文協議(MCP)構建,是一款輕量級服務程序。MCP協議采用客戶端-服務器(Client-Server)架構。客戶端(MCP Client)負責與服務器建立穩固連接,并按需發起各類請求;服務器端則精準解析請求,調用對應資源或工具處理任務,再將處理結果及時反饋給客戶端。MCP協議的誕生,旨在攻克AI應用中的數據與接口難題,為開發者提供標準化接口,讓AI模型能夠自由穿梭于本地與遠程資源之間,顯著提升AI助手的表現。下圖是MCP協議的基本交互關系示意圖:

02 OpenAPI2MCPTools開源項目

仔細翻閱當前公開的MCP Server清單可以發現,目前主要的MCP Server集中在桌面端軟件,更多是方便個人用戶和開發者。對企業內部廣泛存在的現有軟件系統,并沒有高效兼容的方案。比如OpenAPI2MCPTools開源項目,看似只需要下面這樣三十行代碼,就可以將現存軟件的OpenAPI規范,快速封裝成MCP Server 的Tools,供AI調用。

import { Server } from '@modelcontextprotocol/sdk/server/index.js';import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';import { Converter } from 'openapi2mcptools';import * as fs from 'fs';import * as yaml from 'js-yaml';const converter = new Converter({ });const yamlContent = fs.readFileSync('Api_5.3_schema.yaml', 'utf8');const my_specs = yaml.load(yamlContent);await converter.load(my_specs);const tools = converter.getToolsList();const toolCaller = converter.getToolsCaller();const server = new Server({ name: 'my_server', version: '1.0.0',}, { capabilities: { tools: {}, },});server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools, };});server.setRequestHandler(CallToolRequestSchema, async (request) => { return await toolCaller(request);});const transport = new StdioServerTransport();await server.connect(transport);

然而,在實際的大規模系統環境下,這個項目存在一個核心問題:當API數量較大時,MCP Server的Tools數量急劇膨脹,遠超大模型能有效處理的上下文窗口極限,會導致AI對話完全不可用。以日志易為例,日志易平臺OpenAPI規范中一共包含了555個API,經過OpenAPI2MCPTools轉換后,就是555個Tools,直接導致問話全部報錯。如下圖所示:

03 日志易MCP Server實現路徑

為了解決這個問題,日志易MCP Server采用了模塊化設計思路,利用OpenAPI規范中的Tag對象作為語義抽象層,構造了MCP Server的模塊初篩和功能復篩工具,實現了對OpenAPI規范的動態加載與按需調用。最終,使得AI對話能夠流暢進行,任意調用日志易API功能,而不會因為上下文窗口的限制而中斷。

日志易MCP Server效果如下圖,AI自主完成了對提問涉及哪些模塊,哪些接口的識別和反思,最終組合Agent和AgentGroup兩個API的查詢結果,給出了正確回答:

04 日志易MCP Server典型應用場景和演進方向

有了MCP Server,系統維護人員只需要在統一的AI會話界面,準確的提出自己的要求,讓AI來自主安排不同MCP Server相互配合,調用適合的Tools,實現最終目的。比如日志易平臺維護工作中,最常見的幾類需求,都可以嘗試MCP Server方案:

NO.1?

涉及用戶及權限管理類的API操作。

NO.2?

數據處理流程中,綜合調用Agent采集、字段提取類API進行一站式處理。

NO.3?

輔助用戶在AI分析過程中,快速查看已存搜索查詢結果,創建對應的統計分析圖表、監控告警規則,甚至聯合其他ITSM系統的MCP Server,響應工單,添加評論等等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91494.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91494.shtml

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

相關文章

django-3模型操作

from django.db import modelsclass Book(models.Model):title models.CharField(max_length200) # 書名author models.CharField(max_length100) # 作者publish_date models.DateField() # 出版日期price models.DecimalField(max_digits10, decimal_places2) # 價格s…

【繪制圖像輪廓】——圖像預處理(OpenCV)

目錄 1 什么是輪廓 2 尋找輪廓 2.1 mode參數 2.2 method參數 3 繪制輪廓 1 什么是輪廓 輪廓是一系列相連的點組成的曲線,代表了物體的基本外形。輪廓是連續的,邊緣不一定連續。輪廓是一個閉合的、封閉的形狀。 輪廓的作用: 形狀分析 目…

嵌入式 Linux 深度解析:架構、原理與工程實踐(增強版)

嵌入式 Linux 深度解析:架構、原理與工程實踐(增強版) 目錄嵌入式 Linux 深度解析:架構、原理與工程實踐(增強版)第一章 嵌入式 Linux 基礎概念1.1 定義與核心特征1.2 典型架構棧深度解析第二章 Linux 文件…

xcode swift項目運行、連接真機運行報錯,引入文件夾失敗

最近亂七八糟解決了很多報錯,看著記錄點吧 xcode版本:16 failed to emit precompiled header ‘/Users/yuqing/Library/Developer/Xcode/DerivedData/cloudspace-ios-ejldldcfhouqnretchuzoewmsqkg/Build/Intermediates.noindex/PrecompiledHeaders/spic…

[python][selenium] Web UI自動化8種頁面元素定位方式

測試工程師必備!Selenium自動化測試全攻略 | 手寫POM框架數據驅動,輕松搞定UI自動化!簡單的加個前置知識: 第一:webdriver.Chrome()這句話,通過WebDriver的構造方法,拿到瀏覽器驅動的對象&…

絲桿支撐座在電子裝配中的關鍵作用

絲桿支撐座是電子裝配過程中不可或缺的組件,主要用于支撐和固定絲桿,確保其穩定性和精度。在高速、高精度裝配場景中,絲桿支撐座的作用尤為突出。穩定性與精度保障:絲桿支撐座采用高品質鋼材制作,具有高剛性和高強度&a…

微信小程序頁面間通信的實現方式

微信小程序中頁面間的通信是指不同頁面之間的數據傳遞、狀態同步或交互操作,常見于多頁面協作場景。根據通信方向和場景不同,主要有以下幾種實現方式:一、基于頁面跳轉的參數傳遞1. 正向傳遞(A頁面到B頁面)通過URL參數…

uniapp開發微信小程序(新舊版本對比:授權手機號登錄、授權頭像和昵稱)

目錄標題授權手機號新舊版本核心差異對比強制使用新版的情況代碼實現方案特殊處理邏輯企業賬號要求最佳實踐建議授權頭像和昵稱新舊版本核心差異對比強制使用新版的情況代碼實現方案最佳實踐建議注意事項授權手機號 新舊版本核心差異對比 觸發方式 舊版(2023年前&…

Java函數式編程之【Stream終止操作】【下】【三】【收集操作collect()與分組分區】【下游收集器】

分組收集器groupingBy():groupingBy()收集器用于按條件對元素象進行分組,并將結果存儲在Map實例中。其作用與數據庫的SQL語句的group by的用法有異曲同工之妙。 分區收集器partitioningBy():partitioningBy()可以看作是分組groupingBy()的特殊…

python設計模式-工廠模式

工廠模式的核心思想:封裝對象創建過程、解耦對象使用與創建 。示例代碼:from enum import Enum# 基類:人類 class Person:species Homo sapiensdef __init__(self, name):self.name namedef __str__(self):return f"{self.__class__._…

Rust:anyhow::Result 與其他 Result 類型轉換

當函數返回的不是 anyhow::Result 而是其他 Result 類型時(如 std::io::Result、serde_json::Result 或自定義 Result),可通過以下方法統一處理錯誤類型,確保與 anyhow 兼容或實現錯誤傳播:🛠? 一、錯誤類…

PLC-梯形圖編程

1.位運算,比較 如&#xff1a;>,<,, 2.定時器 生成脈沖TP&#xff0c;常開觸點閉合觸發&#xff0c;賦值10秒時長&#xff0c;PT配置參數&#xff0c;ET運行時已PT計時 接通延時TON&#xff0c;常開觸點閉合觸發&#xff0c;延時10秒后賦值 關斷延時TOF&#xff0c;常開觸…

LLM學習筆記5——InstructGPT

系列文章目錄 參考文獻 參考文獻 參考文獻 參考視頻 文章目錄系列文章目錄前言目前大模型不同的技術流派與框架路線&#xff1a;1. ??BERT&#xff1a;Encoder-only架構????1&#xff09; 架構特點????2&#xff09; 訓練目標??3&#xff09; ????應用場景2. …

熱能小車cad【12張】三維圖+設計說明書

摘要 無碳小車來自全國大學生工程能力訓練大賽題目&#xff0c;根據“節能減排&#xff0c;綠色出行”的環保理念&#xff0c;提出了一種基于熱力驅動的具有方向自動控制的無碳小車。 本文設計的無碳小車主要是將熱能轉化成機械能&#xff0c;用來驅動小車前進的裝置&#xff0…

云原生 DevOps 實戰之Jenkins+Gitee+Harbor+Kubernetes 構建自動化部署體系

技術背景? 在云原生生態中&#xff0c;工具鏈的選擇直接決定 CI/CD 流水線的效率與穩定性。本次方案的工具組合并非偶然&#xff0c;而是基于各組件的核心優勢與生態適配性&#xff1a;? 代碼管理層&#xff1a;Gitee 作為國內主流的代碼托管平臺&#xff0c;支持 Git 分布…

二建機電工程專業都考哪些知識點?

二建機電工程專業需要考《建設工程施工管理》《建設工程法規及相關知識》和《機電工程管理與實務》三個科目。其中《機電工程管理與實務》是專業科目&#xff0c;也是考試重點&#xff0c;主要考查機電工程技術、機電工程相關法規與標準、機電工程項目管理實務等內容。具體如下…

React + ts + react-webcam + CamSplitter 實現虛擬攝像頭解決win攝像頭獨占的問題

一、安裝 CamSplitter 這塊網上有很多教程了&#xff0c;這里不再贅述&#xff0c;就一點&#xff0c;需要分幾個虛擬攝像頭&#xff0c;就要在CamSplitter 的安裝目錄下 driver_install.cmd 執行幾次。二、React ts react-webcam 調用虛擬攝像頭import { useState, useEffec…

【深度學習①】 | Numpy數組篇

0 序言 本文為NumPy數組庫的系統學習筆記&#xff0c;將自己先前的筆記做一個總結歸納。內容涵蓋數組基礎、創建、索引、變形、運算、函數、布爾型數組及與張量的銜接等內容。通過具體示例解析核心概念與操作&#xff0c;幫助讀者掌握NumPy的使用邏輯與方法&#xff0c;為后續深…

5.實現 call

call 是 JavaScript 中非常核心的函數方法之一。它能改變函數的執行上下文&#xff08;也就是 this 的指向&#xff09;&#xff0c;在日常開發和面試中都極其常見。本文將帶你一步步實現一個 Function.prototype.call 的自定義版本&#xff0c;真正理解它的底層原理。? 一、c…

Go語言中的盲點:競態檢測和互斥鎖的錯覺

&#x1f9e0; Go語言中的盲點&#xff1a;競態檢測和互斥鎖的錯覺 使用 -race 就能發現所有并發問題&#xff1f;加了 mutex 就萬無一失&#xff1f; 這篇文章揭示了 Go 并發編程中的一個“危險盲區” —— 互斥鎖并不能總能保護你免受數據競爭的影響&#xff0c;尤其是在 -ra…