Find A Book
БесплатноНе проверенAn MCP server for searching and downloading books from Library Genesis, supporting EPUB, MOBI, PDF, and more through natural language queries.
Описание
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
envblock 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_useridandremix_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 keywordsisbn(string, optional) — ISBN-10 or ISBN-13 for exact lookup (takes precedence overquery)
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 keywordspage(number, optional, default1) — 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.li → libgen.rs → libgen.st → library.lol.
Parameters:
md5(string, required) — MD5 fromsearch_booksorget_formatsresultstitle(string, optional) — Used for the filenamedest_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 keywordspage(number, optional, default1) — 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) — Fromsearch_zlibraryresultszlibrary_hash(string, required) — Fromsearch_zlibraryresultstitle(string, optional) — Used for the filenamedest_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_metadatafirst when the title might be ambiguous — it normalizes spelling and finds the right edition - Use
get_formatsto pick EPUB over PDF when both exist (EPUB is better on e-readers) - Use
languages: "chinese"insearch_zlibraryto filter out English translations of Chinese books - If
search_booksreturns 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_byteslets 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(中文说明)
从 LibGen 和 Z-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_userid和remix_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.li → libgen.rs → libgen.st → library.lol。
参数:
md5(必填)— 来自search_books或get_formats的 MD5title(可选)— 书名,用于文件命名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_id 和 zlibrary_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 等格式
Установка Find A Book
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Xiaochengzi2048/find-a-book-mcpFAQ
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
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Find A Book with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
