mcpField
L
layercheck

layercheck

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

layercheck について

layercheckは、Docker daemonやビルドを使わずにDockerfileを分析するコマンドラインツール兼stdio MCPサーバーです。開発者向けにレイヤー数やサイズを調べ、イメージ容量やビルドキャッシュを浪費しうる特定の記述を検出します。

主な機能

  1. 01Dockerfileの命令と継続行の解析
  2. 02レイヤーを生成する命令の集計
  3. 03指定されたレイヤーサイズの大きい順表示
  4. 04連続するRUN命令の検出
  5. 05早すぎる広範なCOPY、APTの残存物、ローカルADDの検出

活用シーン

  1. 01指定されたdocker historyのサイズから大きなレイヤーを特定
  2. 02イメージ容量を浪費しうるDockerfile記述の発見
  3. 03キャッシュに影響するCOPYの配置確認
  4. 04レイヤーサイズの入力と命令数の照合

MCP 対応

`analyze_dockerfile_layers`ツールを提供し、Dockerfileのテキストと任意のレイヤーサイズを受け取り、レイヤー数、サイズ順の一覧、浪費フラグなどを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-layercheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/layercheck"
]
}
}
}
起動コマンドnpx -y @reneturcios/layercheck

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/layercheck0.1.0
ocighcr.io/cloudcorprecords/layercheck:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
dockerfilestringはいDockerfile のテキスト
layer_sizesarrayいいえ各レイヤー生成命令(RUN、COPY、ADD)のサイズをバイト単位で、Dockerfile 内の順に指定します。docker history の報告値に合わせてください。配列の長さはレイヤー生成命令の数と一致する必要があります。

詳細

layercheck

Dockerfile 内のすべての RUN、COPY、ADD はイメージにレイヤーを残します。イメージサイズやビルドキャッシュの問題は、レイヤーに起因します。layercheck は Dockerfile をプレーンテキストとして読み取り、Docker デーモンもビルドも使わずに、次の内容を報告します。

  • \ による継続行を結合し、空行と # コメントを除外して解析した各命令と、レイヤーを生成するかどうか
  • レイヤー数と、レイヤーごとのサイズ(docker history の出力形式)を指定した場合は合計サイズ、およびサイズの大きい順に並べたレイヤー。最も大きなレイヤーが最初に表示されます
  • 検出された行番号を含む、判定条件が明確な無駄のフラグ:
    • CONSECUTIVE_RUN — RUN の直後に別の RUN がある場合。2 つを 1 つのレイヤーにまとめられます
    • BROAD_COPY_EARLY — 依存関係のインストール手順より前に COPY . .(または ./)が配置されている場合。ソースに変更があるたびにキャッシュが無効になります
    • APT_LEFTOVER — 同じ RUN 内で /var/lib/apt/lists を削除せずに apt-get install を実行している場合
    • ADD_LOCAL — 通常のローカルファイルに ADD を使用している場合。COPY のほうが意図の明確な命令です(リモート URL とアーカイブは問題ありません)

指定されたサイズの数が、レイヤーを生成する命令の数と一致しない場合、layercheck はそのまま対応付けるのではなく、両方の数を示して不一致を報告します。

CLI

npx @reneturcios/layercheck analyze --dockerfile Dockerfile
npx @reneturcios/layercheck analyze --dockerfile Dockerfile --sizes sizes.json
npx @reneturcios/layercheck --version

sizes.json は数値の JSON 配列です。Dockerfile 内での順序に従い、レイヤーを生成する各命令のサイズをバイト単位で指定します。 解析結果は 1 つの JSON オブジェクトとして出力されます。 {layer_count, total_size_bytes, instructions, biggest_layers, waste_flags}。

終了コード:成功時は 0、実行時エラー(読み取れないファイルやサイズの数の不一致を含む)時は 1、使用方法のエラー時は 2 です。

MCP サーバー

npx -y @reneturcios/layercheck mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "layercheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/layercheck", "mcp"]
    }
  }
}
ツール
  • analyze_dockerfile_layers — Dockerfile のレイヤーを解析し、無駄なレイヤーにフラグを付けます。
    • dockerfile(文字列、必須)— Dockerfile のテキスト
    • layer_sizes(数値の配列、任意)— Dockerfile 内での順序に従った、レイヤーを生成する各命令のサイズ(バイト単位)。配列の長さは、レイヤーを生成する命令の数と一致する必要があります

Docker

docker run -i ghcr.io/cloudcorprecords/layercheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/layercheck analyze --dockerfile /w/Dockerfile

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。