MCP Server 牛刀小试之雷池WAF MCP
本文作者: 小谈谈 ## 什么是 MCP MCP(Model Context Protocol)可以算是当下 AI 编程圈子里最火爆的话题之一了。实际上 MCP 早在 2024 年 11 月就已经由 Anthropic 提出,目前我们广泛接触到的 MCP 规范是 2025-03-26 版本 。 MCP 是一种用于标准化 AI 模型与本地和远程资源进行交互的标准协议。MCP 就像是 AI 应用程序的 USB-C 接口,为 AI 模型提供了一种标准化的方式来连接不同的数据源和工具。 MCP 采用的是 C/S 架构,一个 MCP Host 可以连接到多个 MCP 服务器,以扩展 AI 的能力。 如上图,在 MCP 中,有这样几个角色。 * MCP Hosts: 像 Claude Desktop、IDEs 或 AI 工具这样的程序,它们希望通过 MCP 访问资源
- MCP Clients: 维护与服务器 1:1 连接的协议客户端
- MCP Servers: 轻量级程序,通过标准化的 Model Context Protocol 暴露特定功能
- Local Resources: 你的计算机资源(数据库、文件、服务),MCP 服务器可以安全地访问这些资源
- Remote Resources: 通过互联网可用的资源(例如,通过 APIs),MCP 服务器可以连接到这些资源 MCP 为 LLM 提供的能力不仅仅是工具,但目前大家重点关注到的是 Tool 能力。今天,我们要做的就是为雷池 WAF 创建一个 MCP Server,以实现通过 AI 对 WAF 进行自动化管理。 ## 牛刀小试 雷池自 6.x 开始,对用户公开了 API 能力,用户可以通过管理面创建 API Token,这为我们实践 MCP Server 创造了一个有利条件。如下图,我们创建一个 API Token,后面 MCP Server 中需要进行对应的配置。 对于 MCP 协议,官方提供了 Python、TypeScript、Java 等语言的 SDK,社区提供了 Golang 版本的 SDK。我们使用的是 github.com/mark3labs/mcp-go 这个 SDK。 ## 功能实现 项目的组织结构比较简单,main.go 创建了一个 SSE 形式的 MCP SERVER。在 utils 中,定义了和雷池 API 通信的协议,还有一些辅助函数。 具体的 MCP 工具定义在 tools 中。 目前已经实现的能力: * 创建受保护的应用
- 获取证书
- 获取攻击事件,获取攻击记录
- 攻击事件统计
- WAF 防护网站响应码统计
- 常用时间计算 项目地址: cnb.cool/hex/go-mcp-… ## 开始使用 编辑 .env 启动服务。 ``` TRANSPORT=sse MCPS_ADDR=http://127.0.0.1:8099 SAFELINE_APISERVER=雷池管理端地址,例如 https://1.1.1.1:9443 SAFELINE_APITOKEN=雷池管理端 Token DEBUG=true
在 Cursor 中使用。 ```
{
"mcpServers": {
"mcp-safeline": {
"url": "http://127.0.0.1:8099/sse",
"env": {
}
}
}
}
演示
我做了两个示例,演示通过 MCP 协议来对 WAF 进行自动化管理。 完整的视频演示: www.bilibili.com/video/BV1aD… 问题 1:今天是三月最后一天了,帮我看看近一个月,waf 都拦截了哪些攻击事件? LLM 分析了用户的诉求,自主调用工具计算当前时间和一个月前是什么时候,获取了所有的攻击记录,进行汇总并返回给用户。 问题 2:在 waf 上配置了哪些证书? LLM 通过相关工具获取了 WAF 上的证书列表和证书信息,并返回给了用户。 ## 后记 在实现 MCP Server 的过程中,这个开发的工作量还是比较大的,我们需要了解 API,做好工具规划,给每个变量和函数写好描述信息。甚至给 MCP 写描述,比项目中写注释还累。在我的理解下,MCP Server 编程更像是给 LLM 讲述工具怎么用的过程,你既要给够 LLM 工具,还要给他讲明白工具使用背景和使用方法。 虽然 MCP 协议让 LLM 和工具解耦,开发工具时不用关心具体应用在什么 LLM 上,但“好刀更要有一位好厨子”。LLM 作为大脑,不仅需要强大的推理能力,还需要能够根据具体场景选择和规划调用 MCP Server,从而高效调度工具,最大化发挥工具的能力。 合理的工具调用策略,结合 LLM 的智能调度,才能真正提升应用的智能化水平,使其具备更强的泛化能力和实用性。 使用 邀请链接 或 推荐码: GVWYWCFHJ6MOHASCEPDTNJV37CSEAU7V 购买雷池专业版、商业版 WAF,享受专享优惠。 ## 扩展
- liaokongVFX/MCP-Chinese-Getting-Started-Guide
- MCP 中文文档
- 图片 Figure_1 引用自: habr.com/ru/articles…
- 图片 Figure_3 引用自: habr.com/ru/articles…