mcpField
M
megalinter

megalinter

本地服务
github.com/DownAtTheBottomOfTheMoleHole开发工具31 周前更新

关于 megalinter

MegaLinter MCP Server 通过 MCP 接口,让开发者在本地或 CI/CD 中运行 Ox Security MegaLinter。它将可配置扫描与检查器发现、报告解析、问题汇总和安全建议工具结合起来。

主要功能

  1. 01运行可配置的 MegaLinter 扫描
  2. 02生成最简 .mega-linter.yml
  3. 03按语言和能力查找检查器
  4. 04解析 JSON 和 SARIF 报告
  5. 05按严重程度或检查器汇总问题
  6. 06提供安全方面的修复建议

适用场景

  1. 01对代码仓库执行快速或安全扫描
  2. 02创建基础 MegaLinter 配置
  3. 03查看并筛选扫描报告中的问题
  4. 04查找适用于特定语言或安全任务的检查器

MCP 相关

它向 MCP 客户端提供 MegaLinter 执行、配置、发现和报告分析工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"downatthebottomofthemolehole-megalinter": {
"command": "npx",
"args": [
"-y",
"@downatthebottomofthemolehole/megalinter-mcp-server"
]
}
}
}
启动命令npx -y @downatthebottomofthemolehole/megalinter-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@downatthebottomofthemolehole/megalinter-mcp-server3.0.2

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
envstring否传递给 --env 的环境变量字符串(例如:DISABLE_LINTERS=SPELL_CSPELL,MARKDOWN_MARKDOWNLINT)。
fixboolean否应用自动修复。
helpboolean否显示 mega-linter-runner 帮助信息。
pathstring否要检查的目录路径。
imagestring否可选的完整 Docker 镜像覆盖值。
flavorstring否MegaLinter 风格。
installboolean否生成 MegaLinter 入门配置文件。
releasestring否MegaLinter Docker 镜像标签。
extraArgsarray否要追加的 CLI 参数。
configFilestring否.mega-linter.yml 文件的路径。
reportsPathstring否写入报告的目录。
containerNamestring否可选的 Docker 容器名称。
runnerVersionstring否mega-linter-runner npm 版本。使用 'latest' 或指定版本。
disableLintersstring否要禁用的 linter 逗号分隔列表。
timeoutSecondsnumber否命令超时时间(秒)。
removeContainerboolean否完成后移除容器。
workingDirectorystring否执行命令的目录。默认为当前进程目录。
lintChangedFilesOnlyboolean否如果为 true,则设置 VALIDATE_ALL_CODEBASE=false,仅 lint 已更改的文件。

详细介绍

MegaLinter MCP 服务

Down At The Bottom Of The Mole Hole 横幅

注意: 这是一个由社区维护的 MCP 服务,并非官方 Model Context Protocol 服务,但 Ox Security 已批准将其作为官方 MegaLinter 工具的补充。

CI/Publish Coverage npm License: MIT Node Version

一个用于通过 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。用于扫描时,会强制使用 security flavor。
  • autoFixOnly(布尔值,可选):在 linter 查询中仅返回支持自动修复的 linter。
  • timeoutMinutes(数字,可选):扫描操作的超时时间。默认值:20。
  • summaryOnly(布尔值,可选):扫描时返回简洁输出。默认值:true。
  • flavor(字符串,可选):扫描操作的可选 flavor 覆盖值。
  • fix(布尔值,可选):强制对扫描操作进行自动修复。
  • targetPath(字符串,可选):write-config 请求的配置输出路径。

示例:

  • request: "quick scan" -> 对已更改文件运行 ci_light。
  • request: "full scan" -> 运行 all flavor。
  • request: "security scan" -> 运行 security flavor。
  • 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. 前移安全问题分流
  1. 请 Copilot 运行扫描:
@megalinter run megalinter on this repository with reports enabled
  1. 解析生成的报告:
@megalinter parse the json report in megalinter-reports
  1. 总结并确定优先级:
@megalinter summarise error-level issues and top failing linters
  1. 请求安全指导:
@megalinter generate security recommendations from the current report
2. 特定语言的 Linter 入门
  1. 查找适用于你的技术栈的 Linter:
@megalinter list python security linters with autofix support
  1. 生成初始配置:
@megalinter create a megalinter config file with apply fixes set to none
  1. 禁用不适用的 Linter 并逐步调整。
3. CI/CD 报告器选择
  1. 列出报告器:
@megalinter list available reporters
  1. 为你的流水线选择格式(例如,用于安全工具的 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 官方资源
CI/CD 集成
模型上下文协议

社区与贡献

致谢与许可

由 Carl Dawson 在 Down At The Bottom Of The Mole Hole 组织下维护。

采用 MIT 许可证授权。MegaLinter 由 Ox Security 管理。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。