Token Saver:开源MCP扩展,利用本地混合RAG将Claude PDF令牌成本削减90-99%
Token Saver 是一个开源的 MCP 扩展,通过本地混合 RAG 技术,在保证文档绝对隐私的同时,将 Claude Desktop 处理 PDF 的令牌消耗降低最多 99%。它无需 Python 环境,一键安装即可使用。
AI 开发人员、研究人员和专业人士在使用大型语言模型分析大型文档时,常常会遇到一个令人沮丧的问题:上下文窗口带来的隐性且不断累积的成本。将一份 200 页的 PDF 粘贴到聊天中并非一次性付费。由于对话历史会在每次交互时重新发送给模型,因此每提出一个后续问题,都需要为这份庞大文档再次付费。
Marktechpost AI 团队刚刚发布了 Token Saver,这是一个开源的模型上下文协议(MCP)扩展,适用于 Claude Desktop(MIT 许可,当前版本 v1.0)。它是由 Marktechpost AI Media Inc 的 Arnav Rai(罗切斯特理工学院计算机科学学生)在 Marktechpost 实习期间,在 Jean-marc Mommessin 和 Asif Razzaq 的指导下开发的。Token Saver 从根本上改变了 Claude 与本地文档的交互方式。通过在你的本地机器上直接实现本地混合 RAG 系统,你可以询问关于大规模 PDF 的问题,而无需将实际文件上传到模型。
令牌消耗降低了 92% 到 99%,隐私得到了保障,并且安装过程完全不需要任何 Python 环境或终端配置。
大型 PDF 的隐性令牌消耗
大多数用户认为,当他们将 PDF 放入 Claude 时,它只是简单地提取文本。实际上,Claude 的默认行为是将每一页转换为图像以保留图表和布局,同时单独提取文本。在计算单个图像令牌之前,仅文本部分每页就可能消耗 1,500 到 3,000 个令牌。
虽然 Prompt Caching 和 Claude Projects 有助于缓解这一问题,但它们并没有解决核心问题:整个文档仍然需要跨越边界传输到提供商的服务器。此外,如果你只需要从一本 1000 页的教科书中找到两个相关段落,强制 LLM 搜索整个 1000 页既低效又容易产生幻觉。
本地混合 RAG 如何解决问题
Marktechpost 的 Token Saver 作为一个本地 MCP 服务器运行:一个在你机器上运行的后台轻量级程序,Claude 可以将其作为工具调用。PDF 永远不会离开你的硬盘。
当你提出问题时,Token Saver 会利用本地混合 RAG 来查找答案。混合 RAG 是文档检索的黄金标准,因为它结合了两种强大的搜索方法:
关键词匹配(BM25):利用 SQLite 内置的 FTS5 搜索(权重 0.4)查找精确术语。 语义搜索(余弦相似度):使用本地的 all-MiniLM-L6-v2 嵌入模型(权重 0.6)理解你问题的含义,而不仅仅是匹配精确词语。 通过这两种方法本地结合,服务器搜索文件并向 Claude 仅提供高度相关的段落。然后 Claude 综合答案,引用精确页码,并提供你刚刚节省的令牌数的实时统计。
8 阶段处理流程
Token Saver 完全在一个单一的、长时间运行的本地进程内运行。在任何文本到达 Claude 之前,本地混合 RAG 流程执行八个快速步骤:
提取:使用 pypdfium2(备选 pypdf)提取文本。 分块:将文本分割成 180 个单词的段落,重叠 40 个单词,以确保上下文不被盲目切断。 评分(混合 RAG):使用混合的 BM25 和本地嵌入模型评估块。 门控:强制执行质量阈值。没有共享关键词的段落必须通过 0.25 的语义相似度下限才有资格。 去重:丢弃几乎相同的段落。 修剪:将段落严格缩小到回答用户提示的句子。 预算:将发送给 Claude 的总负载限制在 8,000 个字符。 封装:将检索到的文本包装在包含源文件和精确页码的文档块元素中。 (注意:嵌入模型是可选的但推荐使用。如果加载失败,系统会优雅地回退到仅关键词匹配)。
数据:规模化节省 99%
由于混合 RAG 流程限制了返回的文本切片,令牌节省随文档大小呈指数增长。以下是 Token Saver 在基准测试中的表现(通过 tiktoken 测量,假设每份文档一个问题):
文档 页数 全文令牌数 返回令牌数 节省百分比 FDA 药品标签 33 23,959 1,021 95.7% GDPR(EU 2016/679) 88 70,260 996 98.6% SFFA v. Harvard 233 133,349 740 99.4%
免责声明:令牌计数使用 cl100k_base 作为替代,基线假设每次搜索都按整个文档计费。
对于经常处理法院意见、技术标准、财务报告或密集教科书的专业人士来说,Token Saver 消除了重复的令牌税。
安全与本地隐私
对于企业用户和法律专业人士而言,数据隐私是不可谈判的。Token Saver 的安全模型基于三个支柱:
零上传:文档从不离开你的机器。 文件夹白名单:你为 Token Saver 配置一个特定文件夹。服务器会主动拒绝读取此指定目录之外的文件。 网络隔离:服务器仅通过标准 I/O(stdio)与 Claude Desktop 通信。没有监听网络端口,大大减少了攻击面。
模型性能:Sonnet vs. Opus
Marktechpost 的 Token Saver 在所有三个 Claude 3.5 层级上都能工作,但测试揭示了不同的行为:
Claude 3.5 Sonnet(推荐):合理的默认选项。它能完美处理松散的文件引用,如果两个文件名相似会提出澄清性问题,并正确应用检索到的页码。 Claude 3 Opus:擅长处理包含多种声音的复杂文档(例如,多数意见和异议的法律裁决)。Opus 足够智能,能在基于推断而非明确文本进行归因时进行标记。
几分钟内开始使用
与许多需要复杂 Python 环境和 JSON 配置的开源 AI 工具不同,Token Saver 打包为单个 .mcpb 包。
从项目的 GitHub Releases 页面下载 token-saver-ccr.mcpb。 打开 Claude Desktop -> 设置 -> 扩展 -> 安装扩展。 启用扩展,点击配置,并选择一个专用文件夹来存放参考 PDF。 在第一次提示时,选择始终允许。 在选定文件夹之前,扩展不会运行,因为这一选择同时服务于三个目的。 这个文件夹值得花点心思考虑。它设定了可读取的边界,让你可以按名称请求文件而无需输入路径,并且它是服务器在对话开始时向 Claude 显示的列表。一个小型文件夹只包含你打算询问的内容,效果比指向整个文档目录好得多。
关键要点
大幅降低成本:通过使用本地混合 RAG 仅将相关段落传递给 LLM,令牌成本降低高达 99%。对话越长,节省越多。 可验证的准确性:由于 Token Saver 为每个检索到的块附带了精确页码,你可以通过打开本地 PDF 立即验证 Claude 的声明。 绝对隐私:边界是你的本地机器。你的专有数据永远不会上传到 AI 提供商的服务器。 无摩擦设置:无需 Python。一个简单的 .mcpb 文件即可在 Claude Desktop 中立即运行。
查看 GitHub 仓库。
参考资料:MCP Bundle 格式 | all-MiniLM-L6-v2 | pdfkb-mcp | wesleygriffin/pdfrag | 语料库:Dobbs v. Jackson Women's Health Organization;Berkshire Hathaway 2023 年度报告