An MCP (Model Context Protocol) server that provides AI assistants with direct access to your ebook library. Works with Claude, Cursor, and other MCP-compatible clients.
- List books in your library with metadata (title, author, language)
- Read chapters individually or in ranges
- Search within books or across your entire library
- EPUB support with automatic text extraction
LLMs like Claude have read millions of books during training, but they don't actually have those books—they have a compressed neural representation of patterns and themes. This creates real limitations:
| Question Type | LLM Training Data | MCP Ebook Server |
|---|---|---|
| "What's the 10th word of chapter 2?" | ❌ Cannot answer | ✅ Exact answer |
| "Quote the opening paragraph" | ✅ Verbatim text | |
| "How many times is 'magic' mentioned?" | ❌ Guesses | ✅ Precise count |
| "What happens in chapter 5?" | ✅ Actual content | |
| "Does this book mention X?" | ✅ Searchable proof |
The core problem: LLMs retain the gist of books—major plot points, famous quotes, general themes—but lose precise details. When asked about specifics they don't know, they often hallucinate plausible-sounding answers rather than admitting uncertainty.
The solution: This MCP server gives AI direct access to the actual source text. Instead of guessing, the AI can read the exact chapter, search for specific terms, and cite real passages. No hallucinations, just the book.
docker run -p 8080:8080 -v /path/to/your/ebooks:/ebooks ghcr.io/bryanlabs/mcp-ebook-server:latestservices:
mcp-ebook-server:
image: ghcr.io/bryanlabs/mcp-ebook-server:latest
ports:
- "8080:8080"
volumes:
- /path/to/your/ebooks:/ebooks:ropip install git+https://github.com/bryanlabs/mcp-ebook-server.git
mcp-ebook-server --library-path /path/to/your/ebooksgit clone https://github.com/bryanlabs/mcp-ebook-server.git
cd mcp-ebook-server
pip install -e .
mcp-ebook-server| Variable | Default | Description |
|---|---|---|
EBOOK_LIBRARY_PATH |
/ebooks |
Path to your ebook directory |
MCP_HOST |
0.0.0.0 |
Host to bind the server |
MCP_PORT |
8080 |
Port for the SSE endpoint |
Once the server is running, connect your MCP client to http://localhost:8080/sse.
| Tool | Description | Example |
|---|---|---|
list_books() |
List all ebooks with metadata | "What books do I have?" |
get_book_info(book_path) |
Get book details and chapter list | "How many chapters in The Magicians?" |
get_chapter(book_path, chapter_number) |
Read a specific chapter | "Read chapter 1" |
get_chapters_range(book_path, start, end) |
Read multiple chapters | "Get chapters 1-3" |
search_book(book_path, query) |
Search within a book | "Find mentions of 'magic'" |
search_library(query) |
Search all books | "Search for 'dragon'" |
| Format | Status |
|---|---|
| EPUB | Fully supported |
| MOBI | Requires conversion to EPUB |
| AZW3 | Requires conversion to EPUB |
| Not supported |
MIT License - see LICENSE for details.