非教育用途:面向专业渗透测试人员的MCP服务器,支持STDIO/HTTP/SSE,包含nmap、go/dirbuster、nikto、JtR、hashcat、字典构建等功能。
专业渗透测试 MCP 服务器,支持现代传输/认证和扩展的侦察工具集。
@modelcontextprotocol/sdk@^1.26.0@modelcontextprotocol/inspector@^0.20.0),并附带打包启动器MCP_TRANSPORT=http)subfinderEnum、httpxProbe、ffufScan、nucleiScan、trafficCapture、hydraBruteforce、privEscAudit、extractionSweeplistEngagementRecords、getEngagementRecordscopeMode=ask)添加 SoW 捕获流程,支持安全模板回退httpx-toolkit(推荐)或经过验证的 ProjectDiscovery httpx,避免 Python httpx CLI 冲突pentest-mcp inspector)nmapScanrunJohnTheRipperrunHashcatgobusterniktosubfinderEnumhttpxProbeffufScannucleiScantrafficCapturehydraBruteforceprivEscAuditextractionSweepgenerateWordlistnpm install -g pentest-mcp
pentest-mcp
pentest-mcp inspector
您可以直接传递 Inspector 标志:
pentest-mcp inspector --help
MCP_TRANSPORT=http MCP_SERVER_HOST=0.0.0.0 MCP_SERVER_PORT=8000 pentest-mcp
MCP_TRANSPORT=sse MCP_SERVER_PORT=8001 pentest-mcp
stdio:本地 MCP 客户端的默认模式。http:现代网络传输。推荐使用。sse:仅兼容模式。已弃用,将在未来的主要版本中移除。pentest-mcp inspector 启动捆绑的 @modelcontextprotocol/inspector CLI。node <此包入口点> stdio使用 MCP_TRANSPORT=http(或必要时使用 sse)时,设置以下环境变量:
MCP_AUTH_ENABLED=true
MCP_AUTH_MODE=bearer
MCP_AUTH_SCOPES=read,write
MCP_AUTH_AUDIENCE=
MCP_OIDC_ISSUER=https://issuer.example.com
MCP_OIDC_JWKS_URL=https://issuer.example.com/.well-known/jwks.json
# 可选替代/备份验证模式:
MCP_OIDC_INTROSPECTION_URL=https://issuer.example.com/oauth/introspect
MCP_OAUTH_CLIENT_ID=...
MCP_OAUTH_CLIENT_SECRET=...
旧版别名暂时仍然接受:
MCP_OAUTH_ENABLEDMCP_OAUTH_PROVIDER_URLMCP_OAUTH_SCOPEScreateClientReport 现在支持 SoW 处理模式:
scopeMode=ask:通过 MCP 引导提示用户(推荐)scopeMode=provided:直接使用 scopeOfWork 值scopeMode=template:使用内置的通用授权测试模板如果引导被拒绝或不可用,报告会自动回退到模板。
目前还没有单独的文件上传 API。当前选项:
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 外部渗透测试",
"assessmentType": "external-network",
"scopeMode": "ask"
}
}
scopeOfWork 中{
"tool": "createClientReport",
"arguments": {
"title": "Q1 外部渗透测试",
"assessmentType": "external-network",
"scopeMode": "provided",
"scopeOfWork": "授权目标:...\n范围外:...\n测试窗口:...\n交战规则:..."
}
}
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 外部渗透测试",
"assessmentType": "external-network",
"scopeMode": "template"
}
}
recordId=...)。listEngagementRecords 快速拉取所有工作产物。recordId 生成报告(默认使用最新记录),而无需手动复制/粘贴。ask)provided)template)以下功能专门为减少渗透测试管理开销而规划。
scopeFilePath 摄入(从 MCP 主机上的本地文件路径加载 SoW)scopeDocument 分块上传流程(通过 MCP 直接发送 SoW 内容给远程客户端)recordId)到发现项和报告部分的证据自动链接nuclei、nikto 等)之间的发现项去重/合并采用说明:
scopeFilePath 和 scopeDocument 将有强烈需求,因为大多数团队已经以文档/PDF 形式维护 SoW,希望避免重复的粘贴和重新格式化步骤。{
"tool": "subfinderEnum",
"arguments": {
"domain": "example.com",
"recursive": true,
"allSources": true
}
}
{
"tool": "httpxProbe",
"arguments": {
"targets": ["example.com", "api.example.com"],
"includeTitle": true,
"includeStatusCode": true
}
}
{
"tool": "ffufScan",
"arguments": {
"targetUrl": "https://example.com/FUZZ",
"wordlist": "/usr/share/seclists/Discovery/Web-Content/common.txt",
"threads": 40
}
}
{
"tool": "nucleiScan",
"arguments": {
"targets": ["https://example.com"],
"severities": ["medium", "high", "critical"]
}
}
{
"tool": "trafficCapture",
"arguments": {
"networkInterface": "eth0",
"packetCount": 200,
"bpfFilter": "tcp port 80"
}
}
{
"tool": "hydraBruteforce",
"arguments": {
"target": "10.10.10.20",
"service": "ssh",
"usernameList": "/usr/share/seclists/Usernames/top-usernames-shortlist.txt",
"passwordList": "/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt"
}
}
{
"tool": "extractionSweep",
"arguments": {
"targetUrl": "https://target.local/item.php?id=1",
"risk": 2,
"level": 3
}
}
docker-compose --profile http up
docker-compose --profile stdio up
docker-compose --profile sse up
Docker 镜像安装:
nmap、john、hashcat、gobuster、nikto、ffuf、hydra、sqlmap、tcpdumpsubfinder、httpx + httpx-toolkit 别名、nuclei确保二进制文件在 PATH 中:
which nmap john hashcat gobuster nikto subfinder httpx-toolkit ffuf nuclei hydra sqlmap tcpdump
如果未安装 httpx-toolkit,则接受经过验证的 ProjectDiscovery httpx 二进制文件作为回退。
仅限授权使用。针对您已获得明确书面许可的系统/网络运行。
最后更新:2026-03-23
模型上下文协议(MCP)仍然是工具和代理最有用的互操作性层之一。代价是大型 MCP 服务器可能暴露许多工具,而天真的工具调用可能会用模式、工具聊天和不相关的调用痕迹淹没上下文窗口。
在实践中,“更多工具”并不总是“更好的结果”。工具表面积必须与执行模式配对,以保持令牌使用有界且行为可预测。
近期工作流越来越多地将复杂的编排从聊天上下文中移出,转移到代码执行循环中。这减少了重复的模式令牌,并使工具使用可审计和可测试。
核心阅读:
对于希望实现可重复且低噪声 MCP 使用的用户,从面向 codemode 的设置开始:
实际注意事项:即使设置再强大,模型行为在不同提供商和版本之间仍可能不一致。请保留重试、护栏和确定性回退。
一个高杠杆模式是将 MCP 服务器包装为可调用的代码接口和面向任务的 CLI,而不是将所有原始工具始终暴露给模型。
参考工具:
这个领域变化很快。如果您现在正在阅读,部分指导可能已经过时。
提示注入对于使用工具的代理来说仍然是一个开放的安全问题。它是可管理的,但尚未“解决”。
主要风险:
后果:
缓解基线:
除非明确验证,否则将每个工具输出视为不可信输入。
此服务器面向 MCP 协议版本 2025-11-25 和 SDK @modelcontextprotocol/sdk@^1.27.1。
listEngagementRecordsgetEngagementRecordcreateClientReportcancelScan| 特性 | 状态 |
|---|
| stdio 传输 | 支持(默认) |
| Streamable HTTP 传输 | 支持(MCP_TRANSPORT=http) |
| SSE 传输(旧版) | 已弃用的兼容模式 |
| 工具注解 | 所有工具均带有 title、readOnlyHint、destructiveHint、idempotentHint、openWorldHint 注解 |
| Bearer 认证(OIDC/JWKS) | 支持 |
| 来源验证(HTTP) | 当设置 MCP_ALLOWED_ORIGINS 时,无效 Origin 返回 403 |
| JSON Schema 2020-12 | Zod 生成 schema |
| 结构化工具错误 | isError 标志,附带描述性消息,用于模型自我纠正 |
| 引导 | 用于报告生成中的 SoW 捕获 |