
2026/02/28 19:01
**「コンテキスト・ウィンドウを無駄にしない―Claude Code で MCP 出力を 98% 削減した手法」**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Claude Context Mode は、通常 200 K‑トークンウィンドウを満たすツール呼び出しの出力を数百バイトに縮小し、使用可能なセッション時間を約30分から数時間に延長します。
各
execute 呼び出しは独自の隔離されたサブプロセスで実行され、サンドボックスは stdout のみを捕捉するため、原始ログ、API 応答、およびスナップショットはサンドボックスから外れません。11 の実際のシナリオでは、出力は 56 KB(Playwright スナップショット)または 59 KB(20 件の GitHub イシュー)から 1 KB 未満に縮小されます—例:56 KB → 299 B、59 KB → 1.1 KB、45 KB → 155 B。プラグインは ten runtimes(JavaScript/TypeScript, Python, Shell, Ruby, Go, Rust, PHP, Perl, R)をサポートし、Bun は高速な JS/TS 実行のために自動検出されます。認証済み CLI(gh, aws, gcloud, kubectl, docker)は継承された環境変数と設定パスを介して資格情報を透過的に渡し、シークレットが会話から外れるようにします。
Claude の Knowledge Base はマークダウンヘッダーでインデックス化され、SQLite FTS5 テーブルに BM25 ランキングと Porter ステミングが適用されます;検索は要約ではなく正確なコードブロックを返します。
プラグインマーケットプレイス(
/plugin marketplace add mksglu/claude-context-mode)または MCP CLI (claude mcp add context-mode) でインストールできます。Context Mode はツール出力を PreToolUse フック経由でルーティングし、サブエージェントが batch_execute を採用できるようにし、Bash サブエージェントを汎用エージェントへ変換します。結果として、200 K‑トークンウィンドウは長時間維持され、豊富なツール出力でのマルチターン対話が可能になり、CI/CD パイプライン、デバッグワークフロー、および低いトークンコストと高い生産性を享受できるあらゆるシナリオに有用です。
本文
Claude Code の MCP ツール呼び出しは、すべての生データを 200K コンテキストウィンドウに書き込みます。
Playwright のスナップショットは 56 KB。GitHub のイシュー 20 件は 59 KB。アクセスログ 1 件は 45 KB。30 分後にはコンテキストの 40% が失われてしまいます。
Context Mode は Claude Code とこれらの出力の間に位置する MCP サーバーです。315 KB のデータが 5.4 KB に縮小され、98% の削減を実現します。
問題点
MCP は AI エージェントが外部ツールを利用する標準手段となりましたが、核心的な矛盾があります。すべてのツール操作はコンテキストウィンドウに両方向からデータを埋め込みます――入力時の定義と出力時の生データです。
81 個以上のツールがアクティブになると、最初のメッセージ前に 143K トークン(72 %)が消費されます。その後、ツールはデータを返します。Playwright のスナップショットだけで 56 KB、GitHub イシューリストで 59 KB、テストスイートの実行、ログファイルの読み込み、ドキュメント取得などもそれぞれが残りのコンテキストを消費します。
Cloudflare は Code Mode によってツール定義を 99.9 % 圧縮できることを示しました。そこで私たちは「逆方向はどうか?」と問い直しました。
サンドボックスの仕組み
呼び出しごとに独立したサブプロセスが生成され、別々のプロセス境界で動作します。スクリプト同士はメモリや状態を共有できません。サブプロセスはコードを実行し、標準出力だけをキャプチャして会話コンテキストに渡します。ログファイルや API 応答、スナップショットなどの生データはサンドボックスから外れません。execute- JavaScript、TypeScript、Python、Shell、Ruby、Go、Rust、PHP、Perl、R の 10 種類のランタイムが利用可能です。Bun は自動検出され、JS/TS 実行を 3–5 倍高速化します。
- 認証済み CLI(gh, aws, gcloud, kubectl, docker)は資格情報パススルーで機能します。サブプロセスは環境変数と設定ファイルを継承し、会話には露出しません。
ナレッジベースの仕組み
インデックスツールは Markdown コンテンツを見出し単位で分割し、コードブロックはそのまま保持した上で SQLite の FTS5(Full‑Text Search 5)仮想テーブルに保存します。検索は BM25 ランキングを使用し、語頻度・逆文書頻度・文書長正規化に基づく確率的関連性アルゴリズムです。インデックス時に Porter ステミングが適用されるため、「running」「runs」「ran」は同じステムとしてマッチします。
search を呼び出すと、要約や近似ではなく、実際のコードブロックとその見出し階層を返します。fetch_and_index は URL にも拡張され、ページを取得して HTML を Markdown に変換し、分割・インデックス化します。生ページはコンテキストに入ることはありません。
実績数値
11 の実際のシナリオ(テストトリアージ、TypeScript エラー診断、git diff レビュー、依存関係監査、API 応答処理、CSV 分析)で検証され、すべて 1 KB 以下の出力です。
| 例 | 生データ | 圧縮後 |
|---|---|---|
| Playwright スナップショット | 56 KB | 299 B |
| GitHub イシュー(20 件) | 59 KB | 1.1 KB |
| アクセスログ(500 リクエスト) | 45 KB | 155 B |
| 分析 CSV(500 行) | 85 KB | 222 B |
| Git ログ(153 コミット) | 11.6 KB | 107 B |
| レポ研究(サブエージェント) | 986 KB | 62 KB (5 呼び出し vs 37) |
セッション全体で 315 KB の生データが 5.4 KB に縮小。遅延前のセッション時間は約 30 分から約 3 時間へ。45 分後に残るコンテキストは 99 %(従来は 60 %)。
インストール
2 通りあります。
-
Plugin Marketplace で自動ルーティングフックとスラッシュコマンドを取得:
/plugin marketplace add mksglu/claude-context-mode /plugin install context-mode@claude-context-mode -
MCP‑only(ツールだけが欲しい場合):
claude mcp add context-mode -- npx -y context-mode
Claude Code を再起動すれば完了です。
実際に変わること
作業方法はそのまま。Context Mode は
PreToolUse フックを含み、ツール出力を自動的にサンドボックスへルーティングします。サブエージェントは batch_execute を主なツールとして学習し、Bash サブエージェントは汎用化されて MCP ツールへアクセスできるようになります。
実際の差はコンテキストウィンドウが膨らむのを防げる点です。30 分で壁にぶつかっていたセッションが 3 時間まで延長できます。同じ 200K トークンをより慎重に活用できるようになります。
なぜ作ったのか
私は MCP Directory & Hub(1 日あたり 100K+ リクエスト)を運営しており、すべての MCP サーバーを見ています。共通するパターンは「ツールが生データをコンテキストに書き込む」ことだけで、出力側の解決策はほとんどありませんでした。
Cloudflare の Code Mode ブログ投稿がツール定義を圧縮できることを示した後、同じ原理を逆方向に適用することで問題を解決できると気付きました。まず自分の Claude Code セッションで試し、コンテキスト劣化まで 6 倍長く働けることを確認。その後オープンソース化しました。
オープンソース。MIT ライセンス。
github.com/mksglu/claude-context-mode
—Mert Köseoğlu、Senior Software Engineer、AI コンサルタント
[x.com/mksglu · linkedin.com/in/mksglu · mksg.lu*