使用说明
风险审计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
- macOS/Linux:
- 使用
- 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。
- 仔细检查macOS上的配置路径:
- Codex CLI无法启动服务器
- 确保您的配置已注册:
command: "risk-audit-mcp",args: ["--mcp-stdio"] - 终端测试:
risk-audit-mcp --mcp-stdio(应该安静地等待)
- 确保您的配置已注册:
- Unicode条形图看起来很奇怪
- 使用ASCII条:添加
--style ascii
- 使用ASCII条:添加
- 不喜欢表情符号
- 使用ASCII图标:添加
--icons ascii
- 使用ASCII图标:添加
- 希望规则ID在ASCII报告中可见
- 添加
--show-ids(JSON总是包含ruleId).
- 添加
- 扫描在大型存储库上感觉很慢
- 限制范围:创建
.vibecheckrc随着include/exclude,或与--scan src. - 增加严重性阈值:设置
severityMin: medium在.vibecheckrc.
- 限制范围:创建
