关于 megalinter
MegaLinter MCP Server 通过 MCP 接口,让开发者在本地或 CI/CD 中运行 Ox Security MegaLinter。它将可配置扫描与检查器发现、报告解析、问题汇总和安全建议工具结合起来。
主要功能
- 01运行可配置的 MegaLinter 扫描
- 02生成最简 .mega-linter.yml
- 03按语言和能力查找检查器
- 04解析 JSON 和 SARIF 报告
- 05按严重程度或检查器汇总问题
- 06提供安全方面的修复建议
适用场景
- 01对代码仓库执行快速或安全扫描
- 02创建基础 MegaLinter 配置
- 03查看并筛选扫描报告中的问题
- 04查找适用于特定语言或安全任务的检查器
MCP 相关
它向 MCP 客户端提供 MegaLinter 执行、配置、发现和报告分析工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| env | string | 否 | 传递给 --env 的环境变量字符串(例如:DISABLE_LINTERS=SPELL_CSPELL,MARKDOWN_MARKDOWNLINT)。 |
| fix | boolean | 否 | 应用自动修复。 |
| help | boolean | 否 | 显示 mega-linter-runner 帮助信息。 |
| path | string | 否 | 要检查的目录路径。 |
| image | string | 否 | 可选的完整 Docker 镜像覆盖值。 |
| flavor | string | 否 | MegaLinter 风格。 |
| install | boolean | 否 | 生成 MegaLinter 入门配置文件。 |
| release | string | 否 | MegaLinter Docker 镜像标签。 |
| extraArgs | array | 否 | 要追加的 CLI 参数。 |
| configFile | string | 否 | .mega-linter.yml 文件的路径。 |
| reportsPath | string | 否 | 写入报告的目录。 |
| containerName | string | 否 | 可选的 Docker 容器名称。 |
| runnerVersion | string | 否 | mega-linter-runner npm 版本。使用 'latest' 或指定版本。 |
| disableLinters | string | 否 | 要禁用的 linter 逗号分隔列表。 |
| timeoutSeconds | number | 否 | 命令超时时间(秒)。 |
| removeContainer | boolean | 否 | 完成后移除容器。 |
| workingDirectory | string | 否 | 执行命令的目录。默认为当前进程目录。 |
| lintChangedFilesOnly | boolean | 否 | 如果为 true,则设置 VALIDATE_ALL_CODEBASE=false,仅 lint 已更改的文件。 |
详细介绍
MegaLinter MCP 服务
注意: 这是一个由社区维护的 MCP 服务,并非官方 Model Context Protocol 服务,但 Ox Security 已批准将其作为官方 MegaLinter 工具的补充。
一个用于通过 mega-linter-runner 运行 Ox Security MegaLinter 的 Model Context Protocol(MCP)服务。可与任何 CI/CD 平台(GitHub Actions、GitLab CI、Azure DevOps、CircleCI、Jenkins)或本地环境配合使用。
概述
此服务共提供 15 个 MCP 工具:10 个核心工具和 5 个便捷别名,涵盖执行、发现和分析工作流。
megalinter_quick_action:使用合理的默认值处理简短、自然的请求。megalinter_run:使用可配置的运行时和 Runner 选项执行 MegaLinter。megalinter_write_config:生成最简的.mega-linter.yml文件。megalinter_list_flavors:返回常用的 MegaLinter 风味版本。megalinter_get_linters:按语言、安全重点和自动修复能力查找可用的 Linter。megalinter_get_security_info:按威胁类别归类安全 Linter。megalinter_get_reporters:列出支持的报告输出格式和面向 CI 的报告器。megalinter_parse_reports:解析 JSON 或 SARIF 报告文件。megalinter_get_issue_summary:按 Linter 和严重性汇总报告中的问题。megalinter_get_security_recommendations:生成以安全为重点的修复建议。
快速入门(简短提示词)
如果你更喜欢简短的提示词,请先使用 megalinter_quick_action:
@megalinter quick scan this repository@megalinter security scan@megalinter summarise errors@megalinter list python security linters@megalinter write config
也可以使用超短别名,尽量减少输入:
@megalinter scan— 使用默认设置快速扫描@megalinter summary— 汇总上次运行中的错误@megalinter parse— 解析 JSON 报告@megalinter help_quick— 根据项目提供上下文相关的帮助
平台兼容性
此 MCP 服务不受平台限制,可在各种平台上使用:
- ✅ 本地 — 从 IDE 或命令行运行 MegaLinter
- ✅ GitHub Actions — 集成到工作流中
- ✅ GitLab CI/CD — 用于 GitLab 流水线
- ✅ Azure DevOps — 在 Azure Pipelines 中运行
- ✅ CircleCI、Jenkins、Bitbucket Pipelines — 支持 Docker 的任何 CI/CD 平台
- ✅ AI Agent 和 Copilot — 通过 MCP 自动执行代码质量检查
唯一的要求是 Docker(或 Colima 等兼容的容器运行时)。
工具矩阵
| 工具 | 类别 | 典型结果 |
|---|---|---|
megalinter_quick_action | 交互式 | 使用默认设置处理简短的自然语言请求 |
scan | 别名 | 快速扫描的超短别名 |
summary | 别名 | 错误摘要的超短别名 |
parse | 别名 | 报告解析的超短别名 |
help_quick | 别名 | 上下文感知帮助的超短别名 |
megalinter_help_quick | 帮助 | 为你的项目提供上下文感知建议 |
megalinter_run | 执行 | 运行 lint 并生成报告产物 |
megalinter_write_config | 配置 | 生成基准 .mega-linter.yml |
megalinter_list_flavors | 发现 | 为你的技术栈确定合适的 flavor |
megalinter_get_linters | 发现 | 按语言、安全性和自动修复支持筛选 linter |
megalinter_get_security_info | 发现 | 查看按 SAST、密钥、容器和 IaC 分类的安全 linter |
megalinter_get_reporters | 发现 | 为本地和 CI 工作流选择输出/报告格式 |
megalinter_parse_reports | 分析 | 以结构化形式读取 JSON 或 SARIF 报告 |
megalinter_get_issue_summary | 分析 | 汇总问题总数和失败最多的 linter |
megalinter_get_security_recommendations | 分析 | 提供切左安全的实用措施 |
工具
megalinter_quick_action
交互式快捷工具,接受简短请求并将其路由到合适的工作流。
输入:
request(字符串,可选):简短指令。默认值:quick scan。action(字符串,可选):指定快捷操作(scan、config、flavors、linters、security、reporters、parse、summary、recommendations)。scanMode(字符串,可选):扫描预设(quick、full、security、fix)。target(字符串,可选):要扫描的目录。默认值:.。workingDirectory(字符串,可选):命令工作目录。reportsPath(字符串,可选):报告目录。默认值:megalinter-reports。reportType(字符串,可选):解析格式(json或sarif)。severity(字符串,可选):摘要筛选条件(error、warning、info)。language(字符串,可选):linter 查询的语言筛选条件。用于扫描时,会映射为 flavor 提示(python、javascript、terraform等)。securityOnly(布尔值,可选):在 linter 查询中仅返回安全 linter。用于扫描时,会强制使用securityflavor。autoFixOnly(布尔值,可选):在 linter 查询中仅返回支持自动修复的 linter。timeoutMinutes(数字,可选):扫描操作的超时时间。默认值:20。summaryOnly(布尔值,可选):扫描时返回简洁输出。默认值:true。flavor(字符串,可选):扫描操作的可选 flavor 覆盖值。fix(布尔值,可选):强制对扫描操作进行自动修复。targetPath(字符串,可选):write-config 请求的配置输出路径。
示例:
request: "quick scan"-> 对已更改文件运行ci_light。request: "full scan"-> 运行allflavor。request: "security scan"-> 运行securityflavor。request: "summarise errors"-> 返回仅筛选错误的问题摘要。request: "parse sarif report"-> 解析 SARIF 输出。action: "summary", severity: "error"-> 确定性摘要,不进行短语解析。action: "scan", scanMode: "security"-> 确定性安全扫描。
scan(超短别名)
只需极少输入即可运行快速扫描。接受可选参数进行自定义。
输入:
language(字符串,可选):映射为 flavor 的目标语言(例如python、javascript、terraform)。scanMode(字符串,可选):扫描预设(quick、full、security、fix)。默认值:quick。summaryOnly(布尔值,可选):返回简洁输出。默认值:true。
示例:@megalinter scan 会运行快速扫描并返回简洁输出。
summary(超短别名)
只需极少输入,即可汇总上次 MegaLinter 运行中的错误。
输入:
severity(字符串,可选):按严重级别筛选(error、warning、info)。linterFilter(字符串,可选):按检查器名称筛选。
示例:@megalinter summary 显示所有错误和警告的总数。
parse(超短别名)
只需极少输入,即可解析 MegaLinter 报告文件。
输入:
reportType(字符串,可选):报告格式(json或sarif)。默认值:json。reportsPath(字符串,可选):报告目录路径。
示例:@megalinter parse 解析 JSON 报告。
megalinter_help_quick
根据当前代码库获取上下文相关帮助。检测语言、框架、Docker、Terraform 和安全文件,并据此提供相关命令建议。
无需输入。
示例:@megalinter help_quick 会根据你的项目返回量身定制的建议。
megalinter_run
需要完全控制各项参数时使用此工具。对于简短提示词,建议使用 megalinter_quick_action。
通过 npx 运行 mega-linter-runner。
输入:
workingDirectory(字符串,可选):命令的工作目录。默认为当前进程目录。path(字符串,可选):要检查的目录路径。flavor(字符串,可选):MegaLinter 风味。默认值:all。release(字符串,可选):MegaLinter 镜像标签。默认值:v9。image(字符串,可选):完整的 Docker 镜像覆盖值。env(字符串,可选):传递给--env的环境变量字符串。fix(布尔值,可选):应用自动修复。help(布尔值,可选):显示mega-linter-runner帮助。install(布尔值,可选):生成 MegaLinter 入门配置。containerName(字符串,可选):覆盖 Docker 容器名称。removeContainer(布尔值,可选):运行后移除容器。configFile(字符串,可选):.mega-linter.yml的路径。reportsPath(字符串,可选):报告目录。默认值:megalinter-reports。disableLinters(字符串,可选):要禁用的检查器列表,以逗号分隔。lintChangedFilesOnly(布尔值,可选):为 true 时设置VALIDATE_ALL_CODEBASE=false。runnerVersion(字符串,可选):mega-linter-runner的 npm 版本(例如latest)。timeoutSeconds(数字,可选):超时时间,单位为秒。默认值:3600。summaryOnly(布尔值,可选):返回简洁日志。默认值:false。extraArgs(字符串数组,可选):其他 CLI 参数。
megalinter_write_config
写入最简 MegaLinter 配置。
输入:
targetPath(字符串,可选):输出文件路径。默认值:.mega-linter.yml。applyFixes(字符串,可选):APPLY_FIXES的值。默认值:none。showElapsedTime(布尔值,可选):SHOW_ELAPSED_TIME的值。默认值:true。flavorSuggestions(布尔值,可选):FLAVOR_SUGGESTIONS的值。默认值:false。disableLinters(字符串数组,可选):DISABLE_LINTERS的值。
megalinter_list_flavors
返回内置的常见风味列表(all、javascript、python、terraform 等)。
megalinter_get_linters
返回内置目录中的检查器元数据,并支持按条件筛选。
输入:
language(字符串,可选):按语言筛选(例如python、javascript、terraform)。securityOnly(布尔值,可选):仅返回专注于安全的检查器。autoFixOnly(布尔值,可选):仅返回支持自动修复的检查器。
megalinter_get_security_info
返回按类别分组的安全检查器,例如 SAST、机密信息、供应链、容器和基础设施。
输入:
- 无。
megalinter_get_reporters
返回可用的 MegaLinter 报告器,包括面向 CI 的格式。
输入:
- 无。
megalinter_parse_reports
解析 reports 目录中的 MegaLinter 报告文件。
输入:
reportsPath(字符串,可选):报告目录路径。默认值:megalinter-reports。reportType(字符串,可选):报告类型(json或sarif)。默认值:json。
megalinter_get_issue_summary
汇总 megalinter-report.json 中的问题,并可应用严重性和 linter 筛选条件。
输入:
reportsPath(字符串,可选):报告目录路径。默认值:megalinter-reports。severityFilter(字符串,可选):按严重性筛选结果(error、warning、info)。linterFilter(字符串,可选):按 linter 名称筛选结果。
megalinter_get_security_recommendations
根据解析后的报告数据中启用的 linters 生成安全建议。
输入:
reportsPath(字符串,可选):报告目录路径。默认值:megalinter-reports。
提示词手册
在 Copilot Chat 中使用 @megalinter 和以下可复制粘贴的提示词。
未指定路径时,CLI 工具默认使用当前工作区根目录。
如果将文件或文件夹添加为 Copilot 上下文(#file 或 #folder),请在提示词中引用它,工具便会以该路径为目标。
快速操作(megalinter_quick_action)
@megalinter quick scan
@megalinter full scan
@megalinter security scan
@megalinter summarise errors
@megalinter parse sarif report
@megalinter write config
预期输出:将每个简短请求路由到相应工具,并使用合理的默认值。
使用显式操作字段的确定性替代方案:
@megalinter run quick action with action summary and severity error
@megalinter run quick action with action parse and reportType sarif
@megalinter run quick action with action scan and scanMode security
运行 MegaLinter(megalinter_run)
@megalinter run megalinter with flavor all on . with reports in megalinter-reports
预期输出:执行 linters,并报告所有语言中发现的问题。创建包含 JSON、SARIF 和文本报告的 megalinter-reports/。
创建配置(megalinter_write_config)
@megalinter create a MegaLinter config at .mega-linter.yml
预期输出:创建 .mega-linter.yml,其中包含指定的设置,可供自定义。
列出 Flavors(megalinter_list_flavors)
@megalinter list all available MegaLinter flavors
预期输出:Flavors 表格(all、python、javascript、go 等),包含说明和使用场景。
查询 Linters(megalinter_get_linters)
@megalinter list python security linters with autofix support
预期输出:从当前目录中筛选出与 Python 相关且支持自动修复的多语言安全 linters 列表(如有符合查询条件的项目)。
安全类别(megalinter_get_security_info)
@megalinter show MegaLinter security linter categories
预期输出:安全类别(例如 sast、secrets、supply-chain、container、infrastructure)及其关联的 linters(gitleaks、trivy 等)。
列出报告器(megalinter_get_reporters)
@megalinter list available MegaLinter reporters
预期输出:报告器列表(console、json、sarif、github-comment 等)及其启用方式。
解析报告(megalinter_parse_reports)
@megalinter parse the json report from megalinter-reports
预期输出:解析后的 MegaLinter JSON 或 SARIF 报告内容,作为结构化数据返回(原始报告载荷)。
问题摘要(megalinter_get_issue_summary)
@megalinter summarise issues from megalinter-reports with severity error
预期输出:按严重性和 linter 输入筛选的问题摘要,按 linter 汇总总数和运行次数。
安全建议(megalinter_get_security_recommendations)
@megalinter generate security recommendations using megalinter-reports
预期输出:按严重性排序的可执行安全建议,包含 linter 名称、规则 ID 和建议的后续步骤。
依赖项
系统依赖项
- Node.js
>=24.0.0 - npm(随 Node.js 捆绑)
- Docker Engine 或 Docker Desktop(运行
megalinter_run时必须处于运行状态) - 可选的本地容器运行时封装程序,例如 Colima
npm 依赖项
运行时:
@modelcontextprotocol/sdk(MCP 服务 SDK)
开发:
typescript(构建/编译)tsx(开发运行器)@types/node(Node.js 类型定义)
运行时说明:
- 运行时通过
npx执行mega-linter-runner,并可通过工具输入runnerVersion固定版本。
安装
npm install
npm run build
配置
在 VS Code Copilot Chat 中使用
此工作区已在 .vscode/mcp.json 中预先配置:
{
"servers": {
"megalinter": {
"type": "stdio",
"command": "node",
"args": ["./dist/index.js"]
}
}
}
更改 MCP 配置后,重新加载 VS Code(Cmd+Shift+P → Developer: Reload Window)。
然后在 Copilot Chat 中使用 @megalinter 查询服务,例如:
@megalinter list available flavors
@megalinter list security linters for javascript
在其他 MCP 客户端中使用
使用运行已编译入口文件的 stdio 服务配置:
{
"name": "megalinter-mcp-server",
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/megalinter-mcp/dist/index.js"]
}
先运行 npm run build 进行构建,然后启动 MCP 客户端。
运行
npm start
开发模式:
npm run dev
调试
使用 .vscode/launch.json:
Debug MCP Server(运行npm run dev)Debug MCP Server (Built)(构建后运行dist/index.js)
在 src/index.ts 中设置断点,然后按 F5。
测试
请参阅 docs/TESTING.md,了解 Copilot Chat 场景、手动 JSON-RPC 检查和故障排除指南。
Copilot Chat 中的快速验证提示词:
@megalinter list available flavors
交互式 VS Code 工作流
1. 前移安全问题分流
- 请 Copilot 运行扫描:
@megalinter run megalinter on this repository with reports enabled
- 解析生成的报告:
@megalinter parse the json report in megalinter-reports
- 总结并确定优先级:
@megalinter summarise error-level issues and top failing linters
- 请求安全指导:
@megalinter generate security recommendations from the current report
2. 特定语言的 Linter 入门
- 查找适用于你的技术栈的 Linter:
@megalinter list python security linters with autofix support
- 生成初始配置:
@megalinter create a megalinter config file with apply fixes set to none
- 禁用不适用的 Linter 并逐步调整。
3. CI/CD 报告器选择
- 列出报告器:
@megalinter list available reporters
- 为你的流水线选择格式(例如,用于安全工具的 SARIF,以及便于人类阅读摘要的 Markdown)。
最佳实践
- 从
megalinter_write_config开始,然后逐步收紧规则。 - 在快速反馈循环中使用
lintChangedFilesOnly,并在 CI 中执行完整扫描。 - 保持
reportsPath稳定,以便下游分析工具始终从已知位置读取内容。 - 在请求完整报告转储之前,优先使用
megalinter_get_issue_summary进行问题分流。 - 定期运行
megalinter_get_security_recommendations,持续落实前移安全覆盖。
其他用例
- 合并前质量门禁:在 PR 检查中运行
megalinter_run并发布 SARIF 输出。 - 仓库入门套件:使用
megalinter_get_linters和megalinter_list_flavors快速选择基线。 - 安全基线报告:结合使用
megalinter_parse_reports和megalinter_get_issue_summary,定期生成快照。 - 合规证据:将生成的报告和摘要作为 CI 产物保存,以便留存审计记录。
- 开发者自助服务:让贡献者直接通过 Copilot Chat 查询可用的 Linter 和报告器。
相关项目
MegaLinter 官方资源
- MegaLinter 网站 — 全面的文档和配置指南
- MegaLinter 仓库 — 源代码和问题跟踪
- mega-linter-runner — 此服务使用的 npm 包
CI/CD 集成
- MegaLinter Azure DevOps Extension — 同一作者开发的 ADO 任务(也获得 Ox Security 认可)
- GitHub Actions:使用 MegaLinter 官方 GitHub Action
- GitLab CI/CD:参阅 MegaLinter GitLab integration docs
- Jenkins、CircleCI 等:通过 Docker 在任何 CI/CD 流水线中运行 MegaLinter
模型上下文协议
社区与贡献
致谢与许可
由 Carl Dawson 在 Down At The Bottom Of The Mole Hole 组织下维护。
采用 MIT 许可证授权。MegaLinter 由 Ox Security 管理。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
