One search, ten legal book sources. A multi-source search tool for public-domain and open-license ebooks in Chinese and English β a search guide that surfaces ranked links, and downloads a file only when you explicitly ask for it. Delivered as a CLI, an MCP server, and an Agent Skill shell: one core engine, three front-ends.
English | δΈζ | π Landing Page
- π One search, book in hand β search γι«ζθ½δΊΊε£«ηδΈδΈͺδΉ ζ―γ (The 7 Habits of Highly Effective People) and get ranked netdisk links with extraction codes from community book lists in one go
- π Ancient Chinese texts β Pre-Qin philosophy from ctext.org, the Buddhist canon from CBETA (traditional/simplified auto-converted), Wikisource full texts
- π Modern bestsellers β the GitHub book-list source scans the whole of GitHub for community-maintained netdisk directories and hands you ctfile/lanzou links with extraction codes
- π€ Agent-native β MCP server for agent clients, plus an Agent Skill shell with a search-then-confirm workflow
- π‘οΈ Verified downloads β nothing is fetched until you say so; downloaded files are magic-number-checked before being reported as success
- π§ Free audiobooks β 20,000+ LibriVox public-domain recordings (MP3/M4B) in the same ranked results
- π§ Never empty-handed β zero hits still returns manual entry points and legitimate borrow/purchase channels, not a bare "not found"
Looking for a book but dreading the tour across ten different websites? One query asks every source below in parallel and hands the results back ranked; a rate-limited or unreachable source is skipped and reported honestly, never fatal to the search. Try it with "Find me The 7 Habits of Highly Effective People".
| Source | Coverage | License |
|---|---|---|
| Project Gutenberg (Gutendex API) | 75,000+ English/Western classics | Public domain |
| Open Library / archive.org | Millions of catalog records, scans, lending | CC BY-SA / ODbL |
| Wikisource (zh + en) | Chinese and English full-text classics | CC BY-SA 4.0 |
| Standard Ebooks | Polished, carefully typeset English classics | Public domain |
| CBETA | Chinese Buddhist canon | CC BY-NC-SA 4.0 |
| ctext.org | Pre-Qin through Han-era classics | Public-domain texts |
| LibriVox | 20,000+ free public-domain audiobooks | Public domain |
| Google Books (free API key) | World's largest book catalog | Metadata CC BY |
| wenshuoge / daizhigev20 (GitHub mirrors) | Chinese ancient-text corpus | Public-domain classics |
| GitHub book-list indexes (full code search) | Community netdisk directories | Links only |
For modern titles beyond the public domain, the clues often live in community-maintained book-list notes. It sweeps the book lists across all of GitHub for you and, on a netdisk hit, hands you the link together with the extraction code β strictly link-only: you open the download page yourself, the tool never touches the netdisk.
Ten sources each speak their own language; comparing them by hand takes forever. Every result is scored 0β100 on title/author match, availability, and format, so the best candidates sit at the top β just start from rank one.
Live in the terminal? Type a command. Prefer an AI agent? Let it search for you. Running an MCP client? Call it as a tool. Same engine, whichever posture you like β after installing, just tell your agent "find me a copy of The 7 Habits of Highly Effective People".
Want to follow sources beyond the built-in ten? Add one entry to the config. Custom sources are strictly pass-through: results are links you open yourself in your own browser, never proxied downloads.
The scariest tool is one that pulls files onto your disk uninvited. Here nothing downloads until you say so, and every file passes a host allowlist, a size cap, and a file-signature check before being reported as success. A zero-hit search still isn't a dead end β manual entry points and legitimate borrow/purchase channels come back with the results.
| π§ mu-ebook-scout | Manual site-by-site search | Paid subscriptions (Kindle Unlimited / Everand / WeRead etc.) | |
|---|---|---|---|
| Cost | Free, open source | Free, but costs your time | Monthly subscription |
| Coverage | 10 public-domain/open-license sources in parallel + custom pass-through | However many sites you can remember | Licensed catalogs; limited public-domain classics |
| Chinese classics & public domain | Native (Wikisource zh, CBETA, ctext, wenshuoge, daizhigev20) | Search and compare site by site | Scarce |
| How you use it | One prompt, ranked results, direct file links | Search, filter, open download pages yourself | Mostly in-app reading |
| Agent / automation | MCP server + Agent Skill shell, conversational | Cannot be automated | No open interface |
| File access | On-demand EPUB/TXT/MP3 downloads to your own device, explicit confirm + verification | Manual downloads, inconsistent quality | Often DRM-restricted; export not guaranteed |
| License boundary | Indexes public-domain/open-license sources only; extended entries pass through links | Your own judgment | Fully licensed, stable experience |
| Workflow | Scenario | Trigger |
|---|---|---|
| Search & rank | Find a book across all 10 sources | bookscout search "title" |
| Verified download | Fetch one file you picked | bookscout get N |
| MCP integration | Agent-driven search without a shell | MCP client config |
| Agent Skill mode | Conversational search-then-confirm | Skill trigger phrases |
| Item | Description |
|---|---|
| Language | Python 3.10+ |
| Runtime dependencies | None (stdlib only; mcp is an optional extra) |
| Front-ends | CLI / MCP server / Agent Skill shell |
| Output | Ranked text report (grouped by availability) |
| Verification | Magic-number check on every download |
| Download cap | 100 MB, host allowlist enforced |
| Tests | 127 unit tests, all passing |
| License | MIT (aggregated sources keep their own licenses) |
1) Install β clone the Agent Skill shell into your skill directory:
git clone https://github.com/muippt/mu-ebook-scout.git ~/.claude/skills/mu-ebook-scoutOther agents may use their own skill directories, or a project-level
.claude/skills/mu-ebook-scout. To use the standalone CLI instead:pipx install git+https://github.com/muippt/mu-ebook-scout(Python 3.10+; add the[mcp]extra for the MCP server).
2) Verify β restart or reload your agent, then send:
List my available skills
3) Run β one core prompt to exercise the primary value:
Find me a copy of γι«ζθ½δΊΊε£«ηδΈδΈͺδΉ ζ―γ (The 7 Habits of Highly Effective People), preferably EPUB.
Or invoke a specific workflow:
Search the public-domain sources for γιεη»γ (the Diamond Sutra) and rank them.
Download result #2.
- Local execution, zero runtime dependencies β the whole engine is Python stdlib; no analytics, no telemetry, no data collection.
- Tokens never touch disk β the optional GitHub token and Google Books key are read from environment variables at runtime only, never stored, never logged, and attached exclusively to
api.github.com/googleapis.comrequests β never to any book source. - Host allowlist β the download command refuses any host outside the built-in public-domain sources; custom-source links are passed through as-is, never proxied.
- Usage boundaries β the tool hosts and distributes no content; built-in sources are public-domain/open-license; extended-resource entries (Anna's Archive, LibGen) are pre-built search-entry URLs only.
If this tool saves you time, a star helps others find it:
One search across ten legal book sources β never empty-handed.
π Signatory Author of Tsinghua University Press / 2026 Dangdang Influential Author / AI & Large Model Business HR Specialist at a Leading Tech Company / National Level-1 HR Manager / Level-2 Psychological Counselor / Self-taught Designer
π Author of Visual Team Management. Clients include ByteDance, Tencent, Baidu, China Mobile, SMG, BOEβ¦
π‘ WeChat Official Account / Xiaohongshu: muippt
MIT Β© 2026 muippt
Thanks to the public-domain and open-license ecosystems that make this tool possible: Project Gutenberg, Open Library, Wikisource, Standard Ebooks, CBETA, ctext.org, LibriVox, Google Books, and the wenshuoge / daizhigev20 GitHub mirrors. Per-source license notes: THIRD_PARTY_LICENSES.txt.
Note: Much of this project was co-created with AI assistance. If you believe your work has been used without proper attribution, please open an issue.
Some source hosts are unreachable from certain networks (regional blocking of Anna's Archive / LibGen mirrors, archive.org download nodes, HathiTrust). The engine uses Python's stdlib HTTP stack, which respects the standard proxy environment variables automatically β no code change needed:
# point at your local proxy (adjust the port to your setup)
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890 # if your proxy is SOCKS5Set them for one session, or in ~/.zshrc / ~/.bashrc for permanence.
Without a proxy everything still works: the built-in sources, GitHub code
search, and all graceful-degradation paths remain reachable.
The Chinese public-domain book collections (Wenshuoge + Daizhige) are hosted on GitHub and searched through the GitHub API. Anonymous requests are limited to 60 per hour per IP β usually fine for casual use, but easy to exhaust. With a free personal access token the limit becomes 5,000 requests/hour.
- Open https://github.com/settings/tokens?type=beta
- Generate new token β name it e.g.
bookscout, leave all permissions unchecked export GITHUB_TOKEN=github_pat_xxxx(orBOOKSCOUT_GITHUB_TOKEN, which takes precedence)
The token is read from the environment at runtime only β never stored, never
logged, attached exclusively to api.github.com requests.
The keyless Google Books quota is shared per IP and often exhausted
(HTTP 429). With your own free key the google_books source activates
automatically:
- Open https://console.cloud.google.com/apis/library/books.googleapis.com
- Create (or select) a project, click Enable, then Credentials
- Create an API key (no restrictions needed for read-only search)
export BOOKSCOUT_GOOGLE_BOOKS_KEY=AIza...
Without the key the source simply stays silent β it never fails a search.
- v1.5 β Gallica, Europeana, and archive.org Chinese-language filtering
- v1.6 β chinese-poetry corpus, more community seed repositories
Issues and pull requests are welcome at https://github.com/muippt/mu-ebook-scout. New source adapters must target public-domain or openly licensed material; see THIRD_PARTY_LICENSES.txt for the per-source license notes.