Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Find A Book

БесплатноНе проверен

An MCP server for searching and downloading books from Library Genesis, supporting EPUB, MOBI, PDF, and more through natural language queries.

GitHubEmbed

Описание

An MCP server for searching and downloading books from Library Genesis, supporting EPUB, MOBI, PDF, and more through natural language queries.

README

An MCP server for finding and downloading books from LibGen and Z-Library. Works with Claude Code, Claude Desktop, and any MCP-compatible AI agent.

Source Tools Account needed?
Open Library lookup_metadata No
Library Genesis get_formats, search_books, download_book No
Z-Library search_zlibrary, download_zlibrary Yes (free)

Quick rule of thumb: Start with search_books (LibGen, no login). If the book isn't there or you want a Chinese novel / recent release, switch to search_zlibrary (Z-Library).


Installation

Claude Desktop / Claude Code

Add to settings.json (no install needed — npx handles it automatically):

{
  "mcpServers": {
    "find-a-book": {
      "command": "npx",
      "args": ["-y", "find-a-book-mcp"],
      "env": {
        "ZLIBRARY_EMAIL": "[email protected]",
        "ZLIBRARY_PASSWORD": "yourpassword"
      }
    }
  }
}

Omit the env block if you only need LibGen (no Z-Library account required).

Manual

git clone https://github.com/Xiaochengzi2048/find-a-book-mcp
cd find-a-book-mcp
npm install
node server.js

Z-Library Setup

Z-Library has wider coverage than LibGen — especially for novels, Chinese books, and recent titles. Requires a free account at z-library.sk.

Option A — Email + password (auto-login on first use):

export [email protected]
export ZLIBRARY_PASSWORD=yourpassword

Option B — Token (skip login, slightly faster):

export ZLIBRARY_REMIX_USERID=12345678
export ZLIBRARY_REMIX_USERKEY=abcdef1234567890...

To get your token: log in at z-library.sk, open DevTools → Application → Cookies → copy remix_userid and remix_userkey.


Tools

lookup_metadata — Verify book info before searching

Looks up authoritative metadata from Open Library (free, no login). Use this before searching LibGen when you're not sure about the exact title or author — LibGen's scraped titles are often noisy ("Summary of…", alternate editions, etc.).

Parameters:

  • query (string, optional) — Title, author, or keywords
  • isbn (string, optional) — ISBN-10 or ISBN-13 for exact lookup (takes precedence over query)

Returns: Up to 5 candidates: { title, author, year, publisher, isbn, cover, openlibrary }. ISBN lookups also include pages.

When to use: You have a rough title/author and want to confirm the canonical version before searching. Or you have an ISBN and want clean metadata.


search_books — Search LibGen

Search by title, author, or keywords. Returns 5 results per page with pagination.

Parameters:

  • query (string, required) — Title, author, or keywords
  • page (number, optional, default 1) — Page number (5 results per page)
  • extensions (string[], optional) — Format filter, e.g. ["epub", "pdf", "mobi"]

Returns:

{
  "books": [
    {
      "title": "The Psychology of Money",
      "author": "Morgan Housel",
      "year": "2020",
      "language": "English",
      "extension": "EPUB",
      "size": "920 kB",
      "size_bytes": 942080,
      "md5": "D7FF6458..."
    }
  ],
  "displayPage": 1,
  "totalDisplayPages": 4,
  "totalCount": 18,
  "hasMore": true,
  "hasPrev": false
}

When to use: Most non-fiction, English books, older titles. No account needed.


get_formats — See all available formats for a book

Same search as search_books, but deduplicates by title + author and groups all formats together. Fetches up to 75 results in parallel.

Parameters:

  • query (string, required) — Title, author, or keywords

Returns:

[
  {
    "title": "The Psychology of Money",
    "author": "Morgan Housel",
    "year": "2020",
    "language": "English",
    "formats": [
      { "extension": "EPUB", "size": "920 kB", "size_bytes": 942080, "md5": "D7FF6458..." },
      { "extension": "MOBI", "size": "1.1 MB", "size_bytes": 1153433, "md5": "A3CC9012..." },
      { "extension": "PDF",  "size": "3.2 MB", "size_bytes": 3355443, "md5": "B9DE3F21..." }
    ]
  }
]

When to use: You want to pick a specific format (e.g. EPUB for e-reader, PDF for reference), or you want to see everything available in one call.


download_book — Download from LibGen

Download a book by its MD5 hash. Automatically tries multiple mirrors in parallel: libgen.lilibgen.rslibgen.stlibrary.lol.

Parameters:

  • md5 (string, required) — MD5 from search_books or get_formats results
  • title (string, optional) — Used for the filename
  • dest_dir (string, optional) — Save directory (defaults to system temp dir; created if missing)

Returns: { file_path, filename, size_bytes, extension }


search_zlibrary — Search Z-Library

Search Z-Library's catalog. Better than LibGen for novels, Chinese books, and recently published titles.

Requires: ZLIBRARY_EMAIL + ZLIBRARY_PASSWORD (or token env vars).

Parameters:

  • query (string, required) — Title, author, or keywords
  • page (number, optional, default 1) — Page number (10 results per page)
  • extensions (string[], optional) — Format filter, e.g. ["epub", "pdf"]
  • languages (string, optional) — Language filter, e.g. "chinese" or "english"
  • year_from / year_to (number, optional) — Publication year range

Returns: Book list with zlibrary_id and zlibrary_hash (needed for download_zlibrary), plus title, author, year, language, format, and size.

When to use: LibGen doesn't have the book; it's a Chinese novel or recent release; you want to filter by language.


download_zlibrary — Download from Z-Library

Download a book using the zlibrary_id and zlibrary_hash from search_zlibrary results.

Requires: ZLIBRARY_EMAIL + ZLIBRARY_PASSWORD (or token env vars).

Free Z-Library accounts have a 10 downloads/day limit.

Parameters:

  • zlibrary_id (string, required) — From search_zlibrary results
  • zlibrary_hash (string, required) — From search_zlibrary results
  • title (string, optional) — Used for the filename
  • dest_dir (string, optional) — Save directory

Returns: { file_path, filename, size_bytes, extension }


Recommended Workflow

1. lookup_metadata("book title")        ← confirm exact title/author (optional but recommended)
2a. search_books("exact title")         ← try LibGen first (no login)
    → download_book(md5)
2b. search_zlibrary("exact title")      ← if not on LibGen, or want Chinese/recent
    → download_zlibrary(id, hash)

Tips for better results:

  • Use lookup_metadata first when the title might be ambiguous — it normalizes spelling and finds the right edition
  • Use get_formats to pick EPUB over PDF when both exist (EPUB is better on e-readers)
  • Use languages: "chinese" in search_zlibrary to filter out English translations of Chinese books
  • If search_books returns noisy results (summaries, study guides), add the author name to narrow it down

Environment Variables

Variable Description
ZLIBRARY_EMAIL Z-Library account email
ZLIBRARY_PASSWORD Z-Library account password
ZLIBRARY_REMIX_USERID Token auth: user ID from cookie (alternative to email/password)
ZLIBRARY_REMIX_USERKEY Token auth: user key from cookie
LIBGEN_MIRRORS Override LibGen mirror list (comma-separated URLs) when default domains rotate, e.g. https://libgen.is,https://libgen.gs

Notes

  • Downloaded files are saved to the system temp directory (/tmp/) by default — move them as needed
  • size_bytes lets you decide delivery method (direct send vs. link for large files)
  • Mirror failures are logged to stderr
  • Supports EPUB, MOBI, PDF, AZW3, FB2, DJVU, and more


find-a-book-mcp(中文说明)

LibGenZ-Library 搜索、下载电子书的 MCP 服务,兼容 Claude Code、Claude Desktop 及所有支持 MCP 协议的 AI Agent。

数据源 工具 需要账号?
Open Library lookup_metadata
Library Genesis get_formats, search_books, download_book
Z-Library search_zlibrary, download_zlibrary 是(免费)

简单判断原则: 先用 search_books(LibGen,无需登录)。找不到,或要搜中文小说、近期出版物,再切 search_zlibrary(Z-Library)。


安装

Claude Desktop / Claude Code

settings.json 中添加(无需手动安装,npx 自动处理):

{
  "mcpServers": {
    "find-a-book": {
      "command": "npx",
      "args": ["-y", "find-a-book-mcp"],
      "env": {
        "ZLIBRARY_EMAIL": "你的邮箱",
        "ZLIBRARY_PASSWORD": "你的密码"
      }
    }
  }
}

只用 LibGen 的话可以省略 env 部分,无需账号。

手动安装

git clone https://github.com/Xiaochengzi2048/find-a-book-mcp
cd find-a-book-mcp
npm install
node server.js

Z-Library 配置

Z-Library 覆盖面比 LibGen 更广,尤其适合小说、中文书、近期出版物。需要在 z-library.sk 注册免费账号。

方式 A — 邮箱 + 密码(首次使用时自动登录):

export [email protected]
export ZLIBRARY_PASSWORD=yourpassword

方式 B — Token(跳过登录,稍快):

export ZLIBRARY_REMIX_USERID=12345678
export ZLIBRARY_REMIX_USERKEY=abcdef1234567890...

获取方式:在 z-library.sk 登录后,打开 DevTools → Application → Cookies,复制 remix_useridremix_userkey


工具说明

lookup_metadata — 搜索前校验书目信息

Open Library 查询权威元数据(免费,无需账号)。在搜 LibGen 之前用它确认准确的书名/作者——LibGen 抓取的书名经常有噪音("Summary of…"、不同版次等)。

