megalinter について
MegaLinter MCP Serverは、MCPインターフェース経由でOx Security MegaLinterをローカルまたはCI/CDで実行する開発者向けサーバーです。設定可能なスキャンに加え、リンターの検索、レポート解析、問題の集計、安全上の推奨事項を提供します。
主な機能
- 01設定可能なMegaLinterスキャンの実行
- 02最小構成の.mega-linter.ymlを生成
- 03言語や機能でリンターを検索
- 04JSONおよびSARIFレポートを解析
- 05重要度やリンター別に問題を集計
- 06セキュリティ対策を提案
活用シーン
- 01リポジトリの簡易スキャンやセキュリティスキャン
- 02MegaLinterの基本設定を作成
- 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 | いいえ | Lint 対象ディレクトリのパス。 |
| 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 | いいえ | 無効にするリンターのカンマ区切りリスト。 |
| timeoutSeconds | number | いいえ | コマンドのタイムアウト(秒)。 |
| removeContainer | boolean | いいえ | 完了後にコンテナーを削除します。 |
| workingDirectory | string | いいえ | コマンドを実行するディレクトリ。デフォルトは現在のプロセスのディレクトリです。 |
| lintChangedFilesOnly | boolean | いいえ | true の場合、VALIDATE_ALL_CODEBASE=false を設定して、変更されたファイルのみを lint します。 |
詳細
MegaLinter MCP サーバー
注記: これはコミュニティによって保守されている MCP サーバーです。公式の Model Context Protocol サーバーではありませんが、公式 MegaLinter ツールを補完するものとして Ox Security の承認を受けています。
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:ランタイムとランナーのオプションを設定して MegaLinter を実行します。megalinter_write_config:最小限の.mega-linter.ymlファイルを生成します。megalinter_list_flavors:一般的な MegaLinter フレーバーを返します。megalinter_get_linters:言語、セキュリティの重点分野、自動修正機能に基づいて、利用可能なリンターを検出します。megalinter_get_security_info:セキュリティリンターを脅威カテゴリ別に分類します。megalinter_get_reporters:サポートされているレポート出力形式と、CI 向けレポーターを一覧表示します。megalinter_parse_reports:JSON または SARIF 形式のレポート成果物を解析します。megalinter_get_issue_summary:レポートの問題をリンター別および重大度別に集計します。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 エージェントと Copilot — MCP を介してコード品質チェックを自動化できます
必要なのは Docker(または Colima などの互換性のあるコンテナランタイム)だけです。
ツール一覧
| ツール | カテゴリー | 一般的な結果 |
|---|---|---|
megalinter_quick_action | インタラクティブ | 短い自然なリクエストをデフォルト設定で処理します |
scan | エイリアス | クイックスキャン用の非常に短いエイリアスです |
summary | エイリアス | エラー概要用の非常に短いエイリアスです |
parse | エイリアス | レポート解析用の非常に短いエイリアスです |
help_quick | エイリアス | コンテキストに応じたヘルプ用の非常に短いエイリアスです |
megalinter_help_quick | ヘルプ | プロジェクトに応じた提案を表示します |
megalinter_run | 実行 | リンティングを実行し、レポート成果物を生成します |
megalinter_write_config | 設定 | ベースラインの .mega-linter.yml を生成します |
megalinter_list_flavors | 検索 | 技術スタックに適したフレーバーを特定します |
megalinter_get_linters | 検索 | 言語、セキュリティ、自動修正のサポート状況でリンターを絞り込みます |
megalinter_get_security_info | 検索 | SAST、シークレット、コンテナー、IaC ごとに分類されたセキュリティリンターを表示します |
megalinter_get_reporters | 検索 | ローカルおよび CI ワークフロー向けの出力/レポート形式を選択します |
megalinter_parse_reports | 分析 | JSON または SARIF のレポートを構造化された形式で読み取ります |
megalinter_get_issue_summary | 分析 | 問題の合計数と失敗数の多いリンターを要約します |
megalinter_get_security_recommendations | 分析 | シフトレフトのための実践的なセキュリティ対策を提示します |
ツール
megalinter_quick_action
短いリクエストを受け付け、適切なワークフローに振り分けるインタラクティブなショートカットです。
入力:
request(string、任意):短い指示です。デフォルト:quick scan。action(string、任意):明示的なクイックアクション(scan、config、flavors、linters、security、reporters、parse、summary、recommendations)。scanMode(string、任意):スキャンのプリセット(quick、full、security、fix)。target(string、任意):スキャン対象のディレクトリです。デフォルト:.。workingDirectory(string、任意):コマンドの作業ディレクトリです。reportsPath(string、任意):レポートのディレクトリです。デフォルト:megalinter-reports。reportType(string、任意):解析形式(jsonまたはsarif)。severity(string、任意):概要のフィルター(error、warning、info)。language(string、任意):リンターの検索に使用する言語フィルターです。スキャンの場合は、フレーバーのヒント(python、javascript、terraformなど)に対応付けられます。securityOnly(boolean、任意):リンターの検索ではセキュリティリンターのみを返します。スキャンの場合は、フレーバーをsecurityに固定します。autoFixOnly(boolean、任意):リンターの検索では自動修正に対応するリンターのみを返します。timeoutMinutes(number、任意):スキャンアクションのタイムアウトです。デフォルト:20。summaryOnly(boolean、任意):スキャンの簡潔な出力を返します。デフォルト:true。flavor(string、任意):スキャンアクションの任意のフレーバー上書きです。fix(boolean、任意):スキャンアクションで自動修正を強制します。targetPath(string、任意):write-config リクエストの設定出力パスです。
例:
request: "quick scan"-> 変更されたファイルに対してci_lightを実行します。request: "full scan"->allフレーバーを実行します。request: "security scan"->securityフレーバーを実行します。request: "summarise errors"-> エラーに絞り込んだ問題の概要を返します。request: "parse sarif report"-> SARIF 出力を解析します。action: "summary", severity: "error"-> フレーズ解析を行わず、決定的な概要を返します。action: "scan", scanMode: "security"-> 決定的なセキュリティスキャンを実行します。
scan(非常に短いエイリアス)
入力を最小限にしてクイックスキャンを実行します。カスタマイズ用の任意パラメーターを受け付けます。
入力:
language(string、任意):フレーバーに対応付けられる対象言語(例:python、javascript、terraform)。scanMode(string、任意):スキャンのプリセット(quick、full、security、fix)。デフォルト:quick。summaryOnly(boolean、任意):簡潔な出力を返します。デフォルト: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
CI 向けの形式を含む、利用可能な MegaLinter レポーターを返します。
入力:
- なし。
megalinter_parse_reports
レポートディレクトリから MegaLinter のレポートファイルを解析します。
入力:
reportsPath(string、任意):レポートディレクトリのパス。デフォルト:megalinter-reports。reportType(string、任意):レポートの種類(jsonまたはsarif)。デフォルト:json。
megalinter_get_issue_summary
megalinter-report.json の問題を要約し、重大度やリンターでフィルタリングできます。
入力:
reportsPath(string、任意):レポートディレクトリのパス。デフォルト:megalinter-reports。severityFilter(string、任意):重大度(error、warning、info)で結果をフィルタリングします。linterFilter(string、任意):リンター名で結果をフィルタリングします。
megalinter_get_security_recommendations
解析済みのレポートデータで有効なリンターに基づいて、セキュリティに関する推奨事項を生成します。
入力:
reportsPath(string、任意):レポートディレクトリのパス。デフォルト:megalinter-reports。
プロンプト集
@megalinter を使って、Copilot Chat で以下のプロンプトをコピーして貼り付けてください。
パスが指定されていない場合、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
期待される出力:リンターを実行し、すべての言語で見つかった問題を報告します。JSON、SARIF、テキスト形式のレポートを含む megalinter-reports/ を作成します。
設定を作成(megalinter_write_config)
@megalinter create a MegaLinter config at .mega-linter.yml
期待される出力:指定された設定を含み、カスタマイズ可能な .mega-linter.yml を作成します。
フレーバーを一覧表示(megalinter_list_flavors)
@megalinter list all available MegaLinter flavors
期待される出力:フレーバー(all、python、javascript、go など)を、説明とユースケースとともに一覧表示します。
リンターを検索(megalinter_get_linters)
@megalinter list python security linters with autofix support
期待される出力:現在のカタログから、Python 関連および多言語対応のセキュリティリンターのうち、自動修正に対応するもの(クエリに一致する場合)を絞り込んで一覧表示します。
セキュリティカテゴリ(megalinter_get_security_info)
@megalinter show MegaLinter security linter categories
期待される出力:セキュリティカテゴリ(例:sast、secrets、supply-chain、container、infrastructure)と、それに関連するリンター(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
期待される出力:重大度とリンターの入力でフィルタリングした問題の要約を、合計数と実行回数とともにリンターごとに集計します。
セキュリティに関する推奨事項(megalinter_get_security_recommendations)
@megalinter generate security recommendations using megalinter-reports
期待される出力:重大度の高い順に優先順位を付けた、実行可能なセキュリティ推奨事項を、リンター名、ルール 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 の型定義)
実行時の注意:
mega-linter-runnerは実行時にnpx経由で実行され、ツール入力の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 を押します。
テスト
Copilot Chat のシナリオ、手動での JSON-RPC チェック、トラブルシューティングのガイダンスについては、docs/TESTING.md を参照してください。
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. 言語別リンターの導入
- 使用している技術スタックに対応するリンターを確認します。
@megalinter list python security linters with autofix support
- 初期設定を生成します。
@megalinter create a megalinter config file with apply fixes set to none
- 適さないリンターを無効にして、調整を繰り返します。
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 を通じて、利用可能なリンターやレポーターを直接確認できるようにします。
関連プロジェクト
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 インテグレーションに関するドキュメントを参照してください
- Jenkins、CircleCI など:任意の CI/CD パイプラインで Docker 経由で MegaLinter を実行します
Model Context Protocol
コミュニティとコントリビューション
帰属およびライセンス
Down At The Bottom Of The Mole Hole 組織のもと、Carl Dawson がメンテナンスしています。
MIT License のもとでライセンスされています。MegaLinter は Ox Security が管理しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
