96SEO 2026-05-07 11:04 1
每逢长假,总有几件事被迫推迟:旅游、聚会,甚至是那段埋在脑后却一直想实现的小工具。五一刚结束,我把它写好的Log‑MCP正式推向公众。下面我把这段历程、技术细节以及使用心得dou倾囊相授,供同路人参考。

事情要追溯到去年春天。一次线上会议后同事随口问:“Neng不Neng直接在聊天窗口里把出错的日志给我?”那时我正苦恼于:
运维要先开通权限,再手动 SSH;
grep 命令每次dou要敲好几遍;
找不到合适的时间窗口,只Neng等到第二天。
于是脑洞大开:Ru果让 AI 把自然语言转成对应的 grep 命令,是不是就Neng省掉这些繁琐步骤?于是诞生了Zui初的原型——一个基于 MCP 协议、Neng够接受自然语言并返回匹配行的服务。
Log‑MCP 的核心价值到底是什么? 1️⃣ “对话式”检索,让技术与业务对齐geng自然举个真实案例:生产环境里突然出现了“订单丢失”的告警。我只需要在 Claude Code里说一句:
"帮我查一下昨天 12:00 到 14:00 之间所有包含 OrderLost 的错误日志"
AI 会自动:
解析时间范围与关键词;
挑选配置好的服务器节点;
构造安全的 grep 命令并通过 SSH 执行;
把结果回传给对话框。
整个过程从发起请求到得到答案,通常不超过 2 秒——相比传统方式的 5~10 分钟,有着天壤之别。
2️⃣ 统一入口,免除权限碎片化困扰MCP 使用 SSH 私钥进行身份校验,一次配置后即可跨多个机器统一调用。团队内部再也不需要每个人去申请不同机器的账号,只要拥有私钥即可安全访问。
3️⃣ 开箱即用,兼容多种 AI 平台目前Yi经在 Claude Code、ChatGPT以及本地 LLM 环境中完成验证。只要遵循简单的 JSON 配置文件格式,即可快速接入。
MCP 协议背后的技术栈简述写代码的时候,我常常觉得自己像是给老旧系统装上了新皮肤。下面列出 Log‑MCP 所依赖的重要库和它们为何被挑选:
Java 17+ — 稳定且生态完备。
Apache MINA SSHD — 原生支持非阻塞 SSH,会话管理轻松搞定。
Apache Commons Pool2 — 为每台服务器维护可复用连接池,显著降低建立握手耗时。
Jackson — JSON 序列化/反序列化毫秒级完成。
SFL4J + Logback — 日志自带滚动、分级输出,让调试过程不再“kan不见”。
一步步把 Log‑MCP 落地 . 克隆源码 & 编译打包git clone https://github.com/caijianying/log-mcp.git
cd log-mcp
mvn clean package -DskipTests
# 打包后得到 target/log-mcp-*.jar
. 编写服务器清单
{
"servers": ,
"logLevels": ,
"logFilePattern":"{level}/log-{level}-{date}.log"
}
. 启动服务 —— 推荐 STDIO 模式
java -Dssh.cert.path=/home/user/.ssh/id_rsa \
-Dlog.config=/path/to/config.json \
-jar target/log-mcp-1.0.jar \
--mode stdio
# 稍等片刻,终端会出现 “MCP ready” 提示。
. 在 AI 助手里调用
以 Claude 为例,只需在对话框输入:
"帮我把 prod 上Zui近半小时内所有 error 等级的日志打印出来"
A I 会自动向本地运行的 MCP 服务发送请求,返回类似:
2026-05-06T13:42:18.123 ERROR OrderService - OrderLostException: orderId=12345 2026-05-06T13:44:02.987 WARN CacheManager - 缓存失效导致数据回滚 ... 共计 27 条记录踩坑记录 & 那些“小插曲”
#1 私钥权限过宽导致 SSH 警告:
当第一次运行报错:“WARNING: UNPROTECTED PRIVATE KEY FILE!” 时只需要
chmod 600 ~/.ssh/id_rsa
启动即可顺利连上。
#2 每次查询重新建连太慢: 初版每次执行 grep dou会重新握手,大约耗时 800ms。引入 Apache Commons Pool2 后同一台机器Zui多保持5条活跃连接,后续查询平均耗时降至 <100ms。
#3 Shell 注入隐患:
若直接拼接用户输入,如
String cmd = "grep '" + keyword + "' "+logFile;
攻击者Ke以注入 ; rm -rf / …… 为此我们实现了统一转义工具:
public static String escape{
if return "";
return "'" + raw.replace + "'";
}
#4 STDIO 模式下打印调试信息会破坏协议: 错误Zuo法是直接使用 System.out.println,这会导致客户端解析异常。正确Zuo法是将调试信息写入独立文件或使用 logger 输出到文件,然后通过 tail 查kan。
#5 配置文件路径写错导致服务启动失败: 启动脚本里 -Dlog.config 必须指向实际存在的 JSON,否则程序抛出 FileNotFoundException 并退出。
安全防护措施
✅仅支持私钥登录,不接受密码方式;
✅路径遍历过滤:禁止出现 “../” 或 “..\\”;
✅Shell 参数全部经过 escape 包装;
✅只读模式:禁止执行任何写文件或删除操作;
✅输入长度与字符集限制,防止恶意超长请求耗尽资源;
✅审计日志:所有请求均记录在 /var/log/mcp_audit.log 中,可供追溯。
小结 —— 从“想法”到“落地”只用了三周站在五一假期尾声,我把这套解决方案完整开源,并放到了 GitHub()。截至目前Yi有近百颗星标和数十条 Issue,每一次交流dou让我感受到社区力量——正是这种热情,让原本孤军奋战的小工具变得值得自豪。
If you find this article helpful, please click 👍 , bookmark it or share it with your teammates. 有任何疑问或想一起改进功Neng,dou欢迎在仓库提 Issue 或者直接留言讨论!祝大家开发顺畅、假期愉快 🎉 。
©2026 小白菜技术博客 | 保留所有权利 | 如需转载请注明出处顺手翻翻自己的笔记本,又发现去年买的大模型教程还没kan完……于是决定今天先把 Log‑MCP 的 README 再读两遍,以防遗漏细节。
"今天的咖啡味道真好",窗外微风拂过键盘声,这种宁静恰恰是写代码Zui好的陪衬。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback