Skip to main content
Glama

bookd

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

bookd в действии

Ключевые границы

  • Рендеринг текста и обработка форматов не вызывают модель; токены ИИ используются только для обсуждения.

  • 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 MCP bookd.

  • .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

Инструмент

Назначение

get_reading_state

Текущая книга, глава, прогресс, CFI, видимый текст и выделения

list_books

Список локальной библиотеки

open_book

Переключение книги в открытой читалке

get_chapter

Чтение очищенного Markdown главы и чистого текста

search_book

Поиск по всей книге, возвращает главы, выдержки и переходимые CFI (дополняется после открытия)

goto

Переход по CFI, главе или прогрессу 0–1

highlight

Подсветка с возможностью заметки, двойная запись JSON / Markdown

clear_highlights

Удаление одной подсветки или всех подсветок книги

Вход 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.json

state.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"
}

Конфигурация

Переменная окружения

Значение по умолчанию

Назначение

BOOKD_HOST

127.0.0.1

Адрес прослушивания HTTP

BOOKD_PORT

4123

Порт HTTP / WebSocket

BOOKD_LIBRARY_DIR

~/Books/bookd

Каталог библиотеки

BOOKD_STATE_DIR

.reading

Каталог файлового моста

BOOKD_URL

http://127.0.0.1:4123

Цель пересылки 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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to help users manage their reading experience by searching books, tracking reading progress, managing bookmarks, and generating personalized recommendations and summaries.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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

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