本篇目录
之前使用OpenCode开发了一个服务器运维MCP,见文章:运维人开发自己的第一个MCP(实现ssh连接服务器运维),近期又在woindows上用OpenCode开发了一个轻量级的http、api监控系统基本功能测试完毕但是没有正式使用,就打算使用mcp来帮我部署到虚拟机的centos服务器上。
一、LitVMonitor系统介绍
这是一个用来定期检测网站、api连通性的web系统(前端Vue3、后端Java17),检测时会同时对域名证书进行自动记录及检测,支持检测错误、证书过期/错误、接口超时进行消息通知告警。目前只测试了基础功能,并没有实际跑出来所以就暂不分享程序了。


支持GET、POST请求,以及设置期望关键字等,跟预期匹配则表示检测成功。支持获取、使用变量(这个变量功能还没系统性地测试)。

根据检测任务自动采集域名及证书信息,支持证书到期前提醒。

监控全量记录所有日志,触发频次告警后另行生成告警记录。

二、使用LitSSHmcp部署系统
还是老样子直接在WorkBuddy中新开一个任务来调用mcp部署系统,实际过程不如预想的一帆风顺,中间手动中断介入了几次。
1、触发MCP工具,选择要部署的服务器目标
在WorkBuddy中因为我没直接说明ssh服务器,导致前面没有正确触发这个ssh mcp的调用。

因为这个mcp也是OpenCode开发的,遇到这种问题可以让它继续优化MCP的工具说明,比如使用如下提示词继续mcp开发优化:
工具描述 让调用的智能体也知道 涉及连接服务器、ssh服务器 的可以调用这个mcp获取 服务器配置,比如用户说连接了哪些服务器 时可以通过工具查询展示已配置的服务器连接
2、进行项目部署
在第1步已经能正常连接mcp 查询所有ssh服务器状态了,这时就可以指定服务器开始部署了(部署前我是把LitVMonitor文件夹作为WorkBuddy的本次任务工作目录的)。
先了解这个litvmonitor 项目 然后部署到192.168.1.5服务器上
之所以出现没有使用nginx配置静态网站,应该是我mcp连接服务器使用的是普通账号,查不到root账号启用的nginx服务,所以WorkBuddy就选择了一个使用python托管前端静态网页的方案,其实我已经有安装过nginx,就手动终止了提醒它了。

最终部署成功,它还写了后端服务启动、停止的管理脚本,完成任务结束后WorkBuddy提示我下一步可以继续给指令实现:配开机自启、把前端/后端打包成一键部署脚本、或迁移现有 litv-monitor.db 数据到服务器。


3、mcp的小优化
前面已经完成了项目的部署,感觉这个mcp工具的“说明书”可以再优化下,这样下次其他智能体连接后能更好地使用这个mcp。故继续使用如下提示词让OpenCode优化LitSSHmcp这个mcp项目:
这个mcp 提权工具 使用说明能不能告诉调用的智能体如果判断需要root或超级管理员执行命令可以直接使用提权工具 而不仅仅是遇到命令执行失败后才知道调用;
如果生产使用的话,还是要注意人工把控命令,这个mcp所有提权执行的命令都会弹窗人工审核。

如果拒绝则不会执行相关ssh命令,如下:

至此OpenCode开发的 http监控系统LitVMonitor在虚拟机linux部署成功,而运维mcp也得到了进一步的优化。
发表评论