envdiff について
envdiffはローカルとCIの環境記述を比較し、環境差異の調査を支援します。変数の値は出力せず、名前だけを報告します。
主な機能
- 01Node、OS、ロックファイル項目の比較
- 02片側だけにある環境変数の検出
- 03値が異なる変数名の報告
- 04JSON形式で差異数を出力
活用シーン
- 01ローカルとCIの環境差異の調査
- 02機密値を出さずに環境を比較
MCP 対応
MCP サーバーは、必須のローカル環境記述とCI環境記述を比較する `diff_environments` ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ci | object | はい | CI 環境の記述 |
| ci.os | string | いいえ | オペレーティングシステム識別子 |
| ci.env | object | いいえ | 文字列マップ形式の環境変数(値は比較しますが、表示しません) |
| ci.node | string | いいえ | Node.js のバージョン文字列 |
| ci.lockfile_present | boolean | いいえ | ロックファイルが存在するかどうか |
| local | object | はい | ローカル環境の記述 |
| local.os | string | いいえ | オペレーティングシステム識別子 |
| local.env | object | いいえ | 文字列マップ形式の環境変数(値は比較しますが、表示しません) |
| local.node | string | いいえ | Node.js のバージョン文字列 |
| local.lockfile_present | boolean | いいえ | ロックファイルが存在するかどうか |
詳細
envdiff
「自分のマシンでは動く」――マシンのどの部分でしょうか? envdiff は 2 つの環境記述を比較し、通常は開発者の ローカル環境と CI 環境を比較して、どこが異なるかを正確に報告します。
- Node のバージョン、OS、ロックファイルの有無を
フィールドとして比較します(フィールドがない場合は
nullとして報告されます)。 - 片方にしか存在しない環境変数をキー単位で報告します。
- 値が異なる環境変数をキー名のみで報告します。値は 比較されますが、レポートに出力されることはありません。そのため、 記述にシークレットが含まれていても漏えいしません。
記述は小さな JSON オブジェクトです。
{"node": "20.11.0", "os": "linux", "env": {"CI": "true"}, "lockfile_present": true}
――すべてのフィールドは省略可能です。
純粋なローカル処理です。ネットワークも設定も必要ありません。
CLI
npx @reneturcios/envdiff diff local.json ci.json
npx @reneturcios/envdiff --version
出力は比較レポートを JSON 形式で示し、
summary.total_differences に差異の合計数が含まれます。終了コード:成功時は 0
(差異はエラーではなく、結果です)、実行時エラー時は 1
(記述を読み取れない、または無効な場合)、使用方法のエラー時は 2 です。
MCP サーバー
npx -y @reneturcios/envdiff mcp
MCP クライアントの設定:
{
"mcpServers": {
"envdiff": {
"command": "npx",
"args": ["-y", "@reneturcios/envdiff", "mcp"]
}
}
}
ツール
-
diff_environments— 2 つの環境記述を比較します。local(オブジェクト、必須)— ローカルの記述ci(オブジェクト、必須)— CI の記述
各記述:
node(文字列)、os(文字列)、env(文字列のマップ)、lockfile_present(ブール値)。すべて省略可能です。
Docker
docker run -i ghcr.io/cloudcorprecords/envdiff
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/envdiff diff /w/local.json /w/ci.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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。