mcp-for-security
将 Nmap/SQLMap/FFUF 等 22 款主流安全工具封装为 MCP 服务器,让 AI Ag
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将 Nmap/SQLMap/FFUF 等 22 款主流安全工具封装为 MCP 服务器,让 AI Ag
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Cyprox 官方 Logo
在网络安全行业,有一个长期困扰自动化渗透测试的悖论:工具很强,但调用门槛很高。以 Nmap 为例,专业安全工程师能熟练写出 nmap -sS -sV -O target.com 这样的命令,但对于普通开发者、数据工程师,甚至安全新手,面对海量的命令行参数往往望而却步。同样,SQLMap、FFUF、Masscan 等优秀工具虽然功能强大,却始终停留在"需要专业知识才能使用"的阶段。
MCP for Security 正是为了解决这个"最后一公里"问题而生。它的核心思路简单而优雅:不重写安全工具,而是给它们套上一层 MCP 协议的"智能外壳",让 AI Agent 能够通过自然语言调用这些工具,自动完成原本需要专业安全知识才能执行的操作。
MCP(Model Context Protocol)是 Anthropic 主导推出的模型上下文协议,旨在为 LLM 提供标准化的工具调用能力。项目作者 Cyprox(cyprox.io)敏锐地看到了将安全工具 MCP 化的机会——安全行业积累了大量高质量开源扫描工具(很多已存在 10 年以上),它们经过社区验证、稳定可靠,唯一缺的就是一个能被 AI 调用的标准接口。
项目于 2025 年 4 月 创建,至今已迭代一年有余,收录了 22 个主流安全工具的 MCP 封装,涵盖网络扫描、Web 模糊测试、漏洞检测、子域名枚举等多个安全测试领域。截至分析时,项目已获得 619 颗 GitHub Stars,97 次 Fork,并被标记为 MIT 开源许可。
项目采用每个工具一个独立 MCP 服务器的架构设计,通过一个 monorepo 统一管理。仓库下每个子目录(如 nmap-mcp/、sqlmap-mcp/)都是一个独立的 MCP 服务器,可单独部署,也可通过 Docker 镜像一次性启动全部。
| 工具 | 类型 | 用途 |
|---|---|---|
| Nmap | 网络扫描 | 端口探测、服务识别、操作系统指纹 |
| Masscan | 高速扫描 | 大规模网络快速端口扫描 |
| SQLMap | SQL注入 | 自动检测与利用 SQL 注入漏洞 |
| FFUF | Web模糊测试 | 目录/文件/参数暴力枚举 |
| Amass | 子域名枚举 | 被动+主动域名发现 |
| Nuclei | 漏洞扫描 | 基于 YAML 模板的漏洞检测 |
| httpx | HTTP探测 | 快速 HTTP 探测与指纹识别 |
| WPScan | WordPress扫描 | WordPress 站点漏洞检测 |
| MobSF | 移动安全 | APK/iOS 应用安全分析 |
| ScoutSuite | 云安全审计 | AWS/GCP/Azure 配置审计 |
| FFUF/Katana | Web爬虫 | 动态+静态网页爬取 |
| Arjun | 参数发现 | HTTP 参数自动化挖掘 |
| Smuggler | HTTP走私 | HTTP 请求走私漏洞检测 |
除此之外,还包含 Assetfinder、Cero、crtsh、shuffledns、Gowitness、SSLScan、Waybackurls 等特色工具,覆盖渗透测试的信息收集、漏洞扫描、报告整理全流程。
以 nmap-mcp 为例,代码结构极为精简,核心逻辑仅约 200 行 TypeScript:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import { spawn } from 'child_process';
// 接收外部传入的二进制路径
const args = process.argv.slice(2);
// 注册 MCP 服务器
const server = new McpServer({ name: "nmap", version: "1.0.0" });
// 注册 do-nmap 工具:接收目标 + 参数
server.tool("do-nmap", "Run nmap with specified target", {
target: z.string(),
nmap_args: z.array(z.string()),
}, async ({ target, nmap_args }) => {
// 通过 child_process 调用真实的 nmap 二进制
const nmap = spawn(args[0], [...nmap_args, target]);
let output = '';
nmap.stdout.on('data', d => output += d.toString());
nmap.stderr.on('data', d => output += d.toString());
return new Promise((resolve, reject) => {
nmap.on('close', code => {
code === 0 ? resolve({ content: [{ type: "text", text: output }] })
: reject(new Error(`nmap exited with code ${code}`));
});
});
});
// 标准 stdio 传输层
const transport = new StdioServerTransport();
await server.connect(transport);
这种封装模式的精妙之处在于:底层是调用真实的 nmap/sqlmap 等二进制工具,而不是重新实现扫描逻辑。这意味着 MCP 服务器继承了原工具的全部能力(版本更新、漏洞插件库更新等),同时获得了一个标准化的 JSON-RPC 接口。
模块化隔离:每个工具独立目录、独立 package.json、独立 build.sh,修改或移除某个工具不影响其他工具。这种设计让社区贡献者可以专注于单个工具的 MCP 封装,无需理解整个项目。
构建自动化:start.sh 脚本自动遍历所有子目录,执行各自的 build.sh,并最终生成统一的 mcp-config.json 配置文件。这意味着添加一个新工具只需三步:创建目录 → 写 build.sh → 目录名出现在 MCP 配置中。
类型安全:使用 Zod 进行参数 schema 验证,确保 AI 发来的参数符合预期类型和范围。nmap-mcp 和 sqlmap-mcp 的参数文档直接嵌入代码注释,AI 能自动理解每个参数的作用。
项目提供了完整的 Dockerfile,基于 golang:1.24-bullseye 镜像,内置:
一条命令启动全部服务:
docker run -it cyprox/mcp-for-security
Docker 镜像是项目推荐的部署方式,特别适合 Claude Desktop、Cline 等 MCP 客户端用户,因为这些客户端本身支持通过 Docker 容器连接 MCP 服务器,无需手动管理二进制依赖。
对于需要定制化配置的高级用户,可以 clone 仓库后执行 start.sh,脚本会逐个执行各子目录的 build.sh 构建脚本。需要注意各工具本身可能还有额外依赖(如 nuclei 需要 Go 环境,MobSF 需要 Python 3),具体参考各工具的子 README。
安全工程师只需要对 AI 说一句话:
"帮我对 example.com 做一次完整的渗透测试,包括端口扫描、Web 目录枚举和已知漏洞检测。"
AI Agent 会自动规划任务:调用 Nmap 做端口扫描 → 调用 httpx 探测存活服务 → 调用 Nuclei 进行漏洞检测 → 调用 FFUF 扫描敏感路径 → 汇总结果生成 Markdown 报告。整个过程无需工程师手动敲一条命令。
在 CI/CD 流水线中,开发者可以在代码提交后自动触发 WPScan 扫描(针对 WordPress 项目)或 SQLMap 检测(针对数据库查询代码)。这让安全测试不再是"渗透测试工程师专属",而是融入日常开发的常态化实践。
ScoutSuite MCP 服务器支持 AWS/GCP/Azure 多云平台的配置审计,配合 AI 可以自动化分析云资源配置报告,识别 S3 公开访问、过宽的 IAM 权限等风险点,生成整改建议。
值得注意的是,项目的 README 顶部有明确的 弃用声明:
[!WARNING] This repository is no longer actively maintained. All tools have been migrated to Bolt — a fully rewritten, Docker-supported MCP security tool server.
所有工具已迁移到 Bolt 项目(Docker 支持的新版 MCP 安全工具服务器)。这意味着当前项目不会继续接收安全更新和新工具,如果要用于生产环境,建议直接使用 Bolt 项目。
权限与合规风险:Nmap、Masscan 等工具属于网络扫描类工具,在某些国家/地区的非授权网络使用可能存在法律风险。AI Agent 的"一句话扫描"降低了使用门槛的同时,也可能降低使用者对扫描行为的合规意识。
工具依赖复杂性:22 个工具各有各的依赖(Ruby、Go、Python、Node.js),Docker 镜像虽然封装了大部分,但体积较大(Go + Python + Node.js 全家桶)。部分工具(如 MobSF)还需要额外的运行时环境。
无 Web UI:纯 CLI 工具,没有图形界面,对非技术用户不友好。
MCP for Security 最大的贡献不在于技术本身,而在于理念验证:证明了安全工具可以被 AI 低门槛调用。它让三类人群受益:
安全新手:无需记忆 nmap 的数百个参数,只需"告诉 AI 要扫描什么"。
全栈开发者:在代码审查和 CI/CD 中嵌入安全测试,无需成为安全专家。
AI Agent:获得了可靠的网络探测和漏洞检测能力,拓展了 AI 在网络安全领域的实用场景。
尽管项目已停止维护,它孵化的 Bolt 项目正在延续这一方向,并增加了 Docker 支持。这个"前辈"项目在 MCP + 安全工具融合领域起到了重要的探索作用。