参数:

  • query(可选)— 书名、作者或关键词
  • isbn(可选)— ISBN-10 或 ISBN-13,精确查询(优先级高于 query

返回: 最多 5 个候选:{ title, author, year, publisher, isbn, cover, openlibrary }。ISBN 查询另含 pages

适用场景: 书名不确定时先校验规范写法;有 ISBN 时直接拿干净元数据。


search_books — LibGen 搜索

按书名、作者或关键词搜索,每页返回 5 条,支持翻页。

参数:

  • query(必填)— 书名、作者或关键词
  • page(可选,默认 1)— 页码,每页 5 条
  • extensions(可选)— 格式过滤,如 ["epub", "pdf", "mobi"]

返回字段: 书名、作者、出版社、年份、语言、格式、大小(含 size_bytes)、MD5,以及翻页信息(hasMore / hasPrev / totalCount)。

适用场景: 大多数非虚构类书籍、英文书、早期出版物。无需账号。


get_formats — 查看所有可用格式

search_books 搜索逻辑相同,但将同一书名+作者的所有格式归并展示。并行抓取最多 75 条结果,覆盖更全面。

参数:

  • query(必填)— 书名、作者或关键词

返回示例:

[
  {
    "title": "置身事内",
    "author": "兰小欢",
    "year": "2021",
    "language": "Chinese",
    "formats": [
      { "extension": "EPUB", "size": "2.3 MB", "size_bytes": 2411724, "md5": "..." },
      { "extension": "PDF",  "size": "8.1 MB", "size_bytes": 8493466, "md5": "..." }
    ]
  }
]

适用场景: 想选特定格式(如 EPUB 用于阅读器,PDF 用于查阅),或想一次看全所有可用格式。


download_book — LibGen 下载

通过 MD5 下载书籍,自动并行尝试多个镜像:libgen.lilibgen.rslibgen.stlibrary.lol

参数:

  • md5(必填)— 来自 search_booksget_formats 的 MD5
  • title(可选)— 书名,用于文件命名
  • dest_dir(可选)— 保存目录(默认系统临时目录,不存在会自动创建)

返回: { file_path, filename, size_bytes, extension }


search_zlibrary — Z-Library 搜索

在 Z-Library 搜索书籍,覆盖面比 LibGen 更广,尤其适合小说、中文书和近期出版物。

需要: ZLIBRARY_EMAIL + ZLIBRARY_PASSWORD(或 Token 环境变量)。

参数:

  • query(必填)— 书名、作者或关键词
  • page(可选,默认 1)— 页码,每页 10 条
  • extensions(可选)— 格式过滤,如 ["epub", "pdf"]
  • languages(可选)— 语言过滤,如 "chinese""english"
  • year_from / year_to(可选)— 出版年份范围

返回: 书籍列表,含 zlibrary_idzlibrary_hash(下载用),以及书名、作者、年份、语言、格式、大小。

适用场景: LibGen 没有该书;中文小说或近期出版物;需要按语言过滤。


download_zlibrary — Z-Library 下载

search_zlibrary 返回的 zlibrary_id + zlibrary_hash 下载书籍。

需要: ZLIBRARY_EMAIL + ZLIBRARY_PASSWORD(或 Token 环境变量)。

免费账号每天限下载 10 本

参数:

  • zlibrary_id(必填)— 来自 search_zlibrary 结果
  • zlibrary_hash(必填)— 来自 search_zlibrary 结果
  • title(可选)— 书名,用于文件命名
  • dest_dir(可选)— 保存目录

返回: { file_path, filename, size_bytes, extension }


推荐使用流程

1. lookup_metadata("书名")              ← 确认准确书名/作者(可选但推荐)
2a. search_books("准确书名")            ← 先试 LibGen(无需登录)
    → download_book(md5)
2b. search_zlibrary("准确书名")         ← LibGen 没有,或要搜中文/近期出版物
    → download_zlibrary(id, hash)

用好这个工具的几个技巧:

  • 书名有歧义时先用 lookup_metadata 校准——它能找到规范拼写和正确版次
  • get_formats 可以选格式:有 EPUB 时优先选 EPUB(阅读器更友好)
  • 搜中文书时加 languages: "chinese" 过滤掉英译本
  • search_books 结果有噪音(摘要版、学习指南)时,加上作者名再搜

环境变量

变量名 说明
ZLIBRARY_EMAIL Z-Library 账号邮箱
ZLIBRARY_PASSWORD Z-Library 账号密码
ZLIBRARY_REMIX_USERID Token 认证:Cookie 中的 userid(可替代邮箱/密码)
ZLIBRARY_REMIX_USERKEY Token 认证:Cookie 中的 userkey
LIBGEN_MIRRORS 覆盖默认 LibGen 镜像列表(逗号分隔的 URL),域名轮换时使用,如 https://libgen.is,https://libgen.gs

注意事项

  • 文件默认保存在系统临时目录(/tmp/),请自行移至目标位置
  • size_bytes 字段方便判断发送方式(小文件直发,大文件给链接)
  • 镜像失败时写入 stderr,便于排查
  • 支持 EPUB、MOBI、PDF、AZW3、FB2、DJVU 等格式

from github.com/Xiaochengzi2048/find-a-book-mcp

Установка Find A Book

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/Xiaochengzi2048/find-a-book-mcp

FAQ

Find A Book MCP бесплатный?

Да, Find A Book MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Find A Book?

Нет, Find A Book работает без API-ключей и переменных окружения.

Find A Book — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Find A Book в Claude Desktop, Claude Code или Cursor?

Открой Find A Book на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Find A Book with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development