mcpField
L
lcc — Local Context Compiler

lcc — Local Context Compiler

ローカル
github.comAI・エージェント16今日更新

lcc — Local Context Compiler について

lccはコーディングエージェント向けのローカルコンテキスト圧縮ツールです。古いツール出力を退避し、残す内容はそのまま保持してハッシュ検証付きで復元できます。CLI、Claude Codeプラグイン、MCPサーバーとして提供されます。

主な機能

  1. 01セッションと文書のローカル圧縮
  2. 02ユーザーとアシスタントの発言をそのまま保持
  3. 03削除した出力の退避とハッシュ検証
  4. 04監査レポートと削除理由の生成
  5. 05トークン数と削減量のオフライン計測

活用シーン

  1. 01長いコーディングセッションのコンテキスト削減
  2. 02コンテキストから除かれたツール出力の復元
  3. 03圧縮時に残した内容と除いた内容の確認

MCP 対応

MCPサーバーとして、compact、compact_transcript、recall、inspect、prepare、explain、intakeの各ツールを公開し、MCPクライアントによる圧縮と退避内容の復元に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"lucasmartins-ai-lcc": {
"command": "uvx",
"args": [
"local-context-compiler"
]
}
}
}
起動コマンドuvx local-context-compiler

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

パッケージ
pypilocal-context-compiler1.2.0

ツール

7

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
textstringはい
providerenumいいえauto | jev | laya | mechanical
questionstringはい
thresholdnumberいいえ

詳細

lcc — ローカルコンテキストコンパイラー

要約で内容を失わず、コーディングエージェントのコンテキストを圧縮します。
lcc はモデルに不要なものを削り、それ以外はバイト単位でそのまま保持し、処理記録を作成します。

PyPI Python CI MIT GitHub stars

91 メッセージの Claude Code セッションで lcc measure-session を実行し、続いて退避モードで lcc compact を実行、その後 lcc recall が削除されたファイル読み込みの正確な行を返す様子

/compact と lcc の比較

Claude Code の /compact は、モデルが作成した要約でセッションを置き換えます。要約では、エージェントが 2 ターン後に必要とする正確なエラー、パス、行が失われます。lcc は逆の動作をします。古いツール出力はコンテキストから取り除かれますが、recall ですぐに取り出せます。また、すべてのユーザーメッセージとアシスタントメッセージは、元のまま保持されます。

実際の Claude Code セッション 1 件(193 メッセージ、75 ツール呼び出し)トークンユーザーとアシスタントのメッセージ削除されたツール出力
変更前57,08343 件、そのまま—
/compact1 つの要約要約に書き換え消失
lcc(rules、stashed)28,807(−49.5%)43 / 43 件、バイト単位でそのまま33 件、それぞれ recall ですぐに取得可能

lcc measure-session で計測(PyPI 1.2.0、オフライン、正確な o200k_base トークン数。再実行日:2026-10-23)。stash の注記に行数とサイズが記載されるようになった main では、同じセッションの結果は 28,983(−49.2%)です。このセッションは特に良好な結果が得られたケースの 1 つです。私の長時間セッション 299 件すべて(それぞれ 100 メッセージ以上、合計 36.3 M トークン)では、削減率の中央値は 21.8%(中央半分は 15%~31%、最大 65%)で、メッセージの損失はありませんでした(python benchmarks/research/long_sessions.py、2026-10-23、main)。これはすべて私のセッションでの結果です。ご自身のセッションで実行して、結果を投稿してください。

実際のリクエスト 172 件を対象とした事前登録済みテスト(エビデンス)では、stashed コンテキストと recall を使って回答したエージェントは、ファイルの想起において完全なコンテキストを使った場合と同等の成績でした(+0.006、95% CI −0.023~+0.034)。トークン数は 36.6% 少なくなりました。削除された内容についての質問の 90% で recall が呼び出されました。同じセッションを対象にした /compact 形式の要約では、正確な値の 73% を正しく回答しました(Opus が作成した /compact の再実装)。完全かつ逐語的なコンテキストでは 98% でした。

インストール

pip install "local-context-compiler[tiktoken]"   # the CLI is `lcc`
lcc fetch-tokenizer                               # once: exact token counts
lcc measure-session "$(ls -t ~/.claude/projects/*/*.jsonl | head -1)"   # your latest session

fetch-tokenizer は tiktoken のエンコーディングファイルを一度ダウンロードします。オンライン接続が必要な lcc のコマンドはこれだけで、実行しない場合、カウントには「概算」と表示されます。最後の行は、最新の Claude Code セッションを読み込み、ルールモードをオフラインで数秒間実行して、カウントのみを出力します。何も変更されず、マシンの外にデータが送信されることもありません。

Claude Code プラグイン(/compact の要約を置き換えます)。関数フックは早期アクセスのため、Claude Code 2.1.274 以降と以下のフラグが必要です。

export CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1
claude plugin marketplace add lucasmartins-ai/lcc
claude plugin install lcc@lcc --config provider=rules --config rulesMode=stashed

エージェントが削除された出力を取得できるよう、mcp__plugin_lcc_lcc__recall を許可してください。処理に失敗した場合や、削除が不十分な場合、プラグインは組み込みの要約に切り替わり、その旨をトーストで通知します。詳細:Claude Code ガイド。

MCP(Claude Code、Cursor、Claude Desktop、およびすべての stdio クライアント):

{"mcpServers": {"lcc": {"command": "lcc", "args": ["mcp"]}}}

ツール:compact、compact_transcript、recall、inspect、prepare、explain、intake(MCP ガイド)。

CLI(セッションファイルまたは任意のドキュメントを対象):

lcc compact ~/.claude/projects/<project>/<session>.jsonl -q "finish the parser fix" \
  --mode tool-calls --provider rules --rules-mode stashed -o compacted.json -r report.json
lcc recall <id>                                   # a removed output, hash-checked

lcc compact notes.md -q "what is wrong with the booking flow?" \
  --provider mechanical -o compacted.md -r report.json
lcc explain report.json --source notes.md         # why each block was kept or dropped

数値をお寄せください

lcc measure-session ~/.claude/projects/<project>/<session>.jsonl --markdown
# Codex CLI rollouts are auto-detected from their session_meta record:
lcc measure-session /path/to/rollout.jsonl --markdown
# or a whole project directory: per-mode median and p90 reduction over its sessions
lcc measure-session ~/.claude/projects/<project>/ --markdown

セッションの1つを使い、すべてのモードをオフラインで実行して、件数のみを出力します。メッセージ数、ツール呼び出し数、処理前後のトークン数、保持されたメッセージ数、時間です。テキスト、パス、ツールの出力は含まれません。正確な件数を得るには、tiktoken エクストラをインストールし、トークナイザーを一度キャッシュしてください(lcc 自体がダウンロードすることはありません)。 python -c "import tiktoken; tiktoken.get_encoding('o200k_base')。それ以外の場合、レポートには approximate とその理由が記載されます。Discussions → Results に貼り付けてください。 セッションで課金対象となった入力の内訳を確認するには、--input-map を追加してください。キャッシュの読み書きや、ツールの結果、ツール呼び出しの入力、挿入された指示、固定のシステムプロンプトとツールスキーマが占める割合を確認できます(ファイル内の使用記録に基づく件数のみ)。 すでに lcc で圧縮していますか?lcc share-stats を使うと、ローカルのレポートから同じ形式の件数のみの概要を作成できます(SHARE_STATS.md)。または結果の課題フォームをご利用ください。 私以外の人から寄せられる数値が増えるほど、上記の主張は私個人のものではなくなり、より真実に近づきます。

lcc を選ぶ理由

  • 原文のまま。 保持された範囲は、ソースとバイト単位で同一です。要約や書き換えは一切行いません。
  • 復元可能。 stashed は削除された出力をローカルのコンテンツアドレス方式のストア(~/.cache/lcc/stash)に移動します。読み出し時には recall が再ハッシュします。 プレースホルダー [removed: 120 lines, 4.3 KB · lcc recall <id>] に示されるのは行数とサイズであり、トークン数ではないため、どのマシンでも同じ内容になります。
  • 監査可能。 各パスで JSON レポートが書き出され、lcc explain を使うと、削除された各項目の理由を確認できます。
  • ローカル。 デフォルトの判定器は、通常の Python で CPU 上で動作します。API キーもネットワーク接続も不要です。

プロバイダー

プロバイダー実行場所使用される場面レポートの記載内容
specialist-v3ローカル、CPUデフォルト(auto)。トランスクリプトブロックがある場合に使用:Claude Code フック、compact_transcript、--mode tool-callssemantic_guarantee: none(判断ではなく、順位付けです)
mechanicalローカル、CPU--provider mechanical。auto でのプレーンテキスト(TypeSafe キーを設定しても、LCC_AUTO_REMOTE=1 を設定しない限り変わりません)semantic_guarantee: none
rules(lossless、recoverable、stashed)ローカル、モデルなしトランスクリプトに対する provider: ruleslossless:証明可能な重複のみ削除。recoverable:再読み込み可能な出力も削除。stashed(推奨):削除された出力は recall でバイト単位の復元が可能な状態で保持
jevリモート(TypeSafe API)オプトイン:--provider jev / provider: jev。TYPESAFE_API_KEY が必要意味的な判断、または明示的な機能低下
layaローカルモデル非推奨。明示的に指定した場合のみ実行指定されたモデルとフォールバック状態

