用途:ASH MCP 将 ASH(Automated Security Helper)的九种安全扫描器封装为单一 MCP 接口,用于对项目执行漏洞与安全扫描。使用前提是已配置 ASH MCP 服务器。
主要能力:服务器以异步工具形式暴露扫描,可启动扫描、轮询进度、获取过滤结果,并提供工具 run_ash_scan、get_scan_progress、get_scan_results、get_scan_summary、get_scan_result_paths、list_active_scans、cancel_scan、check_installation。
使用方式:三步工作流。第一步调用 run_ash_scan,传入项目绝对路径,返回 scan_id、status 与目录路径,需保存 scan_id。第二步每 5 秒调用 get_scan_progress 轮询,直到 status 为 completed、failed 或 cancelled;不要仅依赖 is_complete,取消的扫描该值会一直为 False。典型扫描耗时 30-120 秒。第三步扫描完成后调用 get_scan_results,按用户意图选择过滤条件,例如摘要用 filter_level="summary" 加 actionable_only=True,关键问题用 filter_level="full" 加 severities="critical,high"。HTML/SARIF/CSV 报告建议用 get_scan_result_paths 直接读取文件。
扫描器选择:默认运行全部九种扫描器;如需子集,需在扫描前编辑项目根目录的 .ash/.ash.yaml,run_ash_scan 不接受 scanners 参数;结果过滤可用 get_scan_results 的 scanners 参数,如 Python 问题用 bandit,semgrep,密钥用 detect-secrets,IaC 用 checkov,cfn_nag,cdk-nag,依赖用 grype,npm-audit,SBOM 用 syft。
限制:MCP 服务器始终以本地模式运行(仅 Python,无 Docker);容器或 precommit 模式需直接使用 ASH CLI。故障排查可参考 troubleshooting.md,常见问题包括连接超时、结果为空、扫描卡住、容器/Docker 问题、抑制规则未生效。其他细节暂未提供。