MCP Server 牛刀小試之雷池 MCP

本文作者:小談?wù)?/a>

什么是 MCP

MCP(Model Context Protocol)可以算是當(dāng)下 AI 編程圈子里最火爆的話題之一了。實(shí)際上 MCP 早在 2024 年 11 月就已經(jīng)由 Anthropic 提出,目前我們廣泛接觸到的 MCP 規(guī)范是?2025-03-26 版本。

MCP 是一種用于標(biāo)準(zhǔn)化 AI 模型與本地和遠(yuǎn)程資源進(jìn)行交互的標(biāo)準(zhǔn)協(xié)議。MCP 就像是 AI 應(yīng)用程序的 USB-C 接口,為 AI 模型提供了一種標(biāo)準(zhǔn)化的方式來(lái)連接不同的數(shù)據(jù)源和工具。


MCP 采用的是 C/S 架構(gòu),一個(gè) MCP Host 可以連接到多個(gè) MCP 服務(wù)器,以擴(kuò)展 AI 的能力。


如上圖,在 MCP 中,有這樣幾個(gè)角色。

MCP Hosts: 像 Claude Desktop、IDEs 或 AI 工具這樣的程序,它們希望通過(guò) MCP 訪問(wèn)資源

MCP Clients: 維護(hù)與服務(wù)器 1:1 連接的協(xié)議客戶端

MCP Servers: 輕量級(jí)程序,通過(guò)標(biāo)準(zhǔn)化的 Model Context Protocol 暴露特定功能

Local Resources: 你的計(jì)算機(jī)資源(數(shù)據(jù)庫(kù)、文件、服務(wù)),MCP 服務(wù)器可以安全地訪問(wèn)這些資源

Remote Resources: 通過(guò)互聯(lián)網(wǎng)可用的資源(例如,通過(guò) APIs),MCP 服務(wù)器可以連接到這些資源

MCP 為 LLM 提供的能力不僅僅是工具,但目前大家重點(diǎn)關(guān)注到的是 Tool 能力。今天,我們要做的就是為雷池 WAF 創(chuàng)建一個(gè) MCP Server,以實(shí)現(xiàn)通過(guò) AI 對(duì) WAF 進(jìn)行自動(dòng)化管理。

牛刀小試

雷池自 6.x 開(kāi)始,對(duì)用戶公開(kāi)了 API 能力,用戶可以通過(guò)管理面創(chuàng)建 API Token,這為我們實(shí)踐 MCP Server 創(chuàng)造了一個(gè)有利條件。如下圖,我們創(chuàng)建一個(gè) API Token,后面 MCP Server 中需要進(jìn)行對(duì)應(yīng)的配置。


對(duì)于 MCP 協(xié)議,官方提供了 Python、TypeScript、Java 等語(yǔ)言的 SDK,社區(qū)提供了 Golang 版本的 SDK。我們使用的是 github.com/mark3labs/mcp-go 這個(gè) SDK。

功能實(shí)現(xiàn)

項(xiàng)目的組織結(jié)構(gòu)比較簡(jiǎn)單,main.go 創(chuàng)建了一個(gè) SSE 形式的 MCP SERVER。在 utils 中,定義了和雷池 API 通信的協(xié)議,還有一些輔助函數(shù)。

具體的 MCP 工具定義在 tools 中。

目前已經(jīng)實(shí)現(xiàn)的能力:

創(chuàng)建受保護(hù)的應(yīng)用

獲取證書(shū)

獲取攻擊事件,獲取攻擊記錄

攻擊事件統(tǒng)計(jì)

WAF 防護(hù)網(wǎng)站響應(yīng)碼統(tǒng)計(jì)

常用時(shí)間計(jì)算

項(xiàng)目地址:https://cnb.cool/hex/go-mcp-safeline

開(kāi)始使用

編輯 .env 啟動(dòng)服務(wù)。

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": {

? ? ? ? }

? ? ? }

? ? }

? }

演示

我做了兩個(gè)示例,演示通過(guò) MCP 協(xié)議來(lái)對(duì) WAF 進(jìn)行自動(dòng)化管理。

完整的視頻演示:https://www.bilibili.com/video/BV1aDZWYuEBu/

問(wèn)題 1:今天是三月最后一天了,幫我看看近一個(gè)月,waf 都攔截了哪些攻擊事件?

LLM 分析了用戶的訴求,自主調(diào)用工具計(jì)算當(dāng)前時(shí)間和一個(gè)月前是什么時(shí)候,獲取了所有的攻擊記錄,進(jìn)行匯總并返回給用戶。


問(wèn)題 2:在 waf 上配置了哪些證書(shū)?

LLM 通過(guò)相關(guān)工具獲取了 WAF 上的證書(shū)列表和證書(shū)信息,并返回給了用戶。


后記

在實(shí)現(xiàn) MCP Server 的過(guò)程中,這個(gè)開(kāi)發(fā)的工作量還是比較大的,我們需要了解 API,做好工具規(guī)劃,給每個(gè)變量和函數(shù)寫(xiě)好描述信息。甚至給 MCP 寫(xiě)描述,比項(xiàng)目中寫(xiě)注釋還累。在我的理解下,MCP Server 編程更像是給 LLM 講述工具怎么用的過(guò)程,你既要給夠 LLM 工具,還要給他講明白工具使用背景和使用方法。


雖然 MCP 協(xié)議讓 LLM 和工具解耦,開(kāi)發(fā)工具時(shí)不用關(guān)心具體應(yīng)用在什么 LLM 上,但“好刀更要有一位好廚子”。LLM 作為大腦,不僅需要強(qiáng)大的推理能力,還需要能夠根據(jù)具體場(chǎng)景選擇和規(guī)劃調(diào)用 MCP Server,從而高效調(diào)度工具,最大化發(fā)揮工具的能力。

合理的工具調(diào)用策略,結(jié)合 LLM 的智能調(diào)度,才能真正提升應(yīng)用的智能化水平,使其具備更強(qiáng)的泛化能力和實(shí)用性。

使用?邀請(qǐng)鏈接?或 推薦碼: GVWYWCFHJ6MOHASCEPDTNJV37CSEAU7V 購(gòu)買雷池專業(yè)版、商業(yè)版 WAF,享受專享優(yōu)惠。

擴(kuò)展

liaokongVFX/MCP-Chinese-Getting-Started-Guide

MCP 中文文檔

圖片 Figure_1 引用自:https://habr.com/ru/articles/893482/

圖片 Figure_3 引用自:https://habr.com/ru/articles/893482/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容