Skip to main content
Glama
ni-c

calibreweb-mcp

by ni-c

calibreweb-mcp

CI npm version node license container docs

読み取り専用の Model Context Protocol サーバーで、Calibre-Web(および Calibre-Web Automated)向けのものです。Calibre-Web はセルフホスト型の電子書籍ライブラリ Web UI です。

Calibre-Web には REST API はありません。唯一安定した機械可読インターフェースは、電子書籍リーダーアプリ向けの OPDS カタログフィードです。このサーバーはそのフィードを扱います:Atom XML で HTTP Basic 認証を受け付け、構造化された書籍データを出力します。ライブラリを検索し、キュレーションされたビューや棚をブラウズし、フォーマットごとのダウンロードリンクをたどり、カバー画像をそのまま会話に取り込めます。書き込みは一切行いません。すべてのツールは OPDS ルートへの GET リクエストです。

デモ: MCP Inspector CLI を使用してツールの一覧表示、ライブラリの検索、統計の読み取りを行っています

📖 完全なドキュメント: calibreweb-mcp.ni-c.de

必要条件

  • Node.js 22 以上

  • Calibre-Web インスタンス(現在の linuxserver/calibre-web イメージに対して開発済み。Calibre-Web Automated も同様に動作します)

  • サーバー用の Calibre-Web ユーザー。OPDS フィードは通常の Web ログインで認証します。管理者アカウントではなく、表示とダウンロードの権限のみを持つ専用アカウントを使用してください。インスタンスが匿名ブラウジングを許可している場合、サーバーは認証情報なしでも実行できます。

Related MCP server: access-calibre

設定

変数

必須

説明

CALIBRE_WEB_URL

はい

インスタンスのルート URL(例: https://books.example.com)。/opds パスは自動的に追加されます。

CALIBRE_WEB_USERNAME

はい¹

Calibre-Web アカウントのユーザー名。

CALIBRE_WEB_PASSWORD

はい¹

そのアカウントのパスワード(Web ログインパスワード)。

CALIBRE_WEB_INSECURE_TLS

いいえ

true に設定すると自己署名証明書を受け入れます。設定されたホストのみにスコープされます。

¹ 匿名ブラウジングを許可するインスタンスの場合は、両方を未設定のままにします。片方だけ設定すると設定エラーになります。

Claude Code

claude mcp add calibreweb \
  -e CALIBRE_WEB_URL=https://books.example.com \
  -e CALIBRE_WEB_USERNAME=reader \
  -e CALIBRE_WEB_PASSWORD=... \
  -- npx calibreweb-mcp

Claude Desktop

{
  "mcpServers": {
    "calibreweb": {
      "command": "npx",
      "args": ["calibreweb-mcp"],
      "env": {
        "CALIBRE_WEB_URL": "https://books.example.com",
        "CALIBRE_WEB_USERNAME": "reader",
        "CALIBRE_WEB_PASSWORD": "..."
      }
    }
  }
}

Codex

[mcp_servers.calibreweb]
command = "npx"
args = ["calibreweb-mcp"]
env = { CALIBRE_WEB_URL = "https://books.example.com", CALIBRE_WEB_USERNAME = "reader", CALIBRE_WEB_PASSWORD = "..." }

ツール

すべてのツールは読み取り専用です(readOnlyHint: true)。

ツール

説明

search_books

タイトル、著者、シリーズ、出版社、タグで検索します。Calibre-Web は一致するすべてを一度に返します。結果はクライアント側で上限(limit、デフォルト 50)が設定され、実際の一致数が報告されます。

list_books

ビューごとに書籍一覧を表示します:new(デフォルト)、hotrateddiscover(ランダム)、readunreadall(オプションで先頭文字に絞り込み可能)。

list_shelves

公開棚と、設定されたユーザー自身の棚を表示します。

get_shelf_books

棚の本を棚の順序で取得します。

get_cover

本の表紙を、クライアントが表示できる画像として返します。

get_stats

書籍、著者、カテゴリ、シリーズの総数を表示します。

書籍エントリには、著者、タグ、シリーズ(インデックス付き)、評価、制限付きの要約、表紙 URL、フォーマットごとのダウンロード URL が含まれます。モデル自体が EPUB をダウンロードする理由はないため、人間が開ける準備済みのリンクです。

ページネーション

フィードはインスタンスの 1 ページあたりの書籍数 設定(デフォルト 60)でページネーションされます。ページサイズはクライアント側で制御できません。すべての一覧で、さらにページが存在する場合に pagination.nextOffset が返されます。次の呼び出しで offset として渡します。discover ビューはランダム選択であり、ページネーションされません。

意図的に範囲外

  • 書き込みなし。 OPDS フィードには書き込みがなく、このサーバーも追加しません。

  • ファイルダウンロードなし。 ツールはダウンロード URL を返しますが、電子書籍のペイロードは返しません。

  • ファセットブラウジングなし(著者/シリーズ/タグ/出版社/言語/フォーマットを個別のインデックスフィードとして)。search_books でそれらの検索をカバーします。ルートは存在し、実際のユースケースがあればツールを追加できます。

安全性

  • サーバーは設計上読み取り専用です。GET リクエストのみで、状態は一切持ちません。

  • 書籍メタデータは信頼できないサードパーティデータです。すべての結果にその旨が明記され、制御文字は削除され、XML エンティティ処理は無効化されています(DOCTYPE またはエンティティを宣言するドキュメントは完全に拒否されます)。

  • レスポンスは解析前に制限され(フィードは 8 MB、表紙は 1 MB)、さらにモデルに到達する前に制限されます(書籍ごと、レスポンスごとの予算)。

  • フィードの href は、設定されたオリジンに対して http(s) で解決される場合のみ通過します。悪意のあるフィードが javascript:file:、またはクロスオリジン URL を結果に埋め込むことはできません。

  • リダイレクトは拒否されるため、Basic 認証情報が別のホストに再生されることはありません。表紙は、実際の画像コンテンツタイプの場合のみ通過します。

  • パスワードは起動時にプロセス環境から消去され、URL はログや結果に表示される前に認証情報が編集されます。

コンテナ

docker run -i --rm \
  -e CALIBRE_WEB_URL=https://books.example.com \
  -e CALIBRE_WEB_USERNAME=reader \
  -e CALIBRE_WEB_PASSWORD=... \
  ghcr.io/ni-c/calibreweb-mcp

開発

npm install
npm test            # unit tests against a stubbed OPDS feed, no instance needed
npm run lint
npm run build

CONTRIBUTING.md を参照してください。

リリース

  1. CHANGELOG.md を更新し、package.json(+ ロックファイル)のバージョンを上げます。

  2. npm run lint && npm run test:coverage && npm run build

  3. リリースにタグを付けます:git tag -s vX.Y.Z -m "vX.Y.Z" && git push origin vX.Y.Z

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server to manage and organize a Calibre ebook library, enabling metadata editing, search, conversion, and more through AI assistants.
    17
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local stdio MCP server that enables AI tools to search a self-hosted Calibre library over SSH, supporting metadata queries, full-text search, and book details.
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that lets an LLM browse, search, and download books from OPDS catalogs (e.g., Project Gutenberg, Standard Ebooks) using tools for feed navigation, full-text search, and acquisition link downloads.
    4
    1
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • MCP server for Project Gutenberg — 75,000+ public-domain ebooks with full plain-text retrieval.

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

View all MCP Connectors

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/ni-c/calibreweb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server