SuperAPI AI 工具集

librarian-cli

librarian-cli 是一个将电子书转换为干净、按 token 计数的 Markdown 章节的离线命令行工具,支持 FB2、EPUB、DOCX、HTML、TXT/MD 和文本层 PDF 等格式。它内置标准输入输出(stdio)的 MCP 服务器,提供 6 个只读工具(list_books、list_chapters、find、get_chapters、book_info、verify_quote),让 Claude 能够浏览书库、搜索内容、在 token 预算内提取章节,并核对自己的引用是否与原文一致。其确定性 RAG 无需嵌入、无需网络、无需 API 密钥,同一输入始终产生字节级相同的输出。安装和运行时均无需网络(分词器词汇表已内置在包中)。用户可通过 --library 参数或 LIB_HOME 环境变量指定书库根目录。该工具还提供 lib verify 命令,以 grep 风格的退出码检查引文是否逐字出现在库中,支持书模式(--book <id>)和书架模式(无 --book)。每本书会从五个指标(覆盖率、结构、垃圾、编码、去连字符)获得评分,分为 ok、review 和 failed 三档。限制包括:不支持扫描版 PDF、不规避 DRM、不支持网络文件系统(NFS/SMB)、不支持 MOBI/DJVU,命令行消息目前为俄语,英文输出计划中。

访问官网

工具介绍

librarian-cli 是一个将电子书转换为干净、按 token 计数的 Markdown 章节的工具。它支持多种输入格式,包括 FB2、EPUB、DOCX、HTML、TXT/MD 以及文本层 PDF。转换过程无网络、无 LLM、无随机性,同一输入文件始终产生字节级相同的输出,因此摄取过程可复现且可缓存。

主要能力:

  • 将任意电子书转换为包含干净章节和 token 计数的目录。
  • 内置 stdio MCP 服务器,提供 6 个只读工具:list_books、list_chapters、find、get_chapters、book_info、verify_quote。Claude 可通过这些工具浏览书库目录、搜索、在 token 预算内提取章节,并自行核对引文与原文是否一致。
  • 确定性 RAG:无需嵌入、无需网络、无需 API 密钥。
  • lib verify 命令:检查引文是否逐字出现在库中。支持书模式(--book <id>)和书架模式(无 --book)。书模式可对单本书进行全扫描,无需搜索索引;书架模式通过 FTS5 候选进行全库归属,要求引文至少包含 5 个实词(停用词不计),否则跳过并返回 verdict: null。
  • 评分系统:每本书从五个指标(覆盖率、结构、垃圾、编码、去连字符)获得评分。ok(分数 ≥ 0.90,无硬触发)静默保存;review(0.60 ≤ 分数 < 0.90,或存在触发)保存并警告,可通过 lib doctor <id> 查看详情;failed(分数 < 0.60)不保存。

使用方式:

  • 通过 --library <path> 指定书库根目录,或使用 LIB_HOME 环境变量,默认 ./library。
  • 数据输出到 stdout,诊断信息输出到 stderr。
  • 退出码:0 成功,1 运行时错误,2 用法错误。lib verify 使用 grep 风格语义(与项目通常的“1 = 运行时错误”不同):退出码 1 且 stdout 非空表示“已检查,未确认”;退出码 1 且 stdout 为空表示错误(诊断信息在 stderr)。退出码 0 包含 close 情况,严格 CI 门禁应检查 --json 输出中的 verdict == "exact",而非仅看退出码。
  • Claude Desktop 配置:在 claude_desktop_config.json 中配置 MCP 服务器。

适用场景:

  • 需要让 Claude 阅读本地电子书库,并确保引文准确。
  • 构建离线、确定性的 RAG 系统,无需嵌入和网络。
  • 在 CI 中验证引文是否逐字出现在电子书中。

限制:

  • PDF:在排版正常的书籍上表现良好;复杂布局可能落入 review。
  • 不规避 DRM;来源合法性由用户负责。
  • 不支持网络文件系统(NFS/SMB),因为建议锁不可靠。
  • 不支持 MOBI/DJVU 和无文本扫描版(v3 候选:OCR、calibre)。
  • CLI 消息目前为俄语;英文输出计划中。
  • lib verify:不支持跨章节边界的引文(v1);单字替换的 close 判定从约 150 字符的引文起较为现实,更短的引文若替换一字会如实归为 distorted。
  • 书架模式(无 --book)需要 FTS5 搜索索引;书模式(--book <id>)在 CLI 中无需索引。lib serve 整体仍需要 FTS5,启动时会同步索引。
  • 书模式扫描全书章节文本使用纯 Python,长书可能耗时几秒 CPU;MCP 工具在工作线程中运行,不会阻塞服务器。