MD Book Tools - A DI/SOA markdown book reader and writer with MCP server support
Project description
MD Book Tools
A markdown book reader and writer with DI/SOA architecture and MCP server support for Claude Code integration.
Features
- Multi-Format Support: mdBook, GitBook, Leanpub, Bookdown, and auto-detection
- YAML Frontmatter: Extract metadata (title, author, date, draft status)
- Interactive Reader: Terminal navigation with chapter jumping
- Book Writing: Initialize projects, add chapters, generate TOC
- MCP Server: Expose book operations as tools for AI assistants
Architecture
mdbook/
├── domain/ # Core entities (Book, Chapter, ChapterMetadata)
├── services/ # Business logic with interface protocols
│ ├── interfaces.py # IBookService, IReaderService, IWriterService, IStructureService
│ ├── book_service.py
│ ├── reader_service.py
│ ├── writer_service.py
│ └── structure_service.py
├── repositories/ # Data access layer
│ ├── interfaces.py # IFileRepository, IConfigRepository
│ ├── file_repository.py
│ └── config_repository.py
├── infrastructure/ # DI container and composition root
│ └── container.py # ServiceContainer with lazy singleton resolution
├── mcp/ # Model Context Protocol server
│ └── server.py # Exposes book operations as MCP tools
└── cli.py # Unified Click-based CLI
Installation
Using uv (recommended)
cd book-reader
uv pip install -e .
Using pip
cd book-reader
pip install -e .
This installs the single mdbook command with all subcommands.
Quick Start
# Read a book (pass book path as argument)
mdbook read /path/to/book
# Or use --book/-b global option
mdbook --book /path/to/book read
# Show book info
mdbook info /path/to/book
# Create a new book
mdbook init ./my-book -t "My Book Title" -a "Author Name"
# Add a chapter
mdbook new-chapter ./my-book -t "Introduction"
# Regenerate table of contents
mdbook toc ./my-book
# Start MCP server for a specific book
mdbook serve-mcp /path/to/book
# Auto-configure Claude Code MCP integration
mdbook setup /path/to/book
Command Reference
mdbook [OPTIONS] COMMAND [ARGS]
Commands:
read Read a markdown book interactively
info Show book information
init Initialize a new book project
new-chapter Add a new chapter to a book
toc Regenerate table of contents
serve-mcp Start MCP server for Claude Code
setup Auto-configure Claude Code MCP integration
Global Options:
-b, --book PATH Book directory (used by all commands)
--version Show version and exit
--help Show help message and exit
read
mdbook read [BOOK] [OPTIONS]
Arguments:
BOOK Book directory (or use global --book option)
Options:
-c, --chapter NUM Start at specific chapter
init
mdbook init PATH [OPTIONS]
Arguments:
PATH Directory to create book in
Options:
-t, --title TEXT Book title (required)
-a, --author TEXT Author name (required)
new-chapter
mdbook new-chapter [BOOK] [OPTIONS]
Arguments:
BOOK Book directory (or use global --book option)
Options:
-t, --title TEXT Chapter title (required)
-d, --draft Mark as draft
setup
mdbook setup [BOOK]
Arguments:
BOOK Book directory (or use global --book option)
Auto-configures Claude Code MCP integration by updating .mcp.json
in the project directory. Creates the file if it doesn't exist or
adds/updates the mdbook server configuration.
MCP Server Integration
The MCP server exposes book operations as tools for Claude Code and other AI assistants.
Available MCP Tools
| Tool | Description |
|---|---|
book_info |
Get book metadata and chapter list |
read_chapter |
Read chapter content by number |
list_chapters |
List all chapters with metadata |
create_book |
Create a new book project |
add_chapter |
Add a chapter to a book |
update_toc |
Regenerate SUMMARY.md |
Claude Code Configuration
Add to your .mcp.json:
{
"mcpServers": {
"mdbook": {
"command": "mdbook",
"args": ["serve-mcp"]
}
}
}
Or with uv:
{
"mcpServers": {
"mdbook": {
"command": "uv",
"args": ["run", "--directory", "/path/to/book-reader", "mdbook", "serve-mcp"]
}
}
}
Supported Book Formats
| Format | Detection File |
|---|---|
| mdBook/GitBook | SUMMARY.md |
| mdBook | book.toml |
| Leanpub | Book.txt |
| Bookdown | _bookdown.yml |
| Auto | Directory scan |
Requirements
- Python 3.10+
- click, rich, markdown, pyyaml, mcp
License
MIT License
Version History
- v1.0.0 - Initial public release with DI/SOA architecture, unified
mdbookCLI, MCP server integration, multi-book support with BOOK argument and--book/-bglobal option,setupcommand for Claude Code MCP auto-configuration, multi-format support (mdBook, GitBook, Leanpub, Bookdown), and YAML frontmatter parsing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file md_book-1.0.2.tar.gz.
File metadata
- Download URL: md_book-1.0.2.tar.gz
- Upload date:
- Size: 165.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20988b94f51cba095bb6d4bf12e506e38cf9e0e7b08e3edfba234954762c457e
|
|
| MD5 |
1d503486252fd880bd9922a0adfa7afd
|
|
| BLAKE2b-256 |
a6a8786afb6ee73de2ca87d033df76238f11c01acfb46f1dd721b1f35e72b545
|
File details
Details for the file md_book-1.0.2-py3-none-any.whl.
File metadata
- Download URL: md_book-1.0.2-py3-none-any.whl
- Upload date:
- Size: 34.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d95a47b635d6923a4cb82f18d6a0ca4fb7a9d3c933172287c0394a44b60dab07
|
|
| MD5 |
400774ff926e540bba00ab57a836ed5d
|
|
| BLAKE2b-256 |
6e03077f12669ebbdde7d72fda70ab92408ea217320c49fae3518f691a2f571b
|