/ ディレクトリ / プレイグラウンド / ebook-mcp
● コミュニティ onebirdrocks ⚡ 即起動

ebook-mcp

作者 onebirdrocks · onebirdrocks/ebook-mcp

ClaudeをEPUB・PDFライブラリに接続すると、メタデータ、目次、チャプター本文を構造化された形式で取得でき、正確な引用や要約が可能になります。

ebook-mcpは、PythonのEPUB/PDFライブラリをMCPツールとしてラップします。汎用的な「ファイル読み込み」とは異なり、目次やチャプターの区切りを公開するため、Claudeは500ページ全体をコンテキストに投入するのではなく、必要なチャプターだけを取得できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

ebook.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ebook": {
      "command": "uvx",
      "args": [
        "ebook-mcp"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ebook": {
      "command": "uvx",
      "args": [
        "ebook-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ebook": {
      "command": "uvx",
      "args": [
        "ebook-mcp"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ebook": {
      "command": "uvx",
      "args": [
        "ebook-mcp"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ebook",
      "command": "uvx",
      "args": [
        "ebook-mcp"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "ebook": {
      "command": {
        "path": "uvx",
        "args": [
          "ebook-mcp"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add ebook -- uvx ebook-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: ebook-mcp

うろ覚えの一節を見つけて引用する

👤 読書家・研究者 ⏱ ~5 min beginner

使うタイミング: 「あの本にXについて書いてあったはず…」——正確な引用が必要だけど、ページをめくる気力がないとき。

前提条件
  • ディスク上の書籍ファイル — EPUBまたはPDF
フロー
  1. 目次を読み込む
    ~/Books/deep-work.epub の目次を表示して。浅い仕事と深い仕事について論じているのはどのチャプター?✓ コピーしました
    → 目次+該当チャプターの推定
  2. チャプターを取得する
    第3章のテキストを取得して。「浅い仕事がデフォルト」に関する一節を見つけて。✓ コピーしました
    → 引用された一節

結果: 2分で引用可能な一節が手に入る。

注意点
  • スキャンされたPDFにはテキストレイヤーがない — 先にOCRを実行する

技術書のチャプターごとの要約を生成する

👤 積読リストの本から学びたいエンジニア ⏱ ~30 min intermediate

使うタイミング: その本を実際に読むかどうか判断したいとき、または読了後の復習が必要なとき。

フロー
  1. まず目次を確認
    book.pdf の目次を読み込んで。チャプタータイトルとおおよそのページ範囲を表示して。✓ コピーしました
    → アウトライン
  2. チャプターごとの要約
    各チャプターの内容を読み込み、3つの箇条書きで要約して。1つのMarkdownドキュメントとして出力して。✓ コピーしました
    → 書籍全体のダイジェスト

結果: 共有や見返し用の1〜2ページのブックダイジェスト。

注意点
  • 大きな本は全チャプターを一度に読み込むとトークン予算を超過する — 1チャプターずつ処理し、中間要約をディスクに書き出す
組み合わせ: filesystem

電子書籍ライブラリのメタデータを監査する

👤 Calibreユーザー、電子書籍コレクター ⏱ ~15 min beginner

使うタイミング: ライブラリに500冊の電子書籍があり、タイトルや著者のメタデータが欠落しているものを見つけたいとき。

フロー
  1. スキャン
    ~/Books 配下の各 .epub のメタデータを取得して。タイトルまたは著者が欠落しているか「Unknown」を含むものを一覧表示して。✓ コピーしました
    → メタデータ不備の一覧

結果: メタデータの衛生チェックが素早く完了。

組み合わせ: filesystem

組み合わせ

他のMCPと組み合わせて10倍の力を

ebook + local-rag

検索可能なライブラリインデックスを構築する

各書籍について、get_chapterでチャプターごとに取得し、書籍タイトルをソースとしてlocal-ragに取り込む。✓ コピーしました
ebook + notion

読書ジャーナルを自動作成する

読み終わったこの本の各チャプターを要約し、「Books Read」にNotionページを作成する。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
get_metadata path: str 書籍の最初の確認時に呼び出す free
get_toc path: str チャプター本文を取得する前に呼び出す free
get_chapter path, chapter_id or id_range 特定のチャプターを読み込むときに呼び出す free
get_pages path, from_page, to_page (PDF only) PDFのページ範囲を抽出するときに呼び出す free

コストと制限

運用コスト

APIクォータ
なし
呼び出しあたりのトークン
チャプターの長さに応じて2k〜30kトークン
金額
無料(Apache 2.0)
ヒント
必ず最初に目次を読み込むこと。書籍全体ではなく、チャプターを1つずつ読み込むこと。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: なし——ローカルファイルのみ
データ送信先: 書籍の内容はご利用のLLMプロバイダーに送信されます

トラブルシューティング

よくあるエラーと対処法

Unable to parse PDF

スキャン/画像のみのPDFにはテキストレイヤーがありません。先にocrmypdfを実行してください。

確認: pdftotext input.pdf - | head
EPUB chapter ID not found

IDは目次から正確に取得されます。先にget_tocを呼び出してください。

Large PDF makes get_chapter timeout

より小さいページ範囲でget_pagesを使用し、バッチ処理してください。

代替案

ebook-mcp 他との比較

代替案代わりに使う場面トレードオフ
Calibre + custom scriptCalibreとの完全な統合が必要な場合セットアップが多い。MCPラッパーなし
pdfplumber / pymupdf directly独自のツールを構築する場合MCPラッパーを自分で構築する必要がある

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る