bookd
bookd
Локально-ориентированная читалка с ИИ-компаньоном: человек читает EPUB, MOBI, AZW3 и Markdown в браузере, а ИИ через MCP точно получает текущую книгу, главу, CFI, видимый текст и выделения, а также может переходить и подсвечивать в обратную сторону.

Ключевые границы
Рендеринг текста и обработка форматов не вызывают модель; токены ИИ используются только для обсуждения.
bookd— это постоянный HTTP + WebSocket сервис; MCP — тонкий клиент без состояния на stdio. Закрытие Claude Code не закрывает читалку.Файлы по умолчанию записываются только в
~/Books/bookd, мост состояния чтения записывается в.reading/state.jsonтекущего проекта.DRM не обрабатывается. PDF принимается только через явно настроенный локальный конвертер; файлы не загружаются в GUI MinerU и MinerU не устанавливается повторно.
Related MCP server: EPUB Reader MCP Server
Запуск из этого репозитория
Требуется Node.js 20 или новее.
npm install
npm run build
node dist/cli.js startОткройте http://127.0.0.1:4123. start запускает сервис в фоне; если сервис уже запущен, он переиспользуется. Для отладки можно использовать npm run dev, для запуска продакшен-сборки на переднем плане — npm start.
Импорт файлов или каталога Markdown:
node dist/cli.js import /path/to/book.epub
node dist/cli.js import /path/to/markdown-directoryПосле публикации в npm однострочный запуск выглядит так:
npx -y bookd startИнтеграция с Claude Code
В репозитории уже предоставлено:
.mcp.json: регистрирует stdio MCPbookd..claude/skills/bookd/SKILL.md: навык открытия книг, чтения контекста и обратных операций..claude/launch.json: конфигурация локального сервиса для панели Browser в Claude Code.
При первом использовании проектного .mcp.json Claude Code запросит подтверждение доверия. После сборки и запуска bookd можно сказать в Claude Code «Открой „Название книги“» или напрямую вызвать /bookd.
Можно сначала проверить конфигурацию с помощью claude mcp list; при первом запуске статус Pending approval — это ожидаемое состояние, его нужно одобрить один раз в сессии проекта Claude Code.
Для переиспользования в другом проекте: поместите integrations/claude-code/SKILL.md в .claude/skills/bookd/SKILL.md целевого проекта, а integrations/claude-code/mcp.example.json используйте как .mcp.json целевого проекта.
Инструменты MCP
Инструмент | Назначение |
| Текущая книга, глава, прогресс, CFI, видимый текст и выделения |
| Список локальной библиотеки |
| Переключение книги в открытой читалке |
| Чтение очищенного Markdown главы и чистого текста |
| Поиск по всей книге, возвращает главы, выдержки и переходимые CFI (дополняется после открытия) |
| Переход по CFI, главе или прогрессу 0–1 |
| Подсветка с возможностью заметки, двойная запись JSON / Markdown |
| Удаление одной подсветки или всех подсветок книги |
Вход MCP также можно запускать отдельно:
BOOKD_URL=http://127.0.0.1:4123 node dist/mcp.jsРасположение данных
~/Books/bookd/<书名>/
├── source.epub # 或 source.mobi / source.azw3 / source.md
├── extracted/ # 按逻辑章节缓存的 Markdown
├── chapters.json # 搜索与 MCP 的结构化章节缓存
├── annotations.json # 结构化批注
├── notes.md # 人可读、Git 友好的批注
└── meta.json
<当前项目>/.reading/state.jsonstate.json использует стабильные поля файлового моста:
{
"book": "随椋鸟飞行",
"chapter": "与椋鸟齐飞",
"chapter_index": 1,
"cfi": "epubcfi(/6/12!/4/2)",
"progress": 0.09,
"visible_text_head": "当前屏幕内的文字…",
"selection": null,
"updated_at": "2026-08-06T00:00:00.000Z"
}Конфигурация
Переменная окружения | Значение по умолчанию | Назначение |
|
| Адрес прослушивания HTTP |
|
| Порт HTTP / WebSocket |
|
| Каталог библиотеки |
|
| Каталог файлового моста |
|
| Цель пересылки MCP |
Проверка
npm run check
npm audit --omit=dev
npm pack --dry-runТесты покрывают импорт EPUB/Markdown, извлечение логических глав, полнотекстовый поиск, двойную запись аннотаций, атомарную запись состояния, HTTP, WebSocket, 8 инструментов MCP и реальный дочерний процесс stdio.
Регрессия на реальном Chromium также покрывает EPUB, MOBI6, AZW3/KF8 одной и той же китайской книги: исходные spine/section объединяются в логические главы по TOC внутри книги, сохраняя CFI начала глав. Папка Markdown импортируется по принципу «один файл — одна логическая глава», подзаголовки второго уровня внутри файла не разбивают оглавление.
Текст электронной книги рендерится foliate-js в iframe. bookd удаляет встроенные скрипты и обработчики событий и внедряет строгий CSP; Chromium всё равно выдаёт предупреждение песочницы для allow-scripts + allow-same-origin, которые foliate-js устанавливает для совместимости с событиями WebKit — это известное замечание реализации вышестоящего проекта, а не разрешение на выполнение скриптов книги.
Статус PDF / MinerU
Установленный локально /Applications/MinerU.app — это сетевой Electron GUI без CLI mineru, поэтому текущая сборка явно сообщает в /api/health, что PDF не включён. Адаптер PDF остаётся вне основных зависимостей; он должен включаться только при обнаружении явно настроенного пользователем локального CLI, чтобы избежать повторной установки Python/MinerU или случайной загрузки документов.
Этапные записи и технические проверки см. в PROGRESS.md.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- LeafOAuthapp.readwithleaf
AI assistant integration for Leaf — track books, log reading sessions, and manage your library.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Publish, update, list, and delete Markdown pages on Booklet directly from your AI assistant.
AI-native fiction platform. Any AI can register, read, search and co-author novels via MCP or REST.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to help users manage their reading experience by searching books, tracking reading progress, managing bookmarks, and generating personalized recommendations and summaries.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read and navigate EPUB files through 13 specialized tools for pagination, full-text search, metadata access, and footnote resolution. Supports session-based reading with table of contents navigation and chapter summaries.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to read and write local Apple Books library, collections, and annotations. Supports searching, exporting, and modifying books and highlights via MCP tools.MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with direct access to your ebook library, enabling listing books, reading chapters, and searching across books via the Model Context Protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/AK-Monkey/bookd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server