mcpField
D
diffctx

diffctx

ローカル
diffctx.comバージョン管理61 週間前に更新

diffctx について

diffctxはGitの変更から影響範囲を調べ、差分外の呼び出し元、関連テスト、契約をエージェントやレビュアーに示し、トークン予算内で確認用コードを選びます。インデックスやモデル呼び出しを使わず、ローカルで決定論的に動作します。

主な機能

  1. 01変更の影響を受ける呼び出し元とテストの特定
  2. 02トークン予算内でのレビュー対象選定
  3. 03シンボルと複数の差分範囲の検索
  4. 04順位付きJSONまたはMarkdownの出力
  5. 05静的解析で解決できない関係の明示

活用シーン

  1. 01ブランチやコミットの影響範囲のレビュー
  2. 02コードレビューに必要な情報の選定
  3. 03特定シンボルの呼び出し元の調査
  4. 04CIでの変更コンテキスト提供

MCP 対応

MCPサーバーとCLIは同じ解析エンジンを使い、MCPクライアントから変更の影響範囲や関連コードを照会できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"nikolay-e-diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}
起動コマンドuvx diffctx

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

パッケージ
pypidiffctx1.20.0

ツール

1

掲載時のツール一覧 · 6 日前に更新

パラメーター型必須説明
modestringいいえ
symbolanyいいえ
diff_refanyいいえ
clipboardbooleanいいえ
repo_pathstringはい
max_tokensintegerいいえ
fragment_idsanyいいえ
budget_tokensintegerいいえ
include_raw_diffbooleanいいえ

詳細

diffctx — git の変更がどこに影響するか、レビューすべきコード

CI PyPI crates.io npm MCP Registry

diffctx は、エージェントやレビュアーに、変更が diff の範囲外でどこに影響するか――呼び出し元、その先にあるテスト、変更がまたぐコントラクト――を伝え、トークン予算内で変更を理解するために必要なコードを選びます。ローカルで動作し、決定論的で、インデックスもモデル呼び出しも不要です。呼び出し元の解決は言語ごとに静的に行われます。解決できない場合は、ゼロと表示するのではなく、その旨を回答します。

以前は treemapper として公開されていました。すべてのコマンド、フラグ、API 呼び出しは変更なく動作します。

インストール

diffctx はコマンドラインツールです。MCP サーバー、Claude Code プラグイン、GitHub Action は、すべて同じエンジンを実行します。

CLI
uvx diffctx . --diff HEAD~1             # zero-install, run once via uv
pipx install diffctx                    # isolated CLI
pip install diffctx                     # into an active environment
cargo install diffctx                   # native binary from crates.io, no Python
npx diffctx . --diff HEAD~1             # npm wrapper over the native binary
docker run --rm -v "$PWD:/repo" ghcr.io/nikolay-e/diffctx . --diff HEAD~1
scoop bucket add diffctx https://github.com/nikolay-e/diffctx   # Windows
scoop install diffctx/diffctx

cargo、npm、Docker、Scoop、および Linux、macOS、Windows の x64 と ARM 向けリリースアーカイブで提供されるネイティブバイナリは、すべてのモードで --diff と --symbol に対応しています。リポジトリ全体のエクスポート、Markdown パック、diffctx graph、MCP サーバーには Python パッケージが必要です。

任意の MCP クライアント

io.github.nikolay-e/diffctx として登録されています。

claude mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
codex mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
gemini mcp add diffctx uvx -- --from 'diffctx[mcp]' diffctx-mcp

Cursor、VS Code、Claude Desktop、Windsurf、Zed、Continue、Python API については、連携をご覧ください。

Claude Code プラグイン

MCP サーバーに加え、/diffctx:impact と、コミットおよびプッシュのたびに実行されるフックを提供します。

claude plugin marketplace add nikolay-e/diffctx
claude plugin install diffctx@diffctx
CI

GitHub Action は、プルリクエストの diff コンテキストを任意のレビューステップに渡します。

使い方

diffctx . --diff --mode impact          # uncommitted work: callers outside the diff, their tests, contracts
diffctx . --symbol parse_config         # the same for a name, no change needed
diffctx . --diff main...feature         # the code to review a branch, packed under the auto budget
diffctx . --diff HEAD~1 --budget 12000  # the last commit, capped at 12k o200k tokens
diffctx . --diff 24h --mode locate      # today's work as ranked JSON, no source bodies
diffctx .                               # whole-tree export, Markdown

--diff には、git の範囲、staged、または現在を終点とする期間(24h、90min、2w)を指定します。すべてのフラグ、デフォルト値、終了コードについては、コマンドラインリファレンスをご覧ください。

diffctx のデモ

比較

リポジトリ全体を対象とするパッカーはすべてをエクスポートし、コードグラフサーバーは維持管理されたインデックスに対してクエリに回答します。diffctx はdiff を起点とします。入力は変更で、出力は変更が影響する箇所と、その変更を理解するための情報です。測定結果や、ほかの 2 つが適しているケースについては、COMPARISON.mdをご覧ください。

詳細

Apache 2.0

コメント

MCP は初めてですか?

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

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