日志管理进入「对话式」时代:日志易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,响应工单,添加评论等等。