Bookbind

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 7, 2026

EPUB and PDF ebook tools: merge, split, compress, convert, edit metadata, validate and covers.

已验证STDIO仅桌面文件与存储媒体与设计

概览

AI 生成的概览

本地 stdio 桥接服务,把 EPUB 与 PDF 电子书操作(合并、拆分、压缩、转换、元数据、校验、封面)转发给托管的 Epublys 服务。

可以做什么
  • 合并、拆分与压缩 EPUB 文件,支持按章节范围拆分和清除未使用资源
  • 读取与编辑 EPUB 元数据,如书名、作者、出版社、系列与封面
  • 在 EPUB、PDF、Markdown 与 Word 文档之间转换,并用 Markdown 章节构建 EPUB3
  • 校验 EPUB 的错误与规范符合性,可选自动修复
  • 根据描述与类型生成 AI 书籍封面图片
适用场景
适合让助手整理、重构或转换电子书文件:合并多卷、拆分章节、修正元数据、生成 PDF 或 Markdown,或在发布前检查文件,而无需在本机安装转换工具。
运行要求
以本地进程运行,可通过 npx(需 Node.js)或 Docker 镜像启动;需要能访问 Epublys 服务的网络。可选环境变量 EPUBLYS_API_KEY 会以 Bearer 令牌发送,可选 EPUBLYS_MCP_URL 可覆盖上游地址。文件以 base64 内容传入。
安装前请注意
该包本身不做处理:文件内容会发送到第三方 Epublys 服务,电子书文件会离开本机。免费额度有限(每文件 5MB、每天 3 次操作、每分钟 15 次请求、输出带品牌标识);Pro 为每月 9 美元,单次上限 30MB。若设置 API 密钥,会转发给上游。元数据编辑与转换会返回修改后的文件。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Bookbind,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

bookbind

bookbind is a small local bridge to Epublys, a hosted service that works on EPUB and PDF ebooks: merging and splitting books, compressing them, converting between formats, editing metadata, checking a file for spec problems, and generating cover art. This package does none of that work itself. It stands in front of the service's remote MCP endpoint, presents the upstream tool list locally exactly as captured, and passes each call through, returning whatever the upstream returns.

That split matters in practice. The conversions, metadata edits and validation verdicts all come from Epublys' own machinery, so a result you get through bookbind is the service's result, not a local approximation. The bridge adds no processing of its own and rewrites nothing on the way back. Most tools take base64-encoded file content (file, or files for the multi-file tools) and return base64-encoded output; the upstream's own free-tier and Pro limits, as described in each tool's description, apply upstream.

Tools

This build serves a labelled subset of the captured surface: 12 of the 13 tools seen in the live capture. The omitted tool is upgrade_to_pro, which returns a checkout link so the user can upgrade their account to a paid tier; a payment funnel is out of scope for this program, so the tool is deliberately absent, and a test asserts that absence. The remaining tools are document operations, served verbatim — including epub_to_pdf, whose captured description carries the upstream's own Pro-tier language. This rebuild adds no payment or gating machinery of its own.

  • merge_epub — merge two or more EPUB files (files, required) into one ebook with a table of contents and chapter dividers; optional names, title, author and dividers.
  • split_epub — split one EPUB (file, required). With a chapter range (chapterStart / chapterEnd) the result is a single EPUB of exactly those chapters; without one it is a ZIP holding one EPUB per chapter.
  • compress_epub — shrink an EPUB (file, required), with a compression level from 1 to 9 and an option to strip unused assets.
  • read_epub_metadata — read an EPUB's metadata (file, required): title, author, language, publisher, description, series, cover status and more, returned as JSON.
  • edit_epub_metadata — edit metadata fields in an EPUB (file, required): title, author(s), language, publisher, description, series, subjects, ISBN, date, even a new cover image; returns the modified EPUB.
  • epub_to_pdf — convert an EPUB (file, required) to PDF, with page size, margins, font and page number options.
  • pdf_to_epub — convert a PDF (file, required) to an EPUB, with automatic chapter detection, chapter grouping modes and optional image extraction.
  • markdown_to_epub — build an EPUB3 ebook from Markdown files (files, required), one file per chapter in array order; understands YAML frontmatter and Obsidian wikilinks.
  • docx_to_epub — convert a Word document (file, required) to an EPUB3 ebook, splitting chapters on headings or page breaks and keeping formatting, lists, tables, images and footnotes.
  • epub_to_markdown — convert an EPUB (file, required) to Markdown: a ZIP with one file per chapter, an index, and the referenced images.
  • validate_epub — validate an EPUB (file, required) for errors, compatibility issues and spec compliance; returns JSON check results, with an optional deep scan and auto-fix.
  • generate_cover — generate an AI book cover image from a creative description and a genre, with optional title, author and seed. No argument is required by the captured schema, though the upstream expects a description or a title.

Configuration

  • EPUBLYS_MCP_URL (optional) — override the upstream endpoint. Defaults to https://epublys.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • EPUBLYS_API_KEY (optional) — when set, every upstream request carries Authorization: Bearer <key>. When it is not set, no auth header is sent, matching the keyless capture this rebuild is based on. (The header behaviour is a labelled reconstruction; the registry record declares an optional Authorization header for the remote, but the capture was taken without one.) Account-scoped behaviour is served upstream under the caller's own credential.

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name bookbind), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request, and the session is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read, and the message with the matching id wins.

Successful upstream results pass through verbatim, including any isError flag the upstream sets and any extra fields it adds. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with bookbind error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

bash
npx @reneturcios/bookbind read_epub_metadata '{"file":"<base64-epub>"}'npx @reneturcios/bookbind generate_cover '{"description":"a lighthouse at dusk","genre":"literary"}'npx @reneturcios/bookbind validate_epub '{"file":"<base64-epub>","deepScan":true}'npx @reneturcios/bookbind --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/bookbind mcp

MCP client config:

json
{  "mcpServers": {    "bookbind": {      "command": "npx",      "args": ["-y", "@reneturcios/bookbind", "mcp"]    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/bookbinddocker run --rm ghcr.io/cloudcorprecords/bookbind --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

bash
npm installnpm run buildnpm testnpm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

来源:README.md,提交 619c1d6

工具

12

merge_epub

Merge multiple EPUB files into a single ebook with table of contents and chapter dividers. Accepts 2+ base64-encoded EPUB files. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数files必填namestitleauthordividers

split_epub

Split an EPUB. With a chapter range (chapterStart and/or chapterEnd) the result is ONE base64-encoded EPUB of exactly those chapters, in order, with the book's metadata, a table of contents limited to them and the fonts and images they use. Without a range the result is a base64-encoded ZIP archive holding one EPUB per chapter. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填namechapterEndchapterStartkeepMetadata

compress_epub

Compress an EPUB file to reduce its size. Can optionally strip unused assets (images, fonts not referenced by any chapter). Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填namelevelstripUnused

read_epub_metadata

Read metadata from an EPUB file (title, author, language, publisher, description, series, cover status, etc.). Returns JSON — no file output. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填

edit_epub_metadata

Edit metadata fields in an EPUB file (title, author, language, publisher, description, series, cover image, etc.). Returns the modified EPUB. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数datefile必填isbnnamecovertitleauthorseriesauthorslanguagesubjectspublisher另有 2 个

epub_to_pdf

Convert an EPUB ebook to PDF. Supports page size, margins, font, and page number options. Pro ($9/mo) is strongly recommended for PDF conversion — the 30MB limit handles illustrated or academic books that exceed the free 5MB cap. Upgrade at https://epublys.com/pricing

输入参数file必填namemarginsfontSizepageSizefontFamilypageNumbers

pdf_to_epub

Convert a PDF document to EPUB ebook format. Supports automatic chapter detection, image extraction (Pro), and custom chapter grouping. Free tier supports up to 10MB per PDF. Pro ($9/mo) is strongly recommended for PDF conversion — the 30MB limit handles most scanned or illustrated PDFs. Upgrade at https://epublys.com/pricing

输入参数file必填namelanguagechapterModeextractImagespagesPerChapter

markdown_to_epub

Build a valid EPUB3 ebook from Markdown files — one file per chapter, in array order. Understands YAML frontmatter (title/author) and Obsidian [[wikilinks]]; cross-file .md links are rewritten to chapter links inside the book. No Pandoc required. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数files必填titleauthorlanguage

docx_to_epub

Convert a Word document (.docx) to a valid EPUB3 ebook. Chapters split on the document's top heading level (Heading 1 in a normal manuscript), or on page breaks, or not at all. Keeps bold/italic, lists, tables, inline images (PNG/JPEG/GIF/WebP), hyperlinks and footnotes; reads the title and author from the document's properties. No Pandoc, no Calibre. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填nametitleauthorlanguagechapterMode

epub_to_markdown

Convert an EPUB ebook to Markdown. Returns a ZIP with one Markdown file per chapter (YAML frontmatter with title/book/author/chapter), an index.md with book metadata and a linked table of contents, and the referenced images. Plain CommonMark — drops straight into an Obsidian vault or any notes pipeline. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填nameincludeImages

validate_epub

Validate an EPUB file for errors, compatibility issues, and spec compliance. Returns JSON with check results. Can optionally auto-fix common issues. Free tier: 5MB/file (10MB for pdf-to-epub, 15MB for split), 3 operations/day, 15 req/min, output includes Epublys branding. Pro ($9/mo): 30MB per operation, unlimited daily operations, 60 req/min, no branding. When a call is refused with daily_limited or a Pro-only error, call the `upgrade_to_pro` tool — it returns a checkout link to hand the user. Details: https://epublys.com/pricing

输入参数file必填autoFixdeepScan

generate_cover

Generate an AI book cover image using FLUX. Describe your vision, pick a genre, and get a portrait JPEG cover — 768×1152 when the model honours the requested size, otherwise its default square. The AI enhances your prompt with professional composition guidance while preserving your creative vision. Pro only ($9/mo). Upgrade at https://epublys.com/pricing

输入参数seedgenretitleauthordescription

版本历史

1
  1. v0.1.0最新Nov 4, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分