mksglu/context-mode
AI エージェントに生データを読ませず、会話の枠を長持ちさせる
どういうものか
AI のコーディングエージェントが、ツールの出力で会話の枠(コンテキスト)を使い切ってしまう問題を減らす MCP サーバーだ。README の例では、ブラウザ操作ツール Playwright のページのスナップショット1回で 56KB、GitHub の issue 20件で 59KB を食う。さらに枠が埋まって会話が圧縮(要約)されると、エージェントはどのファイルを直していたか、何を頼まれていたかを忘れてしまう。
対策の中心は、生のデータを会話の外で処理することだ。エージェントはファイルやログを直接読む代わりに、集計や抽出をするコードを書き、別のプロセスで実行させる。会話に入るのは、その出力だけ。ウェブページや、探したいことを指定した長い出力は、手元の SQLite に索引として保存し、必要な部分だけを検索で引き出す。対応している環境では、フックがツールの呼び出しを横取りし、出力の大きくなりそうな操作をこの仕組みへ回す。
もう1つの柱は、作業の続きを保つことだ。ファイルの編集、git の操作、タスク、エラー、利用者の判断を SQLite に記録しておき、会話が圧縮されたあとや再開したときに、関係する分だけを検索して戻す。Claude Code、Gemini CLI、VS Code の Copilot、Cursor、Codex CLI など多くの環境に対応するが、使えるフックの種類は環境ごとに違う。
どんなときに使うか
長い作業の途中で、エージェントが会話の圧縮を繰り返し、前の作業を忘れるとき
Claude Code など対応している環境では、編集したファイルや頼んだ内容が記録されているので、圧縮されたあとも続きから進めやすくなる。Cursor のように、圧縮後の復元がまだ使えない環境もある。
ログや API の応答、ウェブページなど、大きなデータを何度も読ませる作業が多いとき
データそのものを会話に流さず、集計した結果や必要な断片だけを渡せる。
注意点
ライセンスは Elastic License 2.0。 README によれば、ソースは公開されていて改変や再配布もできるが、ホスティングサービスとして提供することと、ライセンス表記を消すことは禁じられている。MIT のような自由なライセンスではない。
効果の数字は開発元の測定。 README は、1回の作業全体で 315KB の出力が 5.4KB になったとしている。フックが使えない環境では、節約は約60%にとどまるとも書いている。
前の作業を引き継ぐには、再開の指定が要る。 --continue を付けずに始めると、前回のセッションのデータはすぐに消える。