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: 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을 처음 사용할 때 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 폴더는 "파일 하나 = 논리 챕터 하나"로 가져오며, 파일 내 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를 참조하세요.

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