SuperAPI AI 工具集

calibreweb-mcp

calibreweb-mcp 是一个面向 Calibre-Web(及 Calibre-Web Automated)自托管电子书库的只读 Model Context Protocol(MCP)服务器。Calibre-Web 本身没有 REST API,其唯一稳定的机器可读接口是面向电子书阅读器应用的 OPDS 目录订阅源。该服务器正是解析这一 OPDS Atom 订阅源,将其转换为带数字 id、各格式下载链接和有界摘要的结构化图书数据,供 Claude Code、Claude Desktop、Codex 等 MCP 客户端在对话中搜索书库、浏览精选视图与书架、获取封面图片。所有工具均为 GET 请求,从构造上保证只读,不写入任何内容。

访问官网

工具介绍

用途

calibreweb-mcp 是一个只读的 Model Context Protocol(MCP)服务器,用于连接 Calibre-Web 以及 Calibre-Web Automated——即自托管的电子书库 Web 界面。它让 Claude Code、Claude Desktop、Codex 等 MCP 客户端能够搜索书库、浏览精选视图与书架、跟随各格式下载链接,并把封面图片直接拉入对话中。

Calibre-Web 没有 REST API,其唯一稳定的机器可读接口是它为电子书阅读器应用提供的 OPDS 目录订阅源。该服务器正是使用这一订阅源:输入 Atom XML 加 HTTP Basic 认证,输出结构化的图书数据。

主要能力

  • Calibre-Web 从未有过的 API:将 OPDS Atom 订阅源解析为结构化图书数据,包含数字 id、各格式下载 URL 和有界摘要。
  • 构造上只读:全部六个工具都是 GET 请求,不写入任何内容。
  • 结构化输出:每个工具都声明 outputSchema,并在文本块之外返回 structuredContent,客户端无需解析散文即可使用结果。
  • 图书条目信息:包含作者、标签、系列(含序号)、评分、有界摘要、封面 URL 以及各格式下载 URL——这些链接可供人直接打开。
  • 工具数量可配置:六个工具是上限而非下限;设置 CALIBRE_WEB_ALLOW_TOOLS=essential 可注册精选的五个工具(search_books、list_books、list_shelves、get_shelf_books、get_stats),模型从五个工具中挑选正确工具远比从六个中可靠。
  • 分页支持:订阅源按实例的每页图书数设置分页(默认 60),页面大小不可由客户端控制;每次列表返回 pagination.nextOffset,可在下次调用中作为 offset 传入。discover 视图为随机选择,不分页。

使用方式

环境要求

  • Node.js 22 或更高版本
  • 一个 Calibre-Web 实例(针对当前 linuxserver/calibre-web 镜像开发;Calibre-Web Automated 工作方式相同)
  • 一个用于该服务器的 Calibre-Web 用户。OPDS 订阅源使用普通 Web 登录认证——请使用仅具有 View 和 Download 角色的专用账户,而非管理员账户。如果实例允许匿名浏览,服务器也可在无凭据的情况下运行。

工具加载选择

CALIBRE_WEB_ALLOW_TOOLS 和 CALIBRE_WEB_DENY_TOOLS 接受逗号分隔的工具名;末尾的 * 匹配整个系列。essential 是五个工具的精选预设:search_books、list_books、list_shelves、get_shelf_books、get_stats。

不匹配任何工具的条目会导致启动中止并指出该条目,因此拼写错误不会静默隐藏工具。被过滤的工具永远不会注册,因此在 tools/list 中不存在,tools/call 也不认识它。

通过 mcp-hub 使用

无法生成本地进程的客户端——ChatGPT connectors、Web 版 Claude、Cursor、LibreChat——可通过 mcp-hub 访问 calibreweb-mcp:一个容器通过 Streamable HTTP 服务多个 stdio MCP 服务器,背后是单一密码的 OAuth 2.1 登录,并为无法进行 OAuth 的客户端提供长期令牌。其 /hub 端点将所有服务器置于六个元工具之后,因此一个连接器即可访问全部服务器,而无需在模型上下文中放置 N×工具模式。

其 /config/mcp.json 使用 Claude Code 的格式,因此条目就是你已有的那个。其中的 allowTools 和 denyTools 是 hub 自身的按服务器过滤器,与 env 中的 *_ALLOW_TOOLS 不是一回事。

适用场景

  • 在 MCP 客户端对话中搜索自托管 Calibre-Web 书库
  • 浏览书库的精选视图与书架
  • 获取图书封面图片
  • 获取各格式的下载链接供人打开
  • 通过 mcp-hub 让无法生成本地进程的客户端访问

限制

  • 无写入:OPDS 订阅源没有写入功能,该服务器也不会添加。
  • 无文件下载:工具返回下载 URL,而非电子书负载。
  • 无分面浏览(作者/系列/标签/出版商/语言/格式作为独立索引订阅源):search_books 覆盖这些查询;相关路由存在,如有真实用例可添加工具。
  • 只读构造:仅 GET 请求,无任何状态。
  • 安全措施:图书元数据是不可信的第三方数据,每个结果都会说明这一点,控制字符被剥离,XML 实体处理被禁用(声明 DOCTYPE 或实体的文档会被直接拒绝)。响应在解析前有界(8 MB 订阅源、1 MB 封面),在到达模型前再次有界(每本书和每响应预算)。订阅源 href 仅在解析到配置源且为 http(s) 时才传递。重定向被拒绝,因此 Basic 凭据永远不会被重放到另一主机;封面仅在真实图片内容类型时才传递。密码在启动时从进程环境中清除,URL 在出现在任何日志或结果前会进行凭据脱敏。

完整指南、工具参考和安全说明见 calibreweb-mcp.ni-c.de(源码在 docs/ 中)。