WAF规则生成器

一个用于生成、验证和部署CrowdSec WAF规则和场景的模型上下文协议服务器。

  • by crowdsecurity
  • Python
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 crowdsecurity/crowdsec-local-mcp

使用说明

人生苦短,写不出YAML,好好问吧!

模型上下文协议(MCP)服务器,用于生成、验证和部署CrowdSec WAF规则和场景。

特性

WAF规则功能

  • WAF规则生成:根据用户输入或CVE引用生成CrowdSec WAF规则
  • 验证:验证WAF规则的语法正确性
  • 代码检查:获取警告和提示以改进WAF规则
  • 部署指导:逐步部署说明
  • Docker测试工具:启动CrowdSec+nginx+bouncer来练习假阳性/阴性规则
  • 核查找:快速跳转到官方中的现有模板 projectdiscovery/nuclei-templates 给定CVE的存储库

场景特征

  • CrowdSec场景生成:生成CrowdSec场景
  • 验证:验证场景的语法正确性
  • 代码检查:获取警告和提示以改进您的场景
  • 部署指导:逐步部署说明
  • Docker测试工具:启动CrowdSec以测试场景行为

演示

WAF规则创建和测试

场景创建和测试

先决条件

  • 紫外线 0.4或更高版本,提供 uvx 以下示例中使用的runner。
  • 带有Compose插件的Docker(Compose v2)。

安装

您可以使用安装MCP uvx 或 使用包装 .mcpb claude代码文件。

使用 .mcpb 包裹

如果你正在使用 claude desktop,您可以通过双击直接配置MCP .mcpb 发布时附带的文件。

[!重要] 在MacOS上,配置 uv 如果满足以下条件,则扩展设置中的路径 uv 未安装在标准路径中。

使用 uvx

  • 使用自动配置支持的客户端 uvx --from crowdsec-local-mcp init <client>,在哪里 <client> 是其中之一 claude-desktop, claude-code, chatgpt, vscode,或 stdio:
uvx --from crowdsec-local-mcp init --dry-run claude-code

跑 uvx --from crowdsec-local-mcp init --help 查看所有标志和支持的目标。

什么 init 配置

这 init helper将CrowdSec MCP服务器定义写入客户端的JSON配置中:

  • claude-desktop → claude_desktop_config.json 在Claude Desktop设置目录中
  • claude-code → 调用 claude mcp 带有所需参数的命令
  • chatgpt → config.json 在ChatGPT桌面设置目录中
  • vscode → mcp.json 对于VS Code(稳定和内部人员都被检测到)

如果客户端的配置文件已经存在 .bak 在更新MCP服务器块之前创建备份。当文件丢失时,您可以通过 --force 创建它,或指向 --config-path 到自定义位置。合并 --dry-run 使用这些选项可以预览JSON而无需进行任何更改。

默认情况下,CLI会启动服务器 uvx --from crowdsec-local-mcp crowdsec-mcp如果两者都没有 uvx 也不 uv 如果可用,它将回退到您当前的Python解释器;您可以用以下命令覆盖可执行文件 --command 以及工作目录 --cwd.

使用 stdio 目标

stdio 不修改任何文件。相反, init stdio 打印一个可粘贴的JSON代码段,您可以将其放入任何兼容stdio的MCP客户端配置中。当您想手动将服务器连接到尚未内置自动化支持的工具时,这很有用。

故障排除

如果您刚刚通过以下方式安装了mcp扩展 .mcpb 和 uv 或 uvx 不在标准路径中,请检查要配置的扩展设置 uv 路径。

日志记录

  • MCP服务器将其日志文件写入操作系统的临时目录。在Linux/macOS上,这通常是 /tmp/crowdsec-mcp.log;在Windows上,它通过以下方式解析 %TEMP%\crowdsec-mcp.log.