LeanToken について
LeanTokenは、コーディングエージェント向けの読み取り専用リポジトリ検索・取得レイヤーで、明示的なトークン予算内でコードを返します。MCPツールで関連ファイルや根拠を見つけ、編集、ビルド、テスト用のツールは置き換えません。
主な機能
- 01タスクに関連するコードの順位付け
- 02パス、シンボル、指定範囲の確認
- 03トークン予算によるソース量の制限
- 04Gitリビジョン間のシンボル追跡
- 05レシートによる既取得証拠の再利用
活用シーン
- 01リポジトリ調査でエージェントの初期把握を支援
- 02障害に関係する実装やテストの担当箇所を特定
- 03Gitリビジョン間の変更をレビュー
- 04編集前に対象コードを取得
MCP 対応
LeanTokenは、context、search、files、outline、read、historyなどのリポジトリ検索・取得ツールをMCPクライアントに公開します。セットアップCLIで、対応するコーディングエージェントのクライアントにMCPサーバーを設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LeanToken
エージェント向けのコードインテリジェンス:重要なコードを見つけて、コンテキストウィンドウとトークンを節約します。
**言語:**英語 · 簡体字中国語 · 日本語 · 韓国語
- MCP Registry 名:
mcp-name: io.github.morluto/leantoken
トークン削減量の実測値: 60 回の実行による統制された調査では、リポジトリの探索を限定した場合、LeanToken はエージェント組み込みツールよりモデルへの入力トークンを 20.1% 削減しました。また、広範囲に探索した場合は、これらのツールより 37.6% 削減しました。測定方法の詳細は、測定手法をご覧ください。
クイックスタート
LeanToken を Claude Code、Cursor、OpenCode、Codex、Gemini CLI、または Antigravity に追加します:
npx leantoken setup
セットアップの動作と安全性
現在のリリースでは、npx が古いプロジェクトローカルまたは祖先ディレクトリのインストールを解決した場合、書き込みを行う前にセットアップを停止し、
npx leantoken@latest setup を案内します。このチェックが導入される前の古いリリースは、
そのバージョンを指定したコマンドで直接起動できます。
対話型セットアップウィザードでは、検出された対応クライアントがあらかじめ選択されています。続行する前に選択を変更できます。その後、正確な設定パスと MCP ランチャーが表示され、最後に別途確認を求められます。 自動化では、検出を同意とみなすことはありません。npx ベースのセットアップでは、セットアップを実行した正確な LeanToken バージョンが固定されるため、クライアントを再起動しても、新しいリリースへ暗黙に切り替わることはありません。
グローバルセットアップでは、セットアップを行ったリポジトリは保存されません。OpenCode にはワークスペース相対の作業ディレクトリが設定されます。それ以外の対応クライアントでは、ホストが選択したワークスペースの cwd から LeanToken が起動します。ホストが代わりにホームディレクトリやファイルシステムのルートから起動した場合、LeanToken は既定でその広範なルートのインデックス作成を拒否します。
設定したクライアントを再起動または再読み込みしてから、リポジトリで接続と最初の検索結果を確認します:
npx leantoken doctor
次のような広範なタスクを試してください:編集前に、リクエストのキャンセルに関連するコードを見つけます。 LeanToken を使うと、エージェントは leantoken.context から作業を開始でき、編集、ビルド、テストには通常のツールも引き続き利用できます。
リポジトリ内で観測された LeanToken のトークン使用量を確認します:
npx leantoken savings
|
既定ではローカル ソースはローカルデータベースに保存され、お使いのマシン上でインデックス化されます。LeanToken は読み取り専用の検出・検索レイヤーです。 |
明示的なトークン上限 すべての応答には明示的なトークン上限があるため、大きなファイルがリクエストを占有することはありません。 |
エージェントのワークフロー向け ファイルの検索、コードの検索、構造の確認、正確な範囲の読み取り、履歴の追跡、JSON のクエリ、トークン使用量の追跡を、目的に特化したツールで行えます。 |
高度なセットアップとバージョン管理
ウィザードをスキップするには、クライアントを明示的に選択するか、すべての対応クライアントを設定します:
npx leantoken setup --claude --codex --yes
npx leantoken setup --all --yes
通常の利用には、--private-runtime を指定したランチャーを推奨します。これは、パッケージに含まれる正確な実行ファイルを、バージョンと完全な BLAKE3 ダイジェストを名前に含むアプリケーションデータディレクトリへコピーします。これにより、永続的な npm/Node ラッパーを介さず、クライアントから検証済みのプロセスを直接起動できます。同じバージョンでも、異なるソースビルドを共存させることができます。setup --refresh --private-runtime は現在の正確なアーティファクトを固定します。ほかの参照中のアーティファクトは引き続き使用できます。アプリケーションデータへの書き込みを追加せずにゼロインストールの手順を維持できるよう、この機能はオプトインになっています。--dry-run でパスとダイジェストを事前に確認できます。
自動化では、検出を同意とみなすことはありません。--yes を使うには、クライアントのフラグ、--all、または LeanToken がすでに管理している項目に対する --refresh を明示する必要があります。ファイルを変更せず、同じ方法で解決されるプランを事前に確認します:
npx leantoken setup --codex --cursor --dry-run
セットアップでは、leantoken の MCP エントリに加えて、選択したホストが使用するディレクトリにのみ、LeanToken が管理する小さな検出用スキルが追加されます。Claude Code は ~/.claude を使用し、Codex およびその他の対応ホストは ~/.agents を使用します。このスキルはルーティング用のメタデータを提供するもので、ツールスキーマの複製、ルールの追加、シェルフックのインストールは行いません。セットアップでは、新しい MCP ランチャーを管理対象として登録します。同じ名前の手動設定がある場合、ドライランを確認して --force-unmanaged を指定しない限り、置き換えは拒否されます。管理対象の連携を削除するには、次を実行します:
npx leantoken remove
プライベートランタイムのアップグレード後は、保持されているアーティファクトを確認し、参照の安全性を保ったクリーンアップを適用前にプレビューします:
npx leantoken runtime list
npx leantoken runtime prune --dry-run
npx leantoken runtime prune --yes
新しいバージョンを明示的に選んで既存の LeanToken MCP エントリのみを更新するか、古いバージョンを使ってロールバックします:
npx --yes leantoken@latest setup --refresh --yes
npx --yes [email protected] setup --refresh --yes --allow-outdated
LeanToken は、リポジトリ全体を一度にダンプするのではなく、小さなエビデンスループとして使うのが最も効果的です。
- 1 回の呼び出しで、自律的なトリアージの全体像を把握します。 範囲が広く不確かなタスクを始めるときは、
contextとplan_only: falseを指定し、具体化されたエビデンスをそのまま使います。追加のフォローアップは、カバレッジによって実装や回帰テストの担当箇所が具体的に不足していると特定された場合に限り、焦点を絞って最大 1 回行います。 - ソースを再送せずに続行します。 次の context 呼び出しでは前回の
receipt_idを渡すか、返されたフラグメントハッシュをknown_hashesとして渡します。レスポンスでは、同じエビデンスに対して黙って再度コストを発生させるのではなく、完全に重複する省略分と一部重複する省略分が報告されます。 - 確認された障害を調査します。
investigationワークフローを使い、直接観測されたfailure_traces、パス、シンボル、またはテストの意図のみをworkflow_evidenceに指定します。続けて、エビデンスで特定された担当箇所に対し、正確なsearch、outline、またはread呼び出しを行います。 - 変更をレビューします。
base_revisionにBASE..HEADを設定し、strict_changed_paths: trueを指定してreviewワークフローを使います。別のエージェントがコピーされたソース本文なしで、選択済みハッシュ、変更パス、前提条件、完了した検証をまとめた簡潔なマニフェストを必要とする場合は、handoffをリクエストします。
この 1 回の呼び出しという契約は、自律的なリポジトリのトリアージを対象としたものであり、実装エージェントへの制限ではありません。人によるレビューや制御プレーンのワークフローでは、具体化の前に plan_only: true を使って、コストの高い取得やリスクの高い取得を引き続きプレビューできます。複数エージェントによるコンテキストの反復テストでは、反復的な LeanToken プロファイルは thin native より入力総量が 50.9% 多い一方、固定した「1 回の context と、任意の 1 回の search」というプロファイルでは 20.1% 削減され、パスセットの成功率は 15/20 でした。これらの結果は、条件を固定した 4 つのトリアージタスクを対象としており、あらゆる実装ワークフローに当てはまることを証明するものではありません。
明示的なフォーカス制約は契約です。リクエストで focus_paths、正確な focus_symbols、および minimum_fragments_per_focus_path が指定されている場合、LeanToken は文書化されたファイルごとの上限内で候補を生成し、異なる範囲では最小数を満たせない場合にカバレッジエラーを報告します。説明プロファイルのプランと具体化されたレスポンスでは、ランキングを変更することなく、各フォーカス候補を生成、予約、選択、または抑制した上限付き割り当ての境界も特定します。
LeanToken を使う理由
多くのエージェントは、まず広範囲に検索し、ファイル全体を読み込みます。LeanToken は、そうした作業を段階的に絞り込みます。
| 一般的なリポジトリの調査 | LeanToken を使った場合 |
|---|---|
| ディレクトリの広範な一覧を走査する | コンパクトなツリーから関連するパスを見つける |
| 構造を把握するためにファイル全体を読む | ファイル全体を読み込まずに、定義とインポートを確認する |
| ターンごとに同じコードを再送する | 変更されていないエビデンスの再送を避ける |
| 大きなファイルにリクエストを埋め尽くさせる | 返されるソースを厳密なソーストークン予算内に収め、レスポンスのオーバーヘッドは別途報告する |
| どのファイルが重要か推測する | タスクに関連する可能性の高いコードをランク付けする |
コーディングエージェントは、編集、コマンド、テスト、会話を引き続き担当します。LeanToken は、そうしたタスクに必要なコードを見つけて返します。
LeanToken は、巨大なプロンプトファイルを 1 つ作るわけではありません。エージェントが必要とする範囲に絞って、検索と読み取りに応答します。
例
シャットダウン中のリクエストキャンセルを修正するといったタスクでは、上限を設けた結果の例は次のようになります。
Budget: 1,200 source tokens
Selected evidence:
src/services/executor.rs lines 137-147, 251-259
src/services/reconciliation.rs lines 148-175, 257-272
エージェントは、両方のファイル全体ではなく、これらの範囲を受け取ります。予算が小さすぎる場合は、何が除外されたかもレスポンスに記載されます。パス、スコア、レシート、JSON、MCP トランスポートラッパーは、このソーストークン予算には含まれません。測定境界については、トークンの計上を参照してください。
利用可能なツール
| ツール | 目的 |
|---|---|
leantoken.context | 自律的な広範囲のトリアージでは、デフォルトで最初に呼び出して証拠を展開します。人間またはコントロールプレーンによる確認用のプレビューとしても任意で利用できます。 |
leantoken.search | ランク付けされた検索では grep/rg より優先して使用します。網羅的なテキスト/正規表現検索では、クエリの網羅範囲全体を明示的に記録または再利用できます。 |
leantoken.files | コンパクトで、ignore 設定を考慮したパスの検出には find/ls/glob より優先して使用します。 |
leantoken.outline | ファイル全体を読み込まずに、定義、シグネチャ、インポート、範囲を確認します。 |
leantoken.read | 1 つの正確なシンボルまたは指定行を含む範囲の読み取りには cat/head/sed より優先して使用します。 |
leantoken.history | 不変の Git リビジョンを対象に、解析済みシンボルを読み取り、差分をまとめて表示し、追跡します。 |
leantoken.json | ページ分割されたキーと型付き診断を用いて、範囲を限定したライブ JSON をクエリ、要約、比較します。 |
leantoken.receipt_rebase | 同じパス、同じ座標、同じハッシュの証拠のみを、新しい完了済み世代へ明示的に引き継ぎます。 |
leantoken.savings | 観測された応答の計測値、ハッシュによる抑制、失敗、明示的な観測範囲の制限を報告します。 |
高度な取得制御
receipt_rebase を含む、インデックスに基づくすべての取得ツールでは、
完了済みの編集をクエリ前に反映する必要がある場合、
consistency: "reconcile_working_tree" を指定できます。デフォルトの
"indexed_generation" は、ファイルシステムの変更をスキャンしたり待機したりせず、
最新の完了済みインデックス世代を返します。これは Git のリビジョン境界ではありません。
leantoken.history は不変の Git オブジェクトを読み取り、
leantoken.json は正確なライブファイルを読み取るため、どちらも
インデックスの整合性モードを受け付けません。コンテキストを不変の履歴に
限定するには、leantoken.context.base_revision に BASE..HEAD を渡し、
strict_changed_paths: true を指定します。
自律的な広範囲のトリアージでは、plan_only: false を設定し、
展開された証拠を直接使用します。plan_only: true は、高コストまたは
高リスクの取得を行う前に人間またはコントロールプレーンが確認する場合に
使用してください。ソース断片やレシートの変更を伴わず、範囲を限定した
ランク付き候補メタデータを返します。承認後、同じリクエストを
plan_only: false で再実行します。最小限で失敗を明示する応答には
response_profile: "compact" を設定し、デフォルトの "balanced" 形式を
維持するか、範囲を限定した個々の省略、ファセット、差分の証拠を得るには
"explain" を使用します。応答には、解決された選択が
effective_response_profile として報告されます。
すべてのツールの説明とスキーマもモデルのコンテキストを消費するため、 カタログは意図的に小さく保たれています。
CLI の使用方法
npx を使って LeanToken を直接実行します。
npx leantoken status
npx leantoken savings
npx leantoken doctor
npx leantoken --root /path/to/repo search handle_request
または、グローバルにインストールしたバイナリを使用します。
npm install --global leantoken@latest
leantoken --root /path/to/repo index
leantoken --root /path/to/repo search handle_request --mode identifier --max-tokens 800
leantoken --root /path/to/repo context \
--task "fix request cancellation during shutdown" \
--budget 2000
リポジトリのインデックスを開かずに、既存の秘匿化済み実験またはホストの レポートを監査します。
leantoken episode audit \
--adapter multi-agent-suite-v1 \
--input benchmarks/reports/multi-agent-context-suite-v1-codex-0.144.1.json
デフォルトの出力形式は Markdown です。安定した正規化 JSON スキーマを使うには、
グローバルオプション --json を追加します。監査ツールはローカルで動作し、
入力に対して処理範囲が限定され、読み取り専用です。生のプロンプト、ソース、
ツール引数、ツール出力は保持せず、アーティファクトのハッシュを保持します。
npm install leantoken を実行すると、コマンドは現在のプロジェクトの
node_modules/.bin にインストールされますが、シェルの PATH に
leantoken が追加されるわけではありません。プロジェクトローカルの
インストールは、npx leantoken、パッケージスクリプト、または
./node_modules/.bin/leantoken から実行してください。
stdio 経由で MCP サーバーを手動で実行します。
leantoken --root /path/to/repo mcp
MCP クライアントの手動設定
{
"mcpServers": {
"leantoken": {
"command": "leantoken",
"args": ["--root", "/path/to/repo", "mcp"]
}
}
}
Cargo 配布版では、公開済みのクレートをインストールし、生成された実行ファイルを MCP クライアントに指定します。
cargo install leantoken --version VERSION
leantoken --root /path/to/repo mcp
公式 MCP Registry のエントリは io.github.morluto/leantoken です。Cargo
パッケージに対応する Registry クライアントでは、該当するバージョンの
leantoken をインストールし、上記の mcp コマンドを使用できます。
インストール方法
npm パッケージには、以下のプラットフォーム向けのネイティブバイナリが含まれています。
- ARM64 および x64 の macOS
- ARM64 および x64 の glibc Linux
- x64 の Windows
インストール時にライフサイクルスクリプトが実行されることも、postinstall フックから実行可能ファイルがダウンロードされることもありません。musl Linux など、その他のターゲットではソースからビルドする必要があります。 Rust 1.95 以降とネイティブの C/C++ ツールチェーンをインストールし、次を実行してください。
cargo install --locked --git https://github.com/morluto/leantoken leantoken
更新
npx で作成した MCP エントリーは、設定時に使用した正確な LeanToken のバージョンに固定されます。既存のクライアント連携は明示的に更新してください。
npx --yes leantoken@latest setup --refresh --yes
グローバルにインストールした CLI、または Cargo でインストールした CLI の場合:
leantoken upgrade --check
leantoken upgrade --yes
update は upgrade のエイリアスです。プロジェクトローカルに npm をインストールした場合:
npm install leantoken@latest
固定された MCP エントリーが暗黙に @latest に移行することはありません。正確なパッケージがローカルにもオンラインにもない場合、別のバージョンを選択するのではなく、起動に失敗します。CLI を更新しても既存の MCP エントリーは変更されません。ロールバック、キャッシュ管理、バージョンの詳細については、使用ガイドを参照してください。
キャッシュ管理
ローカルリポジトリのキャッシュを確認するか、クリーンアップを適用する前にプレビューしてください。
leantoken cache list
leantoken cache list --summary
leantoken cache list --incompatible-with-current
leantoken cache prune --incompatible-with-current
leantoken cache compact --id v15-0123456789abcdef --dry-run
leantoken cache prune --older-than 30 --dry-run
leantoken cache prune --max-total-bytes 1073741824 --yes
キャッシュの状態、ページネーション、安全なクリーンアップのルールについては、使用ガイドを参照してください。
仕組み
repository
│
▼
file discovery ──► code structure extraction ──► local search index
│
▼
agent request ──► ranked / exact retrieval ──► focused code within a token budget
LeanToken はソースを一度インデックス化し、簡潔なパス、順位付けされた一致箇所、構造的なアウトライン、正確なソース範囲、タスクに応じたコンテキストを提供します。ターンをまたいで変更のない情報を再送信することを避けます。
依存関係の多いワークスペースでは、既定のリポジトリ全体の動作を変更せずに、キャッシュ識別された別個のファーストパーティインデックスを利用できます。
leantoken --index-include 'src/**' --index-include 'tests/**' index
ステータスとすべての取得結果には、アクティブなインデックスが全体かスコープ限定かが示されるため、スコープ内で結果が空でも、リポジトリ全体に存在しないとは誤って示されません。上限、キャッシュの識別情報、MCP 登録の例については、使用ガイドを参照してください。
LeanToken は、エージェントが必要とするコードを、より少ない入力トークンで返すことを目指しています。
ドキュメント
| ガイド | 内容 |
|---|---|
| 使用方法とツールリファレンス | コマンド、MCP ツール、リクエストオプション、例 |
| アーキテクチャと信頼性 | コンポーネント、データフロー、ストレージ、障害時の動作 |
| ロードマップ | 現在の方針と予定されている作業 |
| 開発とテスト | ローカル環境のセットアップ、検証、リリースワークフロー |
| ベンチマークの方法論 | トークン効率の測定と解釈 |
| 測定ハーネス | 実験、通信コスト、プロファイリングのツール |
ライセンス
以下のいずれかのライセンスを選択して適用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。