安全扫描工具

Risk Audit MCP 是一个本地运行的安全扫描工具,用于检测项目中的常见安全问题(如XSS、注入、SSRF、路径遍历等),并提供清晰的修复建议。

  • by mulka
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mulka/risk-audit-mcp

使用说明

风险审计MCP——安全扫描器

风险审计是一个模型上下文协议(MCP)服务器和CLI,用于扫描项目中的常见安全问题(XSS、注入、SSRF、路径遍历等)。它在本地运行,脱机工作,并给出清晰、分组的结果和建议的修复。

这是怎么一回事?

  • 一个工具,用于查找代码中的风险模式并解释如何改进它们。
  • 既可以作为可以在任何仓库中运行的CLI,也可以作为IDE/AI工具可以调用的MCP服务器。

这是给谁的?

  • 想要简单、可操作的指导来提高安全性的初学者。
  • 想要快速本地扫描的开发人员可以连接到他们的工作流程或启用MCP的工具中。

为什么要使用它?

  • 快速反馈常见陷阱(XSS、注入、SSRF、路径遍历)。
  • 明确的严重性组和实用的修复建议。
  • 零网络呼叫;你的代码永远不会离开你的机器。

需求

  • Node.js>=18

脚本

  • npm run dev --通过tsx运行TypeScript入口点(无构建)。
  • npm run build --将TypeScript编译为 dist/ 通过 tsc.
  • npm start --运行编译后的输出(node dist/index.js).
  • npm test --构建然后使用Vitest运行测试。
  • npm run mcp --启动MCP服务器(stdio)。
  • npm run scan -快速扫描(unicode栏+表情符号标题)。

快速入门(适合初学者)

安装到任何项目中:

  • npm install --save-dev risk-audit-mcp

运行快速扫描(默认样式):

  • npx risk-audit-mcp (与 npx risk-audit-mcp --quick)

使用Claude Desktop或Codex CLI作为MCP服务器:

  • 一行命令(客户端运行的命令): risk-audit-mcp --mcp-stdio

运行MCP服务器

  • 用一个简单的命令启动MCP服务器:
    • npm run mcp
    • 或者直接使用二进制文件(如果已安装/链接): risk-audit --mcp-stdio
    • 或者通过npx无需全局安装: npx risk-audit --mcp-stdio

客户端设置代码段

Claude桌面版

应用程序将运行一行命令:

risk-audit-mcp --mcp-stdio

放置位置(macOS):编辑 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加: 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加:

{ “mcpServers”:{ “风险审计”:{ “命令”:“风险审计mcp”, “args”:[“--mcp stdio”], “env”:{} } } }

笔记:

  • 确保 risk-audit 在你的路径上。如果没有,请使用:
    • "command": "node", "args": ["/absolute/path/to/dist/index.js", "--mcp-stdio"]

Codex CLI

CLI将运行一行命令:

risk-audit-mcp --mcp-stdio

如何在Codex CLI配置中注册它: 注册MCP服务器,以便Codex可以通过stdio启动它。示例配置条目:

{ “mcpServers”:{ “风险审计”:{ “命令”:“风险审计mcp”, “args”:[“--mcp stdio”] } } }

笔记:

  • 如果需要,您也可以直接指向节点:
    • "command": "node", "args": ["/absolute/path/to/dist/index.js", "--mcp-stdio"]
  • 服务器保持活动状态,直到客户端关闭stdin。

理解输出

  • 按优先级分为三组(仅在标题中显示表情符号):
    • ⚠️ 严重(立即修复)
    • 🔍 中等优先级
    • ⓘ 低优先级
  • 每个小组都有一个进度条和一个编号的调查结果列表。
  • 文件路径和行范围为绿色,因此它们很突出。
  • 默认情况下,规则ID在ASCII中隐藏(显示为 --show-ids).JSON总是包含 ruleId.

输出格式

  • ASCII进度条: |==========......| 10/16 (62%)
  • Unicode条形图: [██████████░░░░░░] 10/16 (62%)

配置(.vibecheckrc)

地点a .vibecheckrc (YAML)或 .vibecheckrc.json 在项目的根。

YAML示例:

严重程度最低:中等 包括:[“src/”,“api/”] 排除:[“dist/”,“node_modules/”] 规则: 禁用:[“YAML001”] 启用:[]

  • severityMin:过滤出低于此严重程度的发现
  • include/reclude:扫描项目时要包含或排除的路径子字符串
  • rules.enable/disable:白名单/黑名单规则ID

CLI尊重项目根目录中的配置 --scan <dir>.MCP scan_project 还从给定的根目录加载配置。

安全与隐私

  • 所有扫描均在本地运行;任何地方都不会上传代码。
  • YAML规则从您的仓库加载 rules/ 文件夹(如果存在)。在添加第三方规则时要小心,以避免导致扫描速度慢的正则表达式(我们限制每个规则/文件的匹配次数)。
  • 我们从不执行您的代码;我们只读取文件。

故障排除

  • “找不到命令:风险审计mcp”
    • 使用 npx risk-audit-mcp 或者确保npm的全局bin在你的PATH上:
      • macOS/Linux: echo $(npm bin -g) 然后 export PATH="$(npm bin -g):$PATH"
      • 或在本地安装: npm i -D risk-audit-mcp 然后跑 npx risk-audit-mcp
  • MCP服务器只显示一行,“什么也不做”
    • 这是意料之中的: risk-audit-mcp --mcp-stdio 等待客户端通过stdio连接。
    • 如上所示,通过将其添加到Claude/Codex进行验证,或运行CLI扫描。
  • Claude Desktop未显示服务器
    • 仔细检查macOS上的配置路径: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 确保条目使用以下确切命令: risk-audit-mcp --mcp-stdio
    • 编辑配置后重新启动Claude。
  • Codex CLI无法启动服务器
    • 确保您的配置已注册: command: "risk-audit-mcp", args: ["--mcp-stdio"]
    • 终端测试: risk-audit-mcp --mcp-stdio (应该安静地等待)
  • Unicode条形图看起来很奇怪
    • 使用ASCII条:添加 --style ascii
  • 不喜欢表情符号
    • 使用ASCII图标:添加 --icons ascii
  • 希望规则ID在ASCII报告中可见
    • 添加 --show-ids (JSON总是包含 ruleId).
  • 扫描在大型存储库上感觉很慢
    • 限制范围:创建 .vibecheckrc 随着 include/exclude,或与 --scan src.
    • 增加严重性阈值:设置 severityMin: medium 在 .vibecheckrc.