specialist-v3 の詳細と制限:SPECIALIST.md。Rules モード: TOOL_CALLS.md。Jev は明示的に指定する任意の経路(--provider jev)です。目的とコンテキストのブロックを TypeSafe API に送信し、LCC_DISABLE_NETWORK=1 を設定すると無効になります。auto が独自に選択することはありません。キーを持っていることは、コンテキストを外部マシンに送信する同意を意味しないため、LCC_AUTO_REMOTE=1 を設定しない限り、auto でのプレーンテキストには mechanical が引き続き使われます。compact は relevance-compaction-1.2 レポートを書き出します。出力を信頼する前に provider_used と degraded を確認してください。

ベンチマーク

実セッション(ホールドアウト、INFERIDO)。 簡単に言うと、ランカーがセッションの一部を削除するとき、次にエージェントが実際に使った内容をどのくらいの頻度で残せるかを測定します。1.0なら常に残せることを意味します。トレーニングのカットオフ以降に開始したメンテナーのセッション36件から、193項目を使って一度だけ実施した最終テストです。候補トークンの0~60%を削除する範囲における保持AUC:

ランカー再現率AUC全保持AUC
specialist-v30.8990.434
mechanical0.8290.238
recency0.8180.306
bm250.8030.270
random0.6890.138

ラベルは、メンテナー1人のClaude Codeセッションにおける次のアクションの証拠であり、v3のトレーニング目標に有利に働きます。セッションは非公開で、集計値のみ公開しています (SPECIALIST.md)。

合成データ、再現可能(python benchmarks/run_judge_bench.py、約20秒、ネットワーク不要)。 手書きのエッジケース9件:置換、矛盾、設定変更、例外ルール、ポルトガル語と英語の混在、ツール出力内のプロンプトインジェクション、大きなgit差分、古い根本原因、再読み込み。

生のランキングspecialist-v3mechanicalbm25recency
30 / 50 / 70%削減時に必須保持ブロックをすべて保持したケース数(9件中)8 / 7 / 79 / 9 / 99 / 9 / 78 / 6 / 3
フルパス、デフォルト設定必須保持ブロックの保持数302ブロック1,138ブロックピークRSS
specialist-v3、ツール呼び出しモード9/9181 ms3.4 s71 MB
rules 損失なし9/92 ms16 ms55 MB

これらのケースは語彙的に簡単なため、語彙ベースのベースラインが良好な結果を出しています。v3はポルトガル語のケースを取りこぼします。時間は、マシンに高い負荷がかかったmacOS arm64での測定値です。手法、すべての実験条件、制限事項: BENCHMARKS.md。実セッションでのルールモード: REAL_SESSION_BENCHMARKS.md。

削減率は、コンテキストに含まれるノイズの量によって異なります。25%未満の改善は、レポートで実施する価値なしと表示され、Claude Codeプラグインは組み込みの要約をそのまま使用します。

対応していないこと

  • モデルが正しく回答するかどうかは確認しません。構造上の PASS は、回答品質の評価ではありません。
  • RAG、埋め込み、ベクトルストアには対応していません。
  • 保護ルールと制限付き復元によって証拠の喪失を減らせますが、完全には防げません。安全性モデルを参照してください。
  • specialist-v3 はClaude Codeのトランスクリプトでトレーニングされています。他のエージェントや通常のドキュメントは分布外データです。オプトインでJevを有効にしない限り、通常のテキストには mechanical が使用されます。

ドキュメント

トピックリンク
CLIの5分間ツアーQUICKSTART.md
Claude CodeプラグインCLAUDE_CODE.md
MCPサーバーMCP.md
ツール呼び出しの圧縮とルールモードTOOL_CALLS.md
Aiderのチャット履歴を入力として使用AIDER.md
ローカルランカーSPECIALIST.md
ベンチマークBENCHMARKS.md、REAL_SESSION_BENCHMARKS.md、benchmarks/
Python API(lcc.msi.compile)msi-api.md
アーキテクチャと意思決定architecture.md、ADR 0010、ADRインデックス
オプトインおよび非推奨のプロバイダーJEV.md、LAYA.md
研究アーカイブpaper.md、results-master.md、TRANSCRIPT_AB.md
プライバシーPRIVACY_POLICY.md

開発

Python 3.11以降。

python -m pip install -e '.[dev,tiktoken]'
pytest -q && ruff check . && mypy
npm test                                   # Node API and hook tests
python benchmarks/run_judge_bench.py --check --out /tmp/judge-bench

PyPIにある lcc という名前のパッケージは無関係です。このプロジェクトのパッケージ名は local-context-compiler です。 コントリビューション:CONTRIBUTING.md。セキュリティ:SECURITY.md。 変更履歴:CHANGELOG.md。

ライセンス

MITです。オプションのLaya統合には、NOTICEに記載されたApache-2.0の帰属表示が含まれます。LookADevがメンテナンスしています。

コメント

MCP は初めてですか?

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

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