Skip to main content
Glama

mcp-web-audit

by Shen-zhihao
README.md6.25 kB
# mcp-web-audit 一个基于 Node.js 的前端工程安全审计工具,支持对本地项目和远程仓库进行全面的依赖安全审计。 ## 🔍 功能特性 - 🛡️ **全面审计**: 审计前端工程的所有直接和间接依赖 - 🌐 **多源支持**: 支持本地工程和远程仓库(GitHub 等)的审计 - 📊 **详细报告**: 生成标准格式的 Markdown 审计报告 - 🔌 **MCP 集成**: 作为 MCP (Model Context Protocol) 服务器提供审计服务 - ⚡ **自动化**: 全自动化的审计流程,无需手动干预 - 🚀 **CLI 支持**: 支持通过 npx 直接调用,无需安装 ## 📋 审计内容 - **漏洞检测**: 识别依赖包中的已知安全漏洞 - **版本分析**: 检查依赖包版本的安全性和兼容性 - **依赖链分析**: 深入分析间接依赖关系 - **风险评估**: 按严重程度分类漏洞(Critical、High、Moderate、Low) - **修复建议**: 提供具体的修复方案和建议 ## 🚀 快速开始 ### 使用 npx (推荐) 无需安装,直接使用: ```bash # 审计本地项目 npx mcp-web-audit /path/to/your/project # 审计远程仓库 npx mcp-web-audit https://github.com/user/repo # 指定输出文件 npx mcp-web-audit /path/to/project -o ./my-audit.md # 查看帮助 npx mcp-web-audit --help # 查看版本 npx mcp-web-audit --version ``` ### 全局安装 ```bash # 全局安装 npm install -g mcp-web-audit # 使用命令 mcp-web-audit /path/to/your/project ``` ### 本地安装开发版本 ```bash # 克隆仓库 git clone https://github.com/shenzhihao/mcp-web-audit.git cd mcp-web-audit # 安装依赖 npm install # 本地测试 node bin/cli.js /path/to/test/project ``` ## 🚀 CLI 使用说明 ### 基本用法 ```bash npx mcp-web-audit [options] <项目路径> ``` ### 参数说明 - `<项目路径>`: 要审计的项目路径(本地绝对路径或远程仓库 URL) ### 选项 - `-o, --output <文件>`: 指定输出报告的文件路径 (默认: `./audit-report.md`) - `-h, --help`: 显示帮助信息 - `-v, --version`: 显示版本信息 ### 使用示例 ```bash # 审计当前目录 npx mcp-web-audit . # 审计指定本地项目 npx mcp-web-audit /Users/username/my-project # 审计GitHub仓库 npx mcp-web-audit https://github.com/facebook/react # 指定输出文件名 npx mcp-web-audit ./my-project -o security-report.md # 查看帮助信息 npx mcp-web-audit --help ``` ### 作为 MCP 服务器运行 #### 作为 MCP 服务器运行 ```bash node src/mcpServer.js ``` ### 编程式调用 ```javascript import { auditPackage } from "mcp-web-audit"; // 审计本地项目 await auditPackage("/path/to/your/project", "./audit-report.md"); // 审计远程仓库 await auditPackage("https://github.com/user/repo", "./audit-report.md"); ``` ## 📊 审计报告示例 生成的审计报告包含以下信息: - **项目概述**: 项目名称、版本等基本信息 - **漏洞汇总**: 按严重程度统计的漏洞数量 - **详细漏洞列表**: 每个漏洞的详细信息,包括: - 漏洞描述 - 影响的包和版本 - 严重程度评级 - 修复建议 - 相关链接 ## 📝 要求 - **Node.js**: >= 14.0.0 - **网络**: 审计远程仓库时需要网络连接 - **磁盘空间**: 至少 100MB 空闲空间(用于临时文件) ## 📁 项目结构 ``` src/ ├── audit/ # 审计核心模块 │ ├── currentAudit.js # 当前项目审计 │ ├── getDepChain.js # 依赖链分析 │ ├── index.js # 审计主入口 │ ├── normalizeAuditResult.js # 结果标准化 │ ├── npmAudit.js # NPM 审计 │ └── remoteAudit.js # 远程审计 ├── common/ # 通用工具 │ └── utils.js # 工具函数 ├── entry/ # 程序入口 │ └── index.js # 主要 API 入口 ├── generateLock/ # Lock 文件生成 │ ├── generateLock.js # Lock 文件生成逻辑 │ └── index.js # 模块入口 ├── main/ # 主程序 │ └── index.js # 主程序入口 ├── parseProject/ # 项目解析 │ ├── index.js # 解析入口 │ ├── parseLocalProject.js # 本地项目解析 │ └── parseRemoteProject.js # 远程项目解析 ├── render/ # 报告渲染 │ ├── index.js # 渲染入口 │ ├── markdown.js # Markdown 渲染 │ └── test/ # 测试文件 ├── workDir/ # 工作目录管理 │ └── index.js # 工作目录操作 └── mcpServer.js # MCP 服务器 ``` ## 🔧 API 参考 ### auditPackage(projectRoot, savePath) 审计指定项目的所有依赖包。 **参数:** - `projectRoot` (string): 项目根目录的绝对路径或远程仓库 URL - `savePath` (string): 审计报告保存路径 **示例:** ```javascript // 本地项目 await auditPackage("/Users/username/my-project", "./audit.md"); // 远程仓库 await auditPackage("https://github.com/facebook/react", "./react-audit.md"); ``` ## 📊 审计报告 生成的审计报告包含以下信息: - **项目概述**: 项目名称、版本等基本信息 - **漏洞汇总**: 按严重程度统计的漏洞数量 - **详细漏洞列表**: 每个漏洞的详细信息,包括: - 漏洞描述 - 影响的包和版本 - 严重程度评级 - 修复建议 - 相关链接 ## 🛠️ 技术栈 - **运行环境**: Node.js (ES Modules) - **核心依赖**: - `@modelcontextprotocol/sdk`: MCP 协议支持 - `ejs`: 模板引擎 - `zod`: 数据验证 ## 🔒 安全审计流程 1. **项目解析**: 解析项目的 `package.json` 文件 2. **依赖分析**: 分析所有直接和间接依赖 3. **Lock 文件生成**: 生成依赖锁定文件 4. **安全扫描**: 使用 npm audit 进行安全扫描 5. **结果标准化**: 将审计结果标准化处理 6. **报告生成**: 生成 Markdown 格式的审计报告 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。 ## 📄 许可证 ISC License ## 📞 支持 如果您在使用过程中遇到问题,请提交 Issue 或联系维护者。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shen-zhihao/mcp-web-audit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server