Skip to main content
Glama
Xiaochengzi2048

find-a-book-mcp

find-a-book-mcp

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": "you@example.com",
        "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

Related MCP server: MCP Open Library & File Search Server

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 ZLIBRARY_EMAIL=you@example.com
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 }


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 ZLIBRARY_EMAIL=you@example.com
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 等格式

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Project Gutenberg — 75,000+ public-domain ebooks with full plain-text retrieval.

  • Free, no-key Bible MCP server — 86 translations in 32 languages, from any MCP client.

  • MCP server for accessing curated awesome list documentation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Xiaochengzi2048/find-a-book-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server