mcp-ebook-read
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GROBID_URL | No | URL of GROBID service for optional PDF paper metadata enrichment, e.g. http://127.0.0.1:8070 | |
| PDF_DOCLING_DEVICE | No | Override Docling accelerator device, e.g. auto, cpu, or mps on Apple Silicon | |
| GROBID_TIMEOUT_SECONDS | No | Timeout for GROBID requests, default 20, recommended 120 for large papers | |
| PDF_DOCLING_BATCH_SIZE | No | Override Docling OCR/layout/table batch sizes, auto-derived by default | |
| PDF_FORMULA_BATCH_SIZE | No | Batch size for formula processing, default auto (dynamically scaled) | |
| PDF_DOCLING_NUM_THREADS | No | Override Docling CPU threads, auto-derived from CPU cores by default | |
| MCP_EBOOK_INGEST_WORKERS | No | Number of parallel eager ingest workers for multiple new documents, default auto | |
| PDF_PARSE_TIMEOUT_SECONDS | No | Timeout for isolated Docling/Pix2Text PDF parse and visual extraction workers, default 1800 | |
| DOCLING_FORMULA_ENRICHMENT | No | Set to true to enable Docling CodeFormulaV2 VLM enrichment (default false) | |
| PDF_FORMULA_REQUIRE_ENGINE | No | Set to true to fail fast when Pix2Text is unavailable for formulas (default false) | |
| MCP_EBOOK_CAPTURE_INCLUDE_QUERY | No | Set to 1 to include raw query text in captures (default false) | |
| MCP_EBOOK_CAPTURE_READING_SESSION | No | Set to 1 to capture read/search tool outputs for retrieval drift evaluation (default false) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| library_scanA | Scan a local root recursively for EPUB/PDF documents and register them in one root sidecar catalog at /.mcp-ebook-read. If root is omitted, the MCP process project root is used. Use this before doc_id-only tools after a fresh server restart. Returns scan_performance so agents can see candidate counts, hash workers, and scan timing. |
| library_exploreA | Explore the already-ingested root sidecar with local SQLite FTS and DocumentGraph ranking. Use this when the user asks which book/paper contains relevant content. If root is omitted, the MCP process project root is used. It does not auto-ingest heavy PDFs. |
| library_ingest_documentsA | Scan the selected root, then queue background ingest for every EPUB/PDF document that is not READY or has stale pipeline metadata. Use this for whole-library initialization or refresh instead of calling document_ingest many times in parallel. max_documents=0 means no cap. Returns queued, deduplicated, skipped-ready, and scan counts plus the first queued jobs. |
| library_ingest_statusB | Return a compact whole-library ingest dashboard: document counts, latest job counts by status/stage, running jobs with owner/heartbeat/lease, queued samples, recent failures, and recovered expired leases. Use this to monitor library_ingest_documents progress. |
| storage_list_sidecarsA | List the .mcp-ebook-read sidecar for a root. Use this to rediscover known documents after restart and inspect local persistence. If root is omitted, the MCP process project root is used. |
| storage_delete_documentA | Delete one document from local sidecar persistence. Use only when the user asks to remove persisted MCP state for a specific document. |
| storage_cleanup_sidecarsA | Clean the root sidecar catalog by pruning missing documents, orphan artifacts, and optionally compacting SQLite. If root is omitted, the MCP process project root is used. |
| document_ingestA | Queue high-fidelity background ingest for one EPUB/PDF document. Pass doc_id for an already scanned document, or path for a new local file. Pass root to choose the unified sidecar at /.mcp-ebook-read; omitted root uses the MCP process project root. profile='auto' infers EPUB/PDF and PDF book/paper mode from document metadata; pass profile='paper' when a PDF paper is outside a papers/ path, or profile='book' for PDF books. library_scan marks PDFs under papers/ as paper and all other documents as book. PDF ingest persists pypdfium2 fast preflight, PyMuPDF diagnostics, Docling structure, formulas, images, tables, and figures. |
| document_ingest_statusA | Read current status for a background ingest job. Use after any document_ingest call until status is succeeded or failed. |
| document_ingest_list_jobsB | List recent ingest jobs for one document. Use when the latest job_id was lost or the user asks for ingest history. |
| document_exploreA | Explore one ingested EPUB/PDF book or PDF paper by doc_id. Ask a natural-language reading question and receive SQLite FTS hits expanded with DocumentGraph nodes, nearby evidence, diagnostics, truncation notices, ambiguity candidates, and suggested precise next calls. The tool infers EPUB/PDF/book/paper mode from doc_id. |
| document_nodeB | Read one precise DocumentGraph node by graph node id or short stable id. Works across EPUB books, PDF books, and PDF papers for outline nodes, chunks, pages, formulas, images, tables, figures, citations, references, and artifacts. |
| search_in_outline_nodeA | Search within one outline node or chapter. Use this for focused reading questions after get_outline identifies the relevant section. |
| read_outline_nodeB | Read one outline node or chapter directly. Prefer this for chapter summaries and guided reading after get_outline. |
| epub_list_imagesA | List extracted images from an EPUB book, optionally scoped to an outline node. Use before epub_read_image in multimodal reading workflows. |
| epub_read_imageA | Return one EPUB image local path plus nearby text context. Use when a multimodal LLM needs to inspect a figure, diagram, or illustration. |
| pdf_list_imagesA | List extracted PDF images, optionally scoped to an outline node. Use for general PDF visual evidence; use pdf_list_figures or pdf_list_tables for Docling-detected figure/table objects. |
| pdf_read_imageA | Return one extracted PDF image local path plus nearby text context. Use when a multimodal LLM needs to inspect PDF visual evidence. |
| pdf_list_tablesA | List Docling-extracted PDF tables with diagnostics, optionally scoped to an outline node. Use for table-centric reading before pdf_read_table. |
| pdf_read_tableB | Read one extracted PDF table with structured rows, markdown/html, evidence image, nearby context, and diagnostics. |
| pdf_list_figuresA | List Docling-detected PDF figures with diagnostics, optionally scoped to an outline node. Use for figure-centric reading before pdf_read_figure. |
| pdf_read_figureB | Read one extracted PDF figure with local path, caption, nearby context, and diagnostics. |
| pdf_list_formulasA | List formulas from an ingested PDF, optionally scoped to an outline node. The tool infers book/paper mode from doc_id metadata; do not choose a separate book or paper formula tool. |
| pdf_read_formulaA | Read one formula from an ingested PDF with LaTeX, status, context, and evidence image. The tool infers book/paper mode from doc_id metadata. |
| get_outlineB | Return the document outline for EPUB/PDF. Use this first for outline-first navigation, chapter selection, and node-scoped reading. |
| render_pdf_pageA | Render one PDF page to a PNG evidence image. Use when page-level visual evidence is needed beyond extracted figures, tables, images, or formulas. |
| eval_export_reading_sessionsA | Export opt-in reading-session capture events from the selected root sidecar. If root is omitted, the MCP process project root is used. Use to inspect real MCP reading calls and retrieval evidence without exposing file paths. |
| eval_replay_reading_sessionsA | Replay captured search reading-session events under a root to detect retrieval drift. If root is omitted, the MCP process project root is used. Only events captured with query text enabled are replayable. |
| doctor_health_checkC | Run deterministic diagnostics for local SQLite sidecar indexes, optional GROBID enrichment, parser dependencies, sidecar catalogs, stale pipeline metadata, and artifact consistency. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ArtiPyHeart/mcp-ebook-read'
If you have feedback or need assistance with the MCP directory API, please join our Discord server