mcpField
S
sizecheck

sizecheck

ローカル
github.com/CloudCorpRecordsバージョン管理01 週間前に更新

sizecheck について

sizecheckは、変更ファイルの差分量、変更されたエクスポート、ディレクトリの広がりから、プルリクエストの影響範囲をローカルで評価するツールです。リスクや差分量の大きいファイルを示し、大規模な変更には分割案を提示します。

主な機能

  1. 01スコアとリスク区分の算出
  2. 02ファイル数と行数の集計
  3. 03トップレベルディレクトリ別の変更集計
  4. 04差分量が多い上位5ファイルの表示
  5. 05大規模変更の分割案の提示

活用シーン

  1. 01プルリクエストのレビュー負荷の評価
  2. 02差分量が最も多いファイルの特定
  3. 03別々の変更に分けられるディレクトリ群の特定

MCP 対応

MCPクライアントに`score_blast_radius`ツールを公開し、スコア、リスク、集計、ディレクトリ別内訳、差分量の多いファイル、分割案を返します。

設定

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

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

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

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

ツール

1

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

パラメーター型必須説明
filesarrayはいプルリクエストで変更されたファイル(1 つ以上)

詳細

sizecheck

プルリクエストが1つのファイルに3行だけの変更を加える場合もあれば、リポジトリの半分にまたがって3,000行を変更する場合もあり、レビューの負担は同じではありません。sizecheck は変更されたファイルの一覧(各ファイルのパス、追加・削除された行数、任意で変更されたエクスポートシンボル数)を受け取り、影響範囲レポートにまとめます。

  • スコアとリスク — 1つの整数スコアです。変更行数(追加行数と削除行数の合計)に、変更されたエクスポートシンボル1つにつき25ポイント、最初のディレクトリを超えるトップレベルディレクトリ1つにつき10ポイントを加算します。スコアはリスク区分に対応します。100未満はsmall、100~399はmedium、400~999はlarge、1000以上はhugeです。
  • 合計 — ファイル数と、追加行数、削除行数、変更行数、変更されたエクスポートシンボル数の合計です。スコアを常に入力値と照らし合わせて確認できます。
  • ディレクトリごとの分布 — トップレベルディレクトリごとに変更をまとめます(パスにディレクトリがないファイルは"(root)"として扱います)。変更行数の降順、次にディレクトリ名の昇順で並べます。
  • 変更の多いファイル — 変更行数が最も多いファイルを5つ表示します。同数の場合はパスの昇順で並べ、特に詳しく確認すべきファイルを先に表示します。
  • 分割の提案 — リスクがlargeまたはhugeの場合、最大のものを除くすべてのディレクトリグループを、個別にマージできる変更部分として一覧表示します。リスクがsmallまたはmediumの変更や、単一のディレクトリに収まる変更には提案はありません。

変更された各ファイルには、一意で空ではないpathと、0以上の整数であるaddedおよびdeletedの値が必要です。 exports_changedは省略可能(デフォルトは0)で、指定する場合は0以上の整数でなければなりません。kindも省略可能(デフォルトは"code")で、指定する場合は"code"、"test"、"docs"、"config"、"other"のいずれかでなければなりません。kindは検証されますが、スコアには影響しません。無効な入力の場合は、問題のあるパスを示す検証エラー(例:files[0].added must be an integer >= 0)が返され、部分的なレポートは生成されません。計算は純粋かつローカルで実行されます。ネットワークや設定は不要で、渡された入力以外のファイルを読み込むこともありません。

CLI

npx @reneturcios/sizecheck score --input args.json
npx @reneturcios/sizecheck --version

args.jsonには引数オブジェクト全体を記述します。

{
  "files": [
    { "path": "src/api.ts", "added": 120, "deleted": 30, "exports_changed": 3 },
    { "path": "src/api.test.ts", "added": 80, "deleted": 10, "kind": "test" },
    { "path": "docs/api.md", "added": 25, "deleted": 5, "kind": "docs" }
  ]
}

レポートはJSONとして出力されます。

{
  "score": 355,
  "risk": "medium",
  "files_count": 3,
  "added": 225,
  "deleted": 45,
  "churn": 270,
  "exports_changed": 3,
  "by_directory": [
    { "directory": "src", "files": 2, "churn": 240 },
    { "directory": "docs", "files": 1, "churn": 30 }
  ],
  "hottest_files": [
    { "path": "src/api.ts", "churn": 150 },
    { "path": "src/api.test.ts", "churn": 90 },
    { "path": "docs/api.md", "churn": 30 }
  ],
  "split_suggestions": []
}

スコアは、変更行数270 + 25 × エクスポート3件 + 追加ディレクトリ1つ × 10 = 355です。

終了コード:成功時は0、実行時エラー時(読み取り不能または無効な入力ファイル、無効な入力を含む)は1、使用方法のエラー時は2です。

MCP サーバー

npx -y @reneturcios/sizecheck mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "sizecheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/sizecheck", "mcp"]
    }
  }
}
ツール
  • score_blast_radius — 変更されたファイルから、プルリクエストの影響範囲をスコア化します。

    • files(配列、必須、1件以上)— {path, added, deleted, exports_changed?, kind?}オブジェクトとして指定するファイル。pathはセット内で一意である必要があります。

    {score, risk, files_count, added, deleted, churn, exports_changed, by_directory, hottest_files, split_suggestions}を返します。

Docker

docker run -i ghcr.io/cloudcorprecords/sizecheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/sizecheck score --input /w/args.json

開発

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 つのサーバーを複数のクライアントで再利用できます。