开源渗透测试管理工具,专为 AI 智能体操作而设计。通过 MCP 将其连接到 Claude Code,它就能与你并肩执行测试任务:范围与资产、侦察观察、方法论覆盖,以及带 CVSS 评分和证据的发现项。
专为那些想要智能体的速度、又不愿放弃真实测试纪律的测试人员打造。工作不会重复,发现项不会在会话之间消失,未经证实的内容绝不会进入报告。

完整文档:https://cspf-founder.github.io/red-clippy/
编码智能体已经成为真正有用的测试工具。它们拥有 shell,运行与你相同的工具链,并且覆盖范围极快。将智能体指向一个目标,它就能发现东西。
然后上下文窗口被填满,测试任务就消失了。下一次会话会重新扫描它已经清理过的主机,重新测试它已经排除的内容,并且无法告诉你范围的哪些部分曾经被触及过。在某个转录记录中,有一个已确认的 SQL 注入漏洞,却没有人记录下来。
Red Clippy 通过给智能体两样它自身不具备的东西来解决这个问题。
一个存放工作成果的地方。 每一项资产、观察、检查和发现项都会在测试进行时落入数据库,而不是停留在滚动缓冲区中。覆盖率变成了一次查询,而不是一段记忆:存在哪些资产,每项资产上哪些检查已通过,哪些已经报告过。明天的会话会从上次停止的地方精确接续。
一套工作规则。 一份红队指令文档会在 MCP 握手中、在智能体做任何事之前送达它:报告前先验证,证明每一项声明,仅获取证明影响所需的最小权限,不触碰第三方系统。可按组织和按测试任务覆盖该文档,因为不同团队和客户之间的内部规则各不相同。
你全程保持掌控。智能体写入的每一条内容都是 Web UI 中的普通记录,你可以审查、更正、重新分类或丢弃。
[!CAUTION] 仅限授权测试。 Red Clippy 面向在测试任务下工作的渗透测试人员。仅测试你拥有或获得明确书面许可评估的系统。范围标记和红队指令的存在是为了让智能体保持在测试规则之内,但它们只是护栏,而非授权。智能体以你的权限行事,你对其所做的一切负责。
从最新发布下载二进制文件并运行。它会初始化数据库并在 127.0.0.1:7337 上提供面板服务。
Linux
tar xzf red-clippy-*-x86_64-unknown-linux-musl.tar.gz
cd red-clippy-*-x86_64-unknown-linux-musl
./red-clippy serve
Windows
解压归档文件,然后在该文件夹中:
.\red-clippy.exe serve
打开 http://127.0.0.1:7337,设置向导会接管后续步骤。
数据库会在你运行二进制文件的目录中创建。上传的证据也存储在那里,位于 red-clippy-storage 中。这两个路径都可以在配置文件中更改,参见配置。
更倾向于自己编译?参见从源码构建。
Red Clippy 将工作分组为组织。一个组织容纳你的渗透测试,每个渗透测试包含该测试任务的资产、发现项和证据。如果你为一家公司测试,一个组织就足够了。如果你为多个客户提供咨询服务,请为每个客户创建独立的组织:一个组织看不到属于另一个组织的任何内容,因此它们的测试任务永远不会混淆。
一个组织有两个名称。显示名称(如“Acme Corp”)是你在面板中看到的名称,之后可以更改。slug(acme)是用于磁盘上证据文件夹的短小写标识符(red-clippy-storage/org_acme/pentest_PT-2026-08-27/),因此一旦设置便固定不变。
你可以属于多个组织,并通过头像菜单在它们之间切换。在每个组织中,你要么是所有者,可以添加和移除人员、重命名或删除组织;要么是成员,负责执行测试任务。
首次启动时数据库为空,因此浏览器会显示设置向导而不是登录表单。它会要求:
它创建的账户是该组织的所有者。向导仅在数据库没有用户时出现;一旦第一个账户存在,它就会被永久禁用,因此之后无法用它创建额外账户。
设置完成后,在应用的头像菜单 > 组织中管理组织和团队成员。
如果没有人能登录,CLI 是恢复的途径:
red-clippy reset-password --username alice --password 'new-one'
预期流程是智能体驱动的。你设置测试任务,然后通过目标与 Claude Code 协作,同时它负责记录。
你负责设置:
然后智能体工作,并边工作边记录:
ingest_tool_output 提交原始扫描器输出,或直接写入资产和观察。你负责监督:
智能体是可选的。它通过面板使用的同一 API 工作,因此它记录的任何内容你也可以在浏览器中自行输入、更正或删除。可以完全手动运行测试任务,完全通过智能体运行,或在过程中随时切换。
这是 Red Clippy 预期的主要使用方式。
red-clippy mcp 覆盖整个应用:范围与资产、观察、方法论覆盖、发现项、证据、攻击图和工具输出摄取。连接的智能体执行测试任务,而不仅仅是回答关于它的问题。
连接时,服务器会在 MCP 握手中将红队指令文档(测试期间行为准则的操作规范)交给客户端,因此它在第一次工具调用之前就已在智能体的上下文中。它按最具体优先的顺序解析:从单次测试任务覆盖,到组织默认值,再到内置文档。在设置 > 红队指令下编辑组织默认值,或从测试任务的设置页面设置单次测试任务覆盖。get_instructions 可按需重新读取。
在设置 > API 密钥下签发一个。其下方的连接 MCP 部分会为你提供每个客户端的即贴即用配置,密钥、此服务器的 URL 和二进制文件自身的路径都已填好。无需手动替换任何内容。
也可以从 CLI 创建密钥,并自行粘贴到代码片段中:
red-clippy create-api-key --username alice --org acme --name laptop
# -> rcl_<prefix>_<secret> (仅显示一次,请立即保存)
claude mcp add red-clippy \
--env RED_CLIPPY_URL=http://127.0.0.1:7337 \
--env RED_CLIPPY_API_KEY=rcl_xxxx_yyyy \
-- /path/to/red-clippy mcp
add 后面的名称只是 Claude Code 显示的标签。-- 后面的命令才是它实际启动的内容,因此请使用二进制文件的完整路径:Claude Code 不一定能在其 PATH 中找到 red-clippy。如果你从面板的连接 MCP 复制命令,正确的路径已经填好。
z.ai 提供兼容 Anthropic 的端点,因此 Claude Code 可以用 GLM 驱动 Red Clippy,而不是 Anthropic 模型。
将此添加到 Claude Code 的设置中:工作文件夹内的 .claude/settings.local.json 可将其限定到单个测试任务,或 ~/.claude/settings.json 可全局应用。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_AUTH_TOKEN": "your-z-ai-api-key",
"ANTHROPIC_API_KEY": "",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.3",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.3",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.3",
"ANTHROPIC_SMALL_FAST_MODEL": "glm-5.3",
"CLAUDE_CODE_SUBAGENT_MODEL": "glm-5.3"
}
}
需要替换两处内容:
your-z-ai-api-key 替换为你自己的密钥。优先使用项目本地的 .claude/settings.local.json,Claude Code 会将其排除在 git 之外,因此密钥不会被提交。glm-5.3 替换为 z.ai 当前提供的任何模型。模型名称会变化,因此请查看 z.ai 的 Claude Code 指南获取当前模型,并将每个条目都设置为它。然后按上述方式添加 MCP 服务器。Red Clippy 不受模型选择的影响:MCP 在客户端运行,因此无论智能体背后是哪个模型,工具行为都完全相同。
按照 Codex CLI 配置,在 ~/.codex/config.toml 中:
[mcp_servers.red-clippy]
command = "/path/to/red-clippy"
args = ["mcp"]
env = { RED_CLIPPY_URL = "http://127.0.0.1:7337", RED_CLIPPY_API_KEY = "rcl_xxxx_yyyy" }
red-clippy mcp 是一个纯 JSON-RPC 2.0 stdio 服务器。它需要环境中两样东西,并接受一个可选的测试任务固定参数:
RED_CLIPPY_URL=http://127.0.0.1:7337 \
RED_CLIPPY_API_KEY=rcl_xxxx_yyyy \
/path/to/red-clippy mcp --pentest PT-2026-Q2-ACME
--pentest 将会话绑定到一个测试任务,这样智能体就不必在每次调用时都指定它。为每个活跃的测试任务运行一个 MCP 入口,并通过切换服务器来切换测试任务。
连接后,你只需说:“向 PT-2026-Q2-ACME 添加一个发现项:/search 中的反射型 XSS,高危,这是 PoC”。
[!NOTE] 你的智能体和
red-clippy serve运行在同一台机器上,这就是RED_CLIPPY_URL指向127.0.0.1的原因。
完整的 MCP 工具面。 与 Web UI 近乎完全对等,而非一个子集。智能体可以创建和界定资产范围、附加观察、标记方法论检查项、提交和更新发现项、上传证据、构建图边,并在整个组织内搜索。
保持干净的范围。 资产是你实际测试的单位:域名、主机、URL、API、移动包、IP 范围。每个资产都带有自己的检查清单、可达性标记和范围内/范围外标志。侦察噪音(发现的路径、技术指纹、证书、wayback URL)作为观察附加到资产上,而不是进入范围列表,并且仅在其值得时才提升为资产。没有这种拆分,一次内容发现运行就会让资产列表变得不可用。
从发现项到报告。 严重程度、带内置计算器的 CVSS 3.1、CWE/CVE、PoC、修复建议和文件证据。跨测试任务仪表板列出组织中的每个发现项及其来源的渗透测试,这是重测所需的视图。
可查询的覆盖率。 135 项内置检查映射到 OWASP WSTG,外加侦察、网络、云和 OSINT 检查。汇总报告显示每个资产和每个测试任务已测试的内容,因此已清理的区域不会被重新测试。

操作规范。 红队指令文档,通过 MCP 提供,按测试任务解析,然后按组织解析,最后是内置默认值。
工具输出摄取。 原始扫描器输出通过单次调用提交,这是智能体将结果从其自身 shell 移入记录的方式。支持 nmap、burp、nessus、openvas、masscan、naabu 和 subfinder 的解析器,并自动检测格式。发现项、侦察和原始输出在一次事务中一起落地。
攻击图。 用自由格式的关系链接任意两个节点,然后遍历邻居或计算它们之间的最短攻击路径。
多租户。 每条记录都属于一个组织。一个用户可以属于多个组织并在不注销的情况下切换,因此客户端数据保持分离。
REST API。 组织范围的 Bearer 密钥,与上述所有内容相同的表面。
可选:内置扫描运行器。 一个便捷工具,用于从扫描页面驱动 subfinder、nmap、masscan 和 naabu,支持每个目标的可恢复覆盖。它专为手动操作员使用而存在,不属于正常的智能体驱动工作流,在该工作流中智能体运行自己的工具并摄取输出。
文档逐屏介绍了所有这些内容,包括 MCP 工具参考、REST API 和数据模型。本 README 涵盖启动和运行。
设置来自 TOML 文件。red-clippy serve 默认读取 ./red-clippy.toml。复制示例并编辑:
cp red-clippy.toml.example red-clippy.toml
bind = "127.0.0.1:7337"
database_url = "sqlite://red-clippy.db?mode=rwc"
storage_root = "./red-clippy-storage" # 上传的证据存储在这里
max_upload_bytes = 26_214_400 # 25 MiB
每个字段也可以通过 CLI 标志或环境变量设置。优先级为CLI 标志 > 环境变量 > TOML > 内置默认值,按字段生效。
| 设置 | CLI 标志 | 环境变量 |
|---|---|---|
bind | --bind | RED_CLIPPY_BIND |
database_url | --database-url | RED_CLIPPY_DATABASE_URL |
storage_root | --storage-root | RED_CLIPPY_STORAGE_ROOT |
max_upload_bytes | --max-upload-bytes | RED_CLIPPY_MAX_UPLOAD_BYTES |
frontend_dist | - | - |
local_open | - | - |
| 配置文件路径 | -c、--config | RED_CLIPPY_CONFIG |
两个设置仅限文件:
frontend_dist 覆盖内置的 SPA。发布二进制文件已嵌入它,因此通常不设置;将其指向一个目录即可提供修补后的包而无需重新编译。local_open 允许文件页面的“在文件管理器中显示”按钮在运行服务器的机器上调用 xdg-open / open / explorer.exe。它默认关闭。仅当服务器是你自己的桌面且处于已登录的图形会话中时才开启,绝不要在 systemd 下或远程提供服务时开启。它无法识别的密钥会在启动时以错误停止,而不是被忽略,因此拼写错误不会让你静默地停留在默认值上。
日志过滤使用 RUST_LOG(默认 info,sqlx=warn)。
运行 red-clippy serve --help 获取完整列表。
[!WARNING] 在本地运行。 Red Clippy 绑定到
127.0.0.1,旨在运行在你自己的机器上,紧邻驱动它的智能体。它并非为暴露到网络或互联网而构建。
red-clippy serve 运行 Web UI 和 REST API
red-clippy mcp 运行 MCP stdio 服务器
red-clippy init-db 应用迁移
red-clippy create-org 创建组织
red-clippy create-user 创建用户
red-clippy add-member 将用户添加到组织
red-clippy reset-password 紧急密码重置
red-clippy create-api-key 签发 API 密钥
为任何子命令添加 --help 以查看其标志。
REST API 位于 /api/v1 下,使用 Authorization: Bearer rcl_<prefix>_<secret> 进行身份验证。密钥是组织范围的,因此没有端点在其 URL 中接受组织。应用内的帮助页面记录了这些端点。
git clone https://github.com/CSPF-Founder/red-clippy.git
cd red-clippy
make all
./target/release/red-clippy serve
make all 先构建 Web UI,然后编译嵌入该包的二进制文件。
[!NOTE] 构建顺序。 React 包在编译时嵌入。单独运行
cargo build --release可以工作,但如果 UI 从未构建过,二进制文件会附带一个占位页面(cargo 会打印警告)。先运行make frontend,或直接使用make all。
原生构建,使用 rustup、MSVC 构建工具和 Node:
npm --prefix frontend ci
npm --prefix frontend run build
cargo build --release
.\target\release\red-clippy.exe serve
或从 Linux 交叉编译,使用 mingw-w64 工具链(apt install gcc-mingw-w64-x86-64):
rustup target add x86_64-pc-windows-gnu
make frontend
cargo build --release --target x86_64-pc-windows-gnu
# -> target/x86_64-pc-windows-gnu/release/red-clippy.exe
将该单个 .exe 复制到 Windows 主机并运行。无需安装其他任何内容。
make help # 列出所有目标
make dev # Vite 开发服务器,将 /api 代理到运行中的后端
make backend-dev # cargo build(debug)
make test # Rust 测试套件
make clippy # 将警告视为错误进行 lint
make install-hooks # 启用 pre-commit clippy 门禁(每个克隆一次)
Debug 构建在运行时从磁盘读取 frontend/dist 而不是嵌入它,因此你可以在不重新编译 Rust 的情况下重建 UI。
在提交拉取请求之前,运行 CI 运行的内容:cargo fmt --all --check、make clippy、make test、make lint 和 make frontend。make install-hooks 将格式化和 lint 门禁接入 pre-commit 钩子。参见 CONTRIBUTING.md 获取更完整的版本,包括如何添加解析器。
在 Cargo.toml 中提升 version,然后推送匹配的标签:
git tag -a v0.2.0 -m "v0.2.0"
git push origin v0.2.0
CI 构建一个静态 Linux 二进制文件和一个 Windows 可执行文件,然后将两者作为带校验和的 GitHub 发布发布。标签必须与 crate 版本匹配,否则构建失败。要排练而不发布,请从 Actions 选项卡手动运行 Release 工作流:它会构建并上传归档文件作为工作流工件,并跳过发布步骤。
欢迎提交错误报告、新工具的解析器和 MCP 覆盖 - 参见 CONTRIBUTING.md。
发现安全问题?请通过 SECURITY.md 私下报告,而不是打开 issue。
版权所有(C)2026 网络安全与隐私基金会
根据 GNU 通用公共许可证 v3.0 发布。本程序绝对不提供任何担保;详情请参见许可证。