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,響應工單,添加評論等等。