context-mode:MCPツールの出力をコンテキストウィンドウの外に置き、315KBを5.4KBへ、SQLiteで圧縮後もセッションを保持

Published · AI Daily — AI-assisted deep research, methodology & disclosure

mksglu/context-modeは、ツール出力でコンテキストウィンドウが埋まるコーディングエージェントの問題に向けたMCPサーバーだ。サンドボックスのツールが生データをコンテキストに入れず、READMEの例では315KBが5.4KB(98%減)になる。セッションのイベントはSQLiteに記録し、会話の圧縮後はFTS5とBM25で関連部分だけを取り戻す。17のクライアントに対応し、11のMCPツールを持つ。スターは約2.7万。READMEのバッジはELv2だが、GitHubのライセンス検出は「NOASSERTION」を示す。

コーディングエージェントで最も見落とされやすいコストは、コンテキストウィンドウだ。mksglu/context-modeのREADMEは冒頭でこう率直に述べる。MCPツールの呼び出しはどれも、生データをコンテキストウィンドウに流し込む。Playwrightのスナップショットは1回56KB、GitHubのissue20件は59KB、アクセスログ1件は45KB。30分たつとコンテキストの40%がなくなる。さらに、エージェントが空きを作るために会話を圧縮すると、編集していたファイル、進行中のタスク、直前の依頼を忘れてしまう。context-modeは、これらの問題をまとめて扱うMCPサーバーだ。2026年10月13日時点で、リポジトリは約27,340スター、1,948フォーク、TypeScript製で、最新の更新は10月12日である。

対策は四つに分かれる。第一はコンテキストの節約だ。サンドボックスのツールが生データをコンテキストウィンドウの外に留め、READMEの例では315KBが5.4KBになる。98%の削減だ。第二はセッションの連続性。ファイル編集、git操作、タスク、エラー、ユーザーの判断をすべてSQLiteに記録し、会話が圧縮されても、そのデータを丸ごと戻さずイベントをFTS5にインデックスして、BM25検索で関連分だけを取り出す。これでモデルは続きから再開できる。READMEは、--continueを使わない場合は前のセッションのデータを即座に削除し、新しいセッションは白紙から始まると明記している。第三は「コードで考える」。LLMはデータ処理係ではなく、分析をプログラムする側であるべきだという考えだ。50個のファイルの関数数を数えるなら、50個を読み込まず、短いスクリプトを書いて結果だけを出す。READMEは47回のファイル読み取り(約700KB)と、1回のctx_execute(3.6KB)を対比する。第四は文体を強制しないこと。生データをコンテキストの外に置くだけで、最終回答の書き方は指図しない。Moonshot AIがkimi-k2.5で報告したissueを引き、過度な簡潔さの要求がコーディングと推論のベンチマークを損ない得ると述べる。

ツール面では11のMCPツールを持つ。サンドボックス6種(ctx_batch_execute、ctx_execute、ctx_execute_file、ctx_index、ctx_search、ctx_fetch_and_index)とメタツール5種(ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight)だ。Claude Codeではプラグインとして入り、PreToolUse、PostToolUse、UserPromptSubmit、PreCompact、SessionStart、Stopのフックを登録する。ルーティングは自動で、SessionStartフックが実行時にルーティング指示を注入し、プロジェクトにファイルは書かない。導入は/plugin marketplace add mksglu/context-modeと/plugin install context-mode@context-modeの2コマンドで、その後に再起動する。まず試したいなら、MCPだけをclaude mcp add context-mode -- npx -y context-modeで追加できるが、フックがないので自動ルーティングはなく、モデルが優先して使うとは限らない。スラッシュコマンドには、節約量を見るctx-stats、診断のctx-doctor、ローカル知識ベースを扱うctx-indexとctx-search、索引内容を完全に消すctx-purgeがある。

対応環境の広さも特徴だ。READMEは17のクライアントに対応するとし、導入の複雑さで分類する。フックが使えるプラットフォームは自動でルーティングを強制し、フックのないプラットフォームは1回だけルーティング説明のファイルをコピーする。Claude Code以外に、Gemini CLI、VS Code Copilot、JetBrains Copilot、Copilot CLI、OpenCode、KiloCodeなどが文書化され、多くはNode.js 22.5以上かBunを要する。OpenCodeとKiloCodeは本物のSessionStartフックがないため、実験的なシステムプロンプト変換フックで代用し、欠けたUserPromptSubmitの代わりにchat.messageフックを使う。ctx_insightは、AI支援のエンジニアリングチーム向けの組織レベル分析を行うホスト型Insightダッシュボードを開く。ローカルツールと並ぶ、ホスト型サービスへの入口だ。

ライセンスは別に注意したい。READMEのバッジはELv2、すなわちElastic License 2.0だが、GitHubの検出結果はNOASSERTIONで、標準のSPDXライセンスとしては認識されていない。ELv2はソース公開型のライセンスで、MITやApache-2.0のようなオープンソースライセンスとは異なり、ソフトウェアをホスト型サービスとして提供する用法などに制限がある。自社製品や外部向けサービスで使うなら、先にリポジトリのLICENSEファイルを自分で読むこと。

私たちの見方では、このプロジェクトは現実的で高くつく痛みを突き、設計の筋も明快だ。生データをコンテキストに入れず、セッションイベントを検索可能にし、モデルにデータを読ませる代わりにスクリプトを書かせる。ただし冷静さは要る。第一に、98%や315KBから5.4KBはREADMEの例示値で、実際の節約は自分のツール出力と作業習慣しだいだ。ctx_statsで自分のタスクを測るとよい。第二に、ルーティングの強制はフックに依存し、フックのない環境では効果がモデルの自律に左右される。第三に、セッションデータはローカルのSQLiteに入るので、機密性の高いコードやログを扱うときは、保存場所、保持方針、ctx_purgeの挙動を把握しておくこと。チームに広げる前に、中規模の実タスクで有効化の前後を比べ、コンテキスト消費と完了品質を確かめたい。

Sources

FAQ

context-modeは何を解決するのか。

READMEは問題を四つに分ける。ツール出力が生データをコンテキストに流し込む(Playwrightのスナップショット1回56KB、GitHubのissue20件で59KB、アクセスログ1件45KB、30分で40%が消える)。圧縮でエージェントが編集中のファイルやタスクを忘れる。モデルがスクリプトを書かず自分で計算する。回答の文体をツールが指図しない。それぞれに対策がある。

圧縮後の連続性はどう保つのか。

ファイル編集、git操作、タスク、エラー、ユーザーの判断をすべてSQLiteに記録する。会話が圧縮されても、そのデータを丸ごとコンテキストに戻さず、FTS5にインデックスしてBM25検索で関連分だけを取り出す。READMEによれば、--continueを使わない場合、前のセッションのデータは即座に削除される。

導入とライセンスで注意することは。

Claude Codeでは/plugin marketplace add mksglu/context-modeと/plugin install context-mode@context-modeで導入するか、MCPだけならclaude mcp add context-mode -- npx -y context-modeを使う。多くの環境でNode.js 22.5以上が必要だ。READMEのバッジはELv2、GitHubの検出はNOASSERTIONなので、商用利用の前にLICENSEファイルを読むこと。