gen0sec/mcp-server
GitHub: gen0sec/mcp-server
一个MCP服务器,允许LLM基于实时模式和CVE模板生成、验证WAF规则,实现安全自动化配置。
Stars: 1 | Forks: 0
## 面向智能体LLM的WAF与智能防火墙规则生成
一个**MCP服务器**,允许LLM基于实时模式和真实CVE漏洞利用模板(而非猜测)来编写、验证和测试[Wirefilter](https://github.com/cloudflare/wirefilter) WAF和智能防火墙规则。
**功能:**
- **通过真实引擎验证规则** — 表达式通过Wirefilter规则验证器API进行检查(并可选择进行测试匹配),从而让模型获得真实的通过/失败反馈,而非臆断
- **基于实时模式进行生成** — 直接从规则验证器提供权威的操作/表达式/字段/函数/运算符/值,确保生成的规则使用实际存在的字段
- **获取真实漏洞利用上下文** — 从多个来源(GitHub上的Nuclei开源版、通过ProjectDiscovery API获取的Nuclei付费版)获取CVE索引的Nuclei模板,为基于CVE的规则生成提供信息
- **自动更新** — 后台定期刷新Wirefilter上下文和CVE模板仓库
## 快速开始
### Claude Desktop(捆绑包)
```
# 前提条件: uv 和 mcpb (npm install -g @anthropic-ai/mcpb)
mcpb pack # produces gen0sec-mcp-server.mcpb
```
打开生成的`gen0sec-mcp-server.mcpb`文件 — Claude Desktop会在大约一分钟内安装完成,之后工具、资源和提示即可使用。
### Cursor IDE — 本地(stdio)
添加到`~/.cursor/mcp.json`(Windows系统为`%USERPROFILE%\.cursor\mcp.json`):
```
{
"mcpServers": {
"waf-rule-mcp": {
"command": "uv",
"args": [
"run",
"--project", "/absolute/path/to/mcp-server",
"/absolute/path/to/mcp-server/server/main.py"
],
"env": {
"WAF_VALIDATION_API_URL": "https://public.gen0sec.com/v1/waf/validate"
}
}
}
}
```
`WAF_VALIDATION_API_URL`是可选的 — 如果未设置,则使用`server/config.yaml`中的值。重启Cursor以应用更改。
### Docker(HTTP)
```
docker build -t waf-rule-mcp .
docker run -p 8000:8000 waf-rule-mcp
```
然后将你的MCP客户端指向它:
```
{
"mcpServers": {
"waf-rule-mcp": { "url": "http://localhost:8000" }
}
}
```
## MCP 接口
### 工具
| 工具 | 用途 |
|---|---|
| `fetch_cve_vulnerability_template` | 从首选来源(Nuclei开源版或Nuclei付费API)检索CVE索引的漏洞模板 |
| `fetch_cve_from_all_sources` | 从**所有**启用的来源获取CVE模板以进行跨源比较 |
| `list_cve_sources` | 列出已注册的CVE源插件及其状态 |
| `validate_waf_expression` | 验证Wirefilter规则表达式(`rule_type`选择模式) |
| `validate_waf_expression_with_tests` | 验证Wirefilter规则并将其与测试数据匹配(如果未提供则使用模拟数据) |
| `get_waf_context` | 从Wirefilter文档获取WAF上下文:操作、表达式、字段、函数、运算符、值 |
| `get_rule_fields` | 直接从规则验证器获取实时、权威的Wirefilter字段/函数模式 |
### 资源
| URI | 参考 |
|---|---|
| `wafcontext://actions` | 规则语言中可用的操作 |
| `wafcontext://expressions` | 规则语言中可用的表达式 |
| `wafcontext://fields` | 规则语言中可用的字段 |
| `wafcontext://functions` | 规则语言中可用的函数 |
| `wafcontext://operators` | 规则语言中可用的运算符 |
| `wafcontext://values` | 规则语言中可用的值 |
### 提示
| 提示 | 从…生成规则 |
|---|---|
| `natural_waf_rule_generation_prompt` | 自然语言描述 |
| `cve_waf_rule_generation_prompt` | CVE索引 |
| `smart_firewall_rule_generation_prompt` | 自然语言描述,作为L3/L4 + JA4智能防火墙规则(不使用`http.*`字段;`block`/`allow`操作) |
## 架构
```
flowchart TD
LLM([Agentic LLM / MCP client]) <--> MCP
subgraph MCP[Gen0Sec WAF Rule MCP Server]
T[Tools]
R["Resources
wafcontext://*"]
P[Prompts]
RU[Resource updater
periodic refresh]
end
T -->|validate / fields| RV[Wirefilter rules-validator API]
R -->|live schema| RV
T -->|CVE templates| CS
subgraph CS[CVE sources]
N1[Nuclei Open Source
GitHub]
N2[Nuclei Paid
ProjectDiscovery API]
end
RU -.refreshes.-> CS
RU -.refreshes.-> RV
```
## 文档
| | |
|---|---|
| [Gen0Sec文档](https://docs.gen0sec.com/) | 产品文档和指南 |
| [`server/config.yaml`](server/config.yaml) | 验证API URL、CVE源开关、更新间隔 |
| [`manifest.json`](manifest.json) | Claude Desktop捆绑包清单和用户可配置选项 |
| [Wirefilter](https://github.com/cloudflare/wirefilter) | 此服务器目标规则表达式语言 |
## 致谢!
- 感谢[Cloudflare](https://github.com/cloudflare) 提供Wirefilter
- 感谢[ProjectDiscovery](https://github.com/projectdiscovery/nuclei-templates) 提供Nuclei模板
标签:CVE漏洞模板, GPT, LLM智能体, MCP服务器, WAF规则, Wirefilter, 实时Schema, 智能防火墙, 漏洞管理, 网络安全, 规则测试, 规则生成, 规则验证, 请求拦截, 逆向工具, 防火墙规则, 隐私保护