Skip to main content
Glama

bookd

ローカルファーストのAI伴読リーダー:人間はブラウザでEPUB、MOBI、AZW3、Markdownを読み、AIはMCPを通じて現在の書籍、章、CFI、表示中のテキスト、選択範囲を正確に取得でき、逆方向のジャンプやハイライトも可能です。

bookd リーダーの実況

コア境界

  • 本文のレンダリングとフォーマット処理はモデルを呼び出さない。AIトークンは議論のみに使用される。

  • bookd は常駐のHTTP + WebSocketサービスであり、MCPはステートレスなstdioシンクライアントである。Claude Codeを閉じてもリーダーは閉じない。

  • ファイルはデフォルトで ~/Books/bookd にのみ書き込まれ、読書状態ブリッジは現在のプロジェクトの .reading/state.json に書き込まれる。

  • DRMは処理しない。PDFは明示的なローカルコンバーターのみ受け付ける。現在、ファイルをMinerU GUIにアップロードしたり、MinerUを再インストールしたりすることはない。

Related MCP server: mcp-ebook-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 を初めて使用する場合、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フォルダは「1ファイル=1論理章」としてインポートされ、ファイル内の2次見出しによって目次が分割されることはありません。

電子書籍の本文はfoliate-jsによってiframe内でレンダリングされます。bookdはインラインスクリプトとイベントハンドラを削除し、厳格なCSPを注入します。Chromiumは、foliate-jsがWebKitイベント互換のために設定した allow-scripts + allow-same-origin に対してサンドボックス警告を表示しますが、これは既知の上流実装のヒントであり、書籍内のスクリプトの実行が許可されていることを意味するものではありません。

PDF / MinerU の状態

このマシンにある /Applications/MinerU.app はネットワーク接続型のElectron GUIであり、mineru CLIを提供していないため、現在のビルドは /api/health でPDFが無効であることを明示的に報告します。PDFアダプタはコア依存関係の外に維持されます。ユーザーが明示的に設定したローカルCLIが検出された場合のみ有効化され、Python/MinerUの重複インストールやドキュメントの意図しないアップロードを回避します。

段階的な記録と技術検証は PROGRESS.md を参照してください。

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
    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
  • A
    license
    A
    quality
    C
    maintenance
    Enables local EPUB reading with AI agents, supporting annotations, parallel editions, and MCP tools.
    7
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search and read locally stored e-reader highlights, notes, bookmarks, and book lists from a synced database. Provides tools for full-text search, per-book notes, recent items, random highlights, and sync status.
    MIT