MCP 服务器,让 AI 助手能够驱动自托管的 Sn1per 安装,运行限定范围的、经过审计的扫描,并以结构化数据返回发现结果、端口、子域名和技术信息。
通过你的 AI 助手驱动自托管的 Sn1per:范围受控、可审计,仅用于授权测试。
仅用于授权的安全测试。仅在你拥有或获得书面明确许可进行测试的系统上使用 Sn1per MCP 服务器,并且不得超出该许可的范围。
状态: beta(0.9.x)。工具名称、参数和输出字段遵循 0.x 版本的兼容性承诺。
Sn1per MCP 服务器将你正在使用的 AI 助手连接到你自己 Linux 主机上的 Sn1per 安装。它通过 stdio 在 Sn1per 旁边本地运行,拒绝针对你所配置范围之外目标的扫描请求(参见限制),在本地审计日志中记录它执行的每一次扫描、取消、删除和导出请求,并以结构化数据的形式返回 Sn1per 的发现结果、开放端口、子域名和技术信息,默认对敏感信息进行脱敏。它支持 Sn1per 社区版 9.x 以及 SE、Professional 和 Enterprise 所使用的 11.x 引擎;版本矩阵列出了已验证的内容。它基于 Apache-2.0 许可证免费开源,仅用于授权的安全测试。
该服务器在你的主机上与 Sn1per 一起运行:战利品留在那里,工具结果仅通过你的 MCP 客户端及其使用的模型服务离开主机。请阅读数据处理与隐私了解哪些内容会离开主机。
Sn1per 负责扫描。Sn1per MCP 服务器让你正在使用的 AI 助手来驱动它。通用工具运行器 MCP 服务器暴露的是单个命令。Sn1per MCP 服务器驱动 Sn1per 编排的扫描模式并返回其结构化结果,同时具备范围强制和审计日志。
将 <user> 替换为运行你的 MCP 客户端的用户。env 文件是规范配置,因此 --check 看到的内容与客户端将运行的完全一致。
安装 pipx,然后以该用户身份安装服务器(切勿使用 sudo 运行 pipx):
sudo apt install pipx
pipx ensurepath
# open a new shell, then:
pipx install sn1per-mcp==0.9.0
创建环境文件 /home/<user>/.config/sn1per-mcp/env,权限模式为 0600:
mkdir -p /home/<user>/.config/sn1per-mcp
install -m 0600 /dev/null /home/<user>/.config/sn1per-mcp/env
将此行放入其中,然后将占位符替换为你获授权测试的目标。占位符本身会被拒绝(scope_invalid),因此在你替换之前不会扫描任何内容。
SNIPER_MCP_SCOPE=<authorized-targets>
检查配置。输出中包含 sudo 规则必须指定的 Sn1per CLI 的 realpath:
/home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env --check
使用该真实路径(标准安装下为 /usr/share/sniper/sniper)添加 sudoers drop-in 文件。如果客户端以 root 身份运行,请跳过此步骤。完整步骤:docs/install.md。
sudo visudo -f /etc/sudoers.d/sn1per-mcp
<user> ALL=(root) NOPASSWD: /usr/share/sniper/sniper
将服务器注册到 Claude Code(其他客户端:docs/clients.md):
claude mcp add sn1per -s user -- /home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env
启动一个新的客户端会话并询问:“Run sniper_status”。
仅列出通过 0.9.0 客户端测试(2026-10-12)的客户端。配置路径、审批设置及各客户端注意事项见 docs/clients.md。
| 客户端 | 状态 | 删除和导出工具(需要 MCP elicitation) |
|---|---|---|
| Claude Code (2.1.284) | 已验证 | 是,在交互式会话中;不带 SDK 主机的 claude -p 会取消确认,因此不会删除或导出任何内容 |
| Codex CLI (0.125.0) | 仅在 codex exec 中验证 | 在 codex exec 中为否,它会拒绝确认;交互式 Codex 界面尚未测试 |
| Web、移动端和远程连接器客户端 | 0.9.0 不支持(仅 stdio) | 不适用 |
Claude Code: 快速开始中的单行命令(第 5 步)。Codex CLI: config.toml 条目,以及 export_workspace 在那里所需的审批设置,见 docs/clients.md。其他启动本地 stdio 服务器的客户端尚未在 0.9.0 上测试。
Sn1per 在另一台机器上,或者你的客户端在 macOS 或 Windows 上?SSH 方案(已用 Linux OpenSSH 客户端验证;Windows 和 macOS 客户端已记录,未验证)、WSL2(已记录,未验证)和 Docker 方案(已记录,未验证)见 docs/remote.md。
服务器从主机上的 Sn1per CLI 检测版本和引擎。“已验证”表示已由 2026-10-12 的 0.9.0 验证运行实际执行;“预期”表示没有已知阻碍,但未实际执行。各工具结果、已运行的扫描模式以及运行后所做的修复,连同模式表和每个版本的说明,见 docs/editions.md。
| 版本 | 引擎方言 | 状态 |
|---|---|---|
Sn1per Community Edition 9.2(仓库 master 位于 a5450bc) | 9.x | 2026-10-12 已验证,服务器以 root 身份运行 |
| 后续 Sn1per Community Edition 9.x 版本 | 9.x | 预期 |
| Sn1per SE 11.0 和 11.1 | 11.x | 2026-10-12 已验证(11.0 以 root 身份和通过 sudo 以普通用户身份,11.1 以 root 身份) |
| Sn1per Enterprise,11.3 开发构建 | 11.x | 2026-10-12 已验证,通过 sudo 以普通用户身份 |
| 其他 11.x 版本,包括 11.2 | 11.x | 预期 |
| Sn1per Professional 2026 | 11.x | 使用与 SE 和 Enterprise 相同的 11.x 引擎;尚未在 Professional 安装上运行 |
| Sn1per Community Edition 低于 9.2 | - | 不支持 |
平台: 仅限 Linux。已在 Kali Rolling (amd64) 上验证。Ubuntu 24.04:安装和 MCP 会话已验证(未在 Ubuntu 上运行扫描)。Debian 12 和 13 以及 Parrot:预期。Ubuntu 22.04 和 Kali 2022.x:仅在 uv 管理的 Python 或单独安装的 Python 3.11 或更高版本下预期;其系统 Python 3.10 会被拒绝。BlackArch:预期;需要在 PATH 上有 sniper 符号链接。arm64:预期。macOS 和 Windows 不支持作为服务器主机;请通过 SSH 将它们用作客户端主机(docs/remote.md)。
完整参数、示例结果和错误代码:docs/tools.md。
| 工具 | 功能 | 只读或改变状态 | 可用性 |
|---|---|---|---|
sniper_status | 报告检测到的版本、可用的扫描模式、已配置的范围以及扫描可能不可用的原因 | 只读 | 始终 |
list_workspaces | 列出主机上的 Sn1per loot 工作区 | 只读 | 始终 |
scan_status | 报告扫描的状态和经过脱敏的日志尾部,或工作区中是否有任何内容在运行 | 只读 | 始终 |
get_findings | 读取发现项,包含严重性、标题、位置和主机 | 只读 | 始终 |
get_ports | 读取开放端口,包含协议、服务和版本 | 只读 | 始终 |
get_subdomains | 读取发现的子域名 | 只读 | 始终 |
get_technologies | 读取检测到的 Web 技术 | 只读 | 始终 |
grep_loot | 在一个工作区(或在操作员要求时在所有工作区)中搜索 loot 文件中的字符串或扩展正则表达式 | 只读 | 始终 |
sniper_scan | 以 root 身份启动对一个目标的 Sn1per 扫描,并返回作业句柄 | 改变状态:向目标发送流量 | 始终注册;在你配置范围之前拒绝所有目标 |
cancel_scan | 停止此服务器启动的扫描 | 改变状态 | 始终 |
delete_workspace | 在人工输入工作区名称后,以 root 身份永久删除一个工作区及其扫描数据 | 改变状态:不可逆 | 仅在 SNIPER_MCP_ENABLE_DESTRUCTIVE=1 且客户端支持 MCP elicitation 时可用 |
export_workspace | 在人工输入工作区名称后,将一个工作区的 tar.gz 归档写入服务器的状态目录 | 改变状态:写入文件 | 仅在 SNIPER_MCP_ENABLE_DESTRUCTIVE=1 且客户端支持 MCP elicitation 时可用 |
所有设置、范围语法和命令行标志:docs/configuration.md。
SNIPER_MCP_SCOPE 和/或 SNIPER_MCP_SCOPE_FILE 列出你被授权测试的域名、IPv4 和 IPv6 地址以及 CIDR 范围,并使用 ! 排除项。没有范围时,每个扫描请求都会被拒绝。一个无效条目会使整个范围无效。SNIPER_MCP_ALLOW_INTRUSIVE=1 之前处于关闭状态。默认模式为 stealth。delete_workspace 和 export_workspace 仅在 SNIPER_MCP_ENABLE_DESTRUCTIVE=1 时存在,并且两者都会要求人工输入工作区名称。SNIPER_MCP_REDACT)。脱敏基于模式匹配;它不是数据丢失防护。该服务器是一组围绕具备 root 能力引擎的控制措施,而不是安全边界。在部署之前,请阅读 docs/security-model.md。简而言之:
/etc/sn1per-mcp/ 下,由 root 拥有,并对它们禁用这些工具。Sn1per MCP Server 允许 AI 代理启动主动安全扫描。扫描会向目标发送流量,可能具有侵入性,并通过 sudo 以 root 权限运行。
SNIPER_MCP_SCOPE 或 SNIPER_MCP_SCOPE_FILE)。服务器会拒绝针对该范围之外目标的扫描请求(参见限制)。SNIPER_MCP_ALLOW_INTRUSIVE=1)。本软件依据 Apache License 2.0 提供,不附带任何形式的担保。