
BookMCP
io.github.Prem5123Published by GitHub account Prem5123v0.1.0Updated Oct 24, 2026
Cited book knowledge for agents working on system design and implementation.
Overview
BookMCP connects your own system-design and engineering PDF books to a coding agent, letting it search passages, cite pages and keep source-linked design notes.
- What you can do
- Browse the local library index of ingested books, titles and page/chunk counts, with pagination for larger catalogs. Search the library with keyword (BM25) queries, optionally scoped to one book. Read a specific chunk or page and fetch bounded neighboring context to verify a passage before quoting it. Retrieve saved design lessons and check whether their source has gone stale. Draft lessons tied to a book and chunk through a prompt, while saving and removing them happens through the command-line tool.
- When to use it
- Useful when designing a service, reviewing an architecture, or deciding on retries, consistency, caching and reliability, and you want the agent's advice grounded in passages from books you own that it can cite. Also useful for carrying reviewed design lessons into later sessions.
- Requirements
- A local process on macOS, Linux or Windows, installed as a native binary (or built from source with Rust 1.96+ and a C/C++ toolchain). Text-based PDFs must be ingested first with the command-line tool; no API keys, embedding service, Python runtime or external database are needed. SQLite and the search index run locally. Desktop clients may need absolute paths from the configuration helper.
Installation
In SourceWeft
- Open BookMCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
BookMCP
Give coding agents the book knowledge to design and build better systems.
[CI] [Release] [MCP Registry] [License: MIT OR Apache-2.0]
BookMCP connects your system design and engineering books to Codex, Claude Code, and other stdio MCP clients. Ingest text-based PDFs once. Your agent can retrieve relevant principles, compare architecture trade-offs, and turn a chosen design into implementation guidance grounded in passages it can cite. Save useful design lessons with their sources for future sessions.
Use it when designing a service, reviewing an architecture, or implementing decisions about retries, consistency, caching, and reliability. The books provide reference knowledge; the agent still needs to reason about your requirements and test its implementation.
No API keys, embedding service, Python runtime, or external database required. SQLite and Tantivy BM25 search run on your machine.
Watch the 45-second demo. Retrieve a principle about safe retries, save it as a design lesson, and read it in a new MCP session. Real CLI and MCP output, edited for readability, using an original guide; source, transcript, and reproduction are included. Lesson saves happen explicitly through the CLI.
Try the system-design example · Download BookMCP · Share setup feedback
If this is useful for your agent workflow, star the repository to save it and help other developers find it.
Quick start
Download a native binary. No Rust, Python, API key, or database setup required.
Extract the archive, put bookmcp (bookmcp.exe on Windows) on your PATH, then open a terminal in the extracted folder. Step-by-step installation and checksum verification · All release assets
Build from source instead
Requires Rust 1.96+ and a C/C++ build toolchain: Xcode Command Line Tools on macOS, build-essential on Debian/Ubuntu, or Visual Studio Build Tools with C++ on Windows. Install Rust using rustup.
Ensure Cargo's bin directory is on your PATH. SQLite is bundled; no PDF command-line utility is needed.
Try the included, original test PDF before adding your own books:
Then ingest a PDF you have the right to use:
Ingestion prints the book ID and page/chunk counts. Repeating an ID requires --force; replacing a book keeps other books searchable. No OCR or semantic search is implied.
From book knowledge to a system design
For example, you are designing a background job service and deciding how retries should work. Connect BookMCP to your agent, ingest the relevant books, and ask:
Help me design a background job service using the knowledge in my BookMCP library. Start with the library index. Find and read passages about retries, idempotency, and failure handling. Compare the design trade-offs using page citations, then propose an implementation plan and failure-case tests. Separate book-backed principles from your assumptions, and say where the available evidence is insufficient.
The workflow is requirements → relevant book passages → design decisions → implementation and tests. Ask your agent to explain why a principle applies to your workload, not just repeat it. BookMCP supplies searchable evidence; it does not train the model, choose an architecture automatically, or prove the resulting code correct.
Useful starting points include:
- Architecture reviews: check a proposed design against principles in your books, with cited trade-offs and open questions.
- Implementation planning: turn a supported design decision into interfaces, invariants, and tests before changing code.
- Design continuity: save a reviewed lesson with its source so a later agent session can revisit the decision.
Connect your agent
Register the installed binary once. The client starts BookMCP automatically when needed; you do not need to leave a terminal server running.
Codex
Start a new Codex session and ask:
Use BookMCP to show my library. Search tiny-test for citations, read the matching chunk, and explain its advice with a page citation.
For a desktop app whose PATH differs from your terminal, run bookmcp mcp-config codex and merge the printed stanza into your Codex config.toml. It uses absolute executable and data-directory paths. See the official Codex MCP setup.
Claude Code
Start a new Claude Code session, check /mcp, and use the same prompt above. See the official Claude Code MCP setup.
Claude Desktop and other clients
Run bookmcp mcp-config claude and merge its mcpServers.bookmcp entry into the client's MCP configuration. Do not overwrite your existing server entries. The output looks like this, with actual absolute paths filled in:
To share a particular library across clients, pass the same absolute --data-dir when ingesting and serving:
--data-dir takes precedence over BOOKMCP_HOME, then the platform app-data default. bookmcp doctor reports the paths in use and checks database integrity, indexed content, and managed PDF hashes.
Put the index in context, fetch the evidence on demand
BookMCP exposes a compact book_get_library_index tool and bookmcp://library resource: book IDs, titles, page/chunk counts, retrieval URIs, and saved-lesson counts. Full PDF text stays out of the initial index. Larger catalogs include a next_offset for pagination.
MCP clients decide whether to load resources or follow server instructions; registering a server does not automatically inject your books into every conversation. Add this short guidance to your project's AGENTS.md (Codex) or CLAUDE.md (Claude Code):
For a copyable snapshot, run bookmcp context (or --json). Refresh it after ingestion; --offset selects subsequent pages.
A typical evidence workflow is:
book_get_library_index— discover available books.book_search— search a focused term, optionally scoped to a book.book_get_chunk— read and verify the passage behind a result.book_get_context— fetch bounded neighboring chunks if needed.- Answer with citations; separate the author's claims from your interpretation.
Pages are 1-based physical PDF pages, which may differ from printed page labels. Search snippets are previews; fetch the source chunk before quoting. Definition/example tools use keyword heuristics, so inspect their evidence.
Keep lessons across sessions
Use the MCP capture_book_lesson prompt, or ask your agent:
Find a useful rule in this book and draft a lesson with a short title, an actionable explanation, and the supporting book and chunk IDs.
Review the draft, then save it locally:
Agents retrieve saved lessons through book_list_lessons or book://tiny-test/lessons. Saving validates the source chunk and records its citation and PDF hash. If the source changes, a lesson is marked stale so an agent can re-check it. Lessons are user-authored interpretations, not verified quotes or automatically learned model memory.
MCP stays read-only: it can help draft and retrieve lessons, while the CLI performs explicit saves and removals. A coding agent can run that CLI step when you authorize it through the agent's normal command permissions.
CLI reference
Run bookmcp <command> --help for options. Retrieval commands and lesson add/list support --json. See MCP tools, resource schemas, and prompts for the agent API.
What works, and current limits
- Text-based PDF extraction, title/author metadata, conservative chapter detection and top-level bookmarks.
- Deterministic chunks with page ranges and citations; a managed original PDF copy.
- Local multi-book BM25 search, capped retrieval, and live reads of newly ingested books and saved lessons.
- MCP tools, resources, argument-aware prompts, and stdio transport.
- Explicit errors for encryption, unreadable PDFs, and absent text layers.
OCR, layout reconstruction, table/figure extraction, local vectors, and HTTP transport are future work. Multi-column text and unusual font encodings may extract imperfectly; check the original PDF when exact layout matters. No DRM/password bypass is supported. See the roadmap.
BookMCP itself makes no hosted AI calls and has no telemetry. Retrieved passages enter the connected agent's context, so that agent's model provider and privacy settings still apply. Use a local model/client when you need an entirely offline assistant. Only ingest material you have the right to use. See security and data boundaries.
Troubleshooting
Development and contributing
Tests cover domain validation, ingestion/chunking, persistence, search, service behavior, and an actual MCP stdio subprocess that ingests, searches, reads citations, handles prompts, and retrieves lessons. CI runs the quality gates. Release automation builds archives and checksums when a version tag is pushed; publishing a release is a separate maintainer action.
Trying BookMCP for the first time? Share setup feedback, including what you tried and where you got stuck. Please leave private book text out of reports.
See architecture, contributing, and agent engineering rules. Useful contributions include legally shareable regression PDFs, clear reproduction steps, extraction fixes, and examples of how cited book knowledge improved a real task.
Built by Prem Bhatia with implementation assistance from OpenAI Codex.
Licensed under MIT or Apache-2.0, at your option.
Source: README.md at commit 1448126
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts