Skip to main content
Glama
ni-c

calibreweb-mcp

by ni-c

calibreweb-mcp

CI npm version node license container docs

Calibre-Web(및 Calibre-Web Automated)용 읽기 전용 Model Context Protocol 서버입니다. Calibre-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 피드는 일반 웹 로그인으로 인증합니다. 관리자 계정이 아닌 보기 및 다운로드 권한만 있는 전용 계정을 사용하세요. 인스턴스에서 익명 탐색을 허용하는 경우 서버는 자격 증명 없이도 실행할 수 있습니다.

Related MCP server: access-calibre

설정

변수

필수

설명

CALIBRE_WEB_URL

인스턴스의 루트 URL (예: https://books.example.com). /opds 경로가 자동으로 추가됩니다.

CALIBRE_WEB_USERNAME

예¹

Calibre-Web 계정의 사용자 이름.

CALIBRE_WEB_PASSWORD

예¹

해당 계정의 비밀번호 (웹 로그인 비밀번호).

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(기본값), hot, rated, discover(무작위), read, unread, 또는 all(선택적으로 첫 글자로 좁힐 수 있음).

list_shelves

공개 선반과 설정된 사용자의 개인 선반을 나열합니다.

get_shelf_books

선반에 있는 책들을 선반 순서대로 반환합니다.

get_cover

책의 표지를 이미지로 반환하여 클라이언트가 표시할 수 있습니다.

get_stats

총 책, 저자, 카테고리, 시리즈 수를 반환합니다.

책 항목에는 저자, 태그, 시리즈(인덱스 포함), 평점, 요약(길이 제한), 표지 URL 및 형식별 다운로드 URL이 포함됩니다. 모델 자체가 EPUB를 다운로드할 이유가 없으므로 사람이 열 수 있는 바로 사용 가능한 링크입니다.

페이지네이션

피드는 인스턴스의 페이지당 책 수 설정(기본값 60)에 따라 페이지가 매겨집니다. 페이지 크기는 클라이언트가 제어할 수 없습니다. 모든 목록은 더 많은 페이지가 있을 때 pagination.nextOffset을 반환합니다. 다음 호출에서 offset으로 전달하세요. discover 보기는 무작위 선택이며 페이지가 매겨지지 않습니다.

의도적으로 범위에서 제외된 사항

  • 쓰기 작업 없음. OPDS 피드에는 쓰기 작업이 없으며, 이 서버도 추가하지 않습니다.

  • 파일 다운로드 없음. 도구는 다운로드 URL을 반환하며, 전자책 페이로드는 반환하지 않습니다.

  • 패싯 탐색 없음 (저자/시리즈/태그/출판사/언어/형식을 자체 인덱스 피드로 제공). search_books가 해당 조회를 처리합니다. 해당 경로는 존재하며 실제 사용 사례가 있을 경우 도구를 추가할 수 있습니다.

안전성

  • 서버는 구조적으로 읽기 전용입니다. GET 요청만 수행하며, 상태를 저장하지 않습니다.

  • 책 메타데이터는 신뢰할 수 없는 타사 데이터입니다. 모든 결과에 이를 명시하고, 제어 문자를 제거하며, XML 엔터티 처리를 비활성화합니다(DOCTYPE 또는 엔터티를 선언하는 문서는 완전히 거부).

  • 응답은 구문 분석 전에 제한되고(8MB 피드, 1MB 표지), 모델에 도달하기 전에 다시 제한됩니다(책당 및 응답당 예산).

  • 피드 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(+ lockfile)에서 버전을 올립니다.

  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