mcpField
L
LeanToken

LeanToken

本地服务
github.com/morluto开发工具1302 周前更新

关于 LeanToken

LeanToken 是面向编码 Agent 的只读代码库发现与检索层,按明确的 token 预算返回代码。其 MCP 工具帮助 Agent 定位相关文件和证据,不取代编辑、构建或测试工具。

主要功能

  1. 01按任务排序代码库内容
  2. 02检查路径、符号和精确范围
  3. 03按 token 预算限制源码返回量
  4. 04追踪 Git 修订版间的符号
  5. 05通过回执复用已有证据

适用场景

  1. 01在代码库排查中帮助 Agent 快速定位
  2. 02为故障寻找实现和测试负责人
  3. 03审阅不同 Git 修订版之间的变更
  4. 04编辑前检索相关代码片段

MCP 相关

LeanToken 向 MCP 客户端提供代码库发现与检索工具,包括 context、search、files、outline、read 和 history。其设置 CLI 可配置受支持的编码 Agent 客户端来启动 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargoleantoken0.1.28

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LeanToken

为 Agent 提供代码智能:找到关键代码,让上下文窗口保持精简,节省令牌。

语言: 英语 · 简体中文 · 日本語 · 한국어

  • MCP 注册表名称:mcp-name: io.github.morluto/leantoken
LeanToken 将大型代码库缩小到 AI Agent 所需的文件和代码

npm npm downloads Rust 1.95+ License: MIT OR Apache-2.0

安装 · 为什么选择 LeanToken · 工具 · CLI · 工作原理 · 文档


实测令牌节省量: 在一项受控的 60 次运行研究中,与 Agent 内置工具进行有限的仓库探索相比,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 可帮助 Agent 从 leantoken.context 开始, 同时仍可使用其常规工具进行编辑、构建和测试。

检查 LeanToken 观测到的仓库本地令牌用量统计:

npx leantoken savings
默认在本地运行

源代码会在你的设备上编入本地数据库。LeanToken 是一个只读的发现与检索层。
明确的令牌预算

每个响应都有明确的令牌上限,因此大型文件不会占满请求。
专为 Agent 工作流打造

通过专用工具查找文件、搜索代码、检查结构、读取指定范围、追踪历史记录、 查询 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 条目和一个自带的小型发现技能:Claude Code 使用 ~/.claude,而 Codex 和其他受支持的宿主使用 ~/.agents。该技能提供路由元数据; 不会重复工具架构、添加规则或安装 shell 钩子。设置会将新添加的 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
## 常见的 Agent 工作流

LeanToken 最适合作为一个小型证据循环,而不是一次性倾倒整个代码库:

  1. 通过一次调用为自主分流提供方向。 遇到不确定的宽泛任务时,以 context 和 plan_only: false 开始,然后直接使用已整理好的证据。 只有在覆盖情况指出了具体缺失实现或回归测试负责人时,才进行至多一次 有针对性的后续调用。
  2. 继续处理,无需重新发送源代码。 在下一次 context 调用中传入之前的 receipt_id,或将返回的片段哈希作为 known_hashes 传入。响应会报告 确切及重叠的遗漏,而不会悄悄对相同证据再次计费。
  3. 调查已观察到的故障。 使用 investigation 工作流,并在 workflow_evidence 中仅提供直接观察到的 failure_traces、路径、符号或 测试意图。随后针对证据指出的负责人,进行精确的 search、outline 或 read 调用。
  4. 审查变更。 使用 review 工作流,将 base_revision 设为 BASE..HEAD,并将 strict_changed_paths: true。如果其他 Agent 需要一份 精简清单,其中包含所选哈希、变更路径、假设和已完成的验证,而不含复制的 源代码正文,请求 handoff。

这套单次调用约定适用于自主代码库分流,并不限制实现 Agent。在物化之前, 人工审查和控制平面工作流仍可通过 plan_only: true 预览成本较高或风险较大的 检索。 重复的多 Agent context 测试套件 发现,迭代式 LeanToken 配置的总输入量比精简原生方式多 50.9%,而冻结的 「一次 context 加可选的一次 search」配置节省了 20.1%,并在 20 次中有 15 次 取得路径集合成功。这些结果涵盖四项固定的分流任务,并不能证明存在普遍适用的 实现工作流。

明确的关注范围约束是一种契约。当请求提供 focus_paths、精确的 focus_symbols 和 minimum_fragments_per_focus_path 时,LeanToken 会在 文档规定的单文件范围内生成候选项;如果不同代码范围无法满足最低要求,则会 报告覆盖失败。Explain 配置文件计划和物化后的响应还会指出生成、预留、选中或 抑制每个关注候选项的有界分配边界,同时不改变排序。

为什么选择 LeanToken

大多数 Agent 一开始会广泛搜索并阅读整个文件。LeanToken 会分阶段缩小范围:

典型的代码库探索使用 LeanToken
扫描宽泛的目录列表在精简目录树中查找相关路径
阅读整个文件以了解结构查看定义和导入,而无需加载整个文件
每轮对话后再次发送相同代码避免重复发送未变更的证据
任由大文件占满请求将返回的源代码控制在精确的源代码令牌预算内,并单独报告响应开销
猜测哪些文件重要按与任务的可能相关性为代码排序

你的编码 Agent 仍负责编辑、命令、测试和对话。 LeanToken 会查找并返回这些任务所需的代码。

LeanToken 不会创建一个巨大的提示词文件,而是在 Agent 需要时响应有针对性的搜索和 读取请求。

示例

对于修复关机期间的请求取消这类任务,示意性的有界结果可能如下:

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

Agent 收到的是这些代码范围,而不是两个完整文件。如果预算过小,响应还会说明 省略了哪些内容。路径、分数、回执、JSON 和 MCP 传输封装不计入此源代码令牌预算; 测量边界请参阅令牌统计。

可用工具

工具用途
leantoken.context自主进行广泛初步筛查时,默认作为首次调用并返回已物化的内容;也可供人工或控制平面审查时预览。
leantoken.search排名搜索优先使用此工具,而非 grep/rg;穷尽式文本/正则调用可明确记录或复用完整查询覆盖范围。
leantoken.files紧凑且能遵循忽略规则的路径发现优先使用此工具,而非 find/ls/glob。
leantoken.outline检查定义、签名、导入和范围,无需读取整个文件。
leantoken.read读取单个确切符号或包含首尾的行范围时,优先使用此工具,而非 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 读取精确的 实时文件,因此两者都不接受索引一致性模式。若要将上下文限制在不可变历史范围内,请将 BASE..HEAD 作为 leantoken.context.base_revision 传入,并设置 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;它不会将 leantoken 添加到 shell 的 PATH。调用项目本地安装的命令时,请使用 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 发行版,请安装已发布的 crate,并将 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

对于全局安装或通过 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 的目标是用更少的输入词元,返回 Agent 所需的代码。

文档

指南内容
使用指南和工具参考命令、MCP 工具、请求选项和示例
架构与可靠性组件、数据流、存储和故障行为
路线图当前方向和计划中的工作
开发与测试本地设置、验证和发布工作流
基准测试方法词元经济性测量及其解读
测量工具实验、传输成本和性能分析工具

许可证

可由你选择依据以下任一许可证授权:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。