vgnshiyer avatar

Apple Books

vgnshiyer/apple-books-mcp

Hooks directly into Apple Books' SQLite container to expose your library, highlights, and reading state. You get 30+ tools spanning collections, annotations, genre searches, and reading status filters, plus context extraction that shows the paragraph around any highlight. The standout is the "currently reading" resource: Claude sees your active book, the exact chapter you left off on (including its text for non-DRM EPUBs), and recent highlights in one attachment. Prompts like weekly digest and library snapshot turn annotations into summaries. Needs macOS permission to read `~/Library/Containers/com.apple.iBooksX/` on first run. Reach for this when you want Claude to reflect on your reading or pull exact quotes with surrounding context.

GitHub stars
64
tools
31
transport
STDIO
env vars
4
last updated
Oct 1, 2026

Tools

31 tools

Public tool metadata for what this MCP can expose to an agent.

list_all_collectionsList all collections

List all collections

No parameter schema in public metadata yet.

get_collection_booksGet all books in a collection

Get all books in a collection

No parameter schema in public metadata yet.

describe_collectionGet details of a collection

Get details of a collection

No parameter schema in public metadata yet.

search_collections_by_titleSearch for collections by title

Search for collections by title

No parameter schema in public metadata yet.

create_collectionCreate a new collection

Create a new collection

No parameter schema in public metadata yet.

rename_collectionRename a user-created collection

Rename a user-created collection

No parameter schema in public metadata yet.

delete_collectionDelete a user-created collection (books untouched)

Delete a user-created collection (books untouched)

No parameter schema in public metadata yet.

add_book_to_collectionAdd a book to a collection (idempotent)

Add a book to a collection (idempotent)

No parameter schema in public metadata yet.

remove_book_from_collectionRemove a book from a collection (idempotent)

Remove a book from a collection (idempotent)

No parameter schema in public metadata yet.

list_all_booksList all books

List all books

No parameter schema in public metadata yet.

search_booksFind books whose title or author contains the query, ignoring case, accents and quote/dash style

Find books whose title or author contains the query, ignoring case, accents and quote/dash style

No parameter schema in public metadata yet.

search_books_by_titleSearch for books by title (same matching, titles only)

Search for books by title (same matching, titles only)

No parameter schema in public metadata yet.

describe_bookGet details of a particular book (metadata, progress, annotation count, description), whether its text is readable (see below) and an "Open in Books" link

Get details of a particular book (metadata, progress, annotation count, description), whether its text is readable (see below) and an "Open in Books" link

No parameter schema in public metadata yet.

list_annotationsAnnotations for a book in reading order (id + text + chapter per row, with your notes)

Annotations for a book in reading order (id + text + chapter per row, with your notes)

No parameter schema in public metadata yet.

get_books_by_genreGet books by genre (substring match)

Get books by genre (substring match)

No parameter schema in public metadata yet.

get_books_in_progressGet books currently being read

Get books currently being read

No parameter schema in public metadata yet.

get_finished_booksGet books that have been finished

Get books that have been finished

No parameter schema in public metadata yet.

get_unstarted_booksGet books not yet started

Get books not yet started

No parameter schema in public metadata yet.

get_recently_read_booksGet the most recently read books

Get the most recently read books

No parameter schema in public metadata yet.

list_all_annotationsBrowse every annotation grouped by book, newest first, with your notes

Browse every annotation grouped by book, newest first, with your notes

No parameter schema in public metadata yet.

recent_annotationsGet most recent annotations (flat, with date + book per row)

Get most recent annotations (flat, with date + book per row)

No parameter schema in public metadata yet.

describe_annotationGet full details of a single annotation, with the book's "Open in Books" link

Get full details of a single annotation, with the book's "Open in Books" link

No parameter schema in public metadata yet.

get_annotation_contextText window around a highlight (the paragraph it's in), with the highlight marked `«...»`

Text window around a highlight (the paragraph it's in), with the highlight marked `«...»`

No parameter schema in public metadata yet.

get_highlights_by_colorHighlights of a particular color, grouped by book

Highlights of a particular color, grouped by book

No parameter schema in public metadata yet.

search_notesSearch user notes (shows highlight + note inline)

Search user notes (shows highlight + note inline)

No parameter schema in public metadata yet.

search_annotationsSearch across highlights + notes + surrounding text (shows notes inline)

Search across highlights + notes + surrounding text (shows notes inline)

No parameter schema in public metadata yet.

get_annotations_by_date_rangeAnnotations within a date range, inclusive of the `before` day, local time (flat, with date + book per row)

Annotations within a date range, inclusive of the `before` day, local time (flat, with date + book per row)

No parameter schema in public metadata yet.

get_library_statsGet library summary with reading stats

Get library summary with reading stats

No parameter schema in public metadata yet.

list_book_chaptersTable of contents for a book (chapter titles, order, nesting)

Table of contents for a book (chapter titles, order, nesting)

No parameter schema in public metadata yet.

get_chapter_contentPlain-text content of a chapter, with optional `offset` + `max_chars` slicing. `chapter_id="current"` (the default) reads the chapter you're on in Apple Books

Plain-text content of a chapter, with optional `offset` + `max_chars` slicing. `chapter_id="current"` (the default) reads the chapter you're on in Apple Books

No parameter schema in public metadata yet.

get_current_reading_positionThe chapter the user last left off reading (via Apple Books' auto-bookmark CFI), with an "Open in Books" link

The chapter the user last left off reading (via Apple Books' auto-bookmark CFI), with an "Open in Books" link

No parameter schema in public metadata yet.

Sponsors

Configuration

APPLE_BOOKS_MCP_ENABLE_WRITESdefault: false

Allow the collection write tools (create, rename and delete collections; add and remove books). Writes refuse to run while Books is open and take a backup first.

APPLE_BOOKS_DATA_DIR

Folder holding the Apple Books stores (BKLibrary and AEAnnotation), if not ~/Library/Containers/com.apple.iBooksX/Data/Documents.

APPLE_BOOKS_MCP_THREADSdefault: 8

How many tool calls may run at once (default 8; 0 runs them one at a time on the event loop).

APPLE_BOOKS_QUERY_TIMEOUTdefault: 30

Seconds a library query may run before it is stopped (default 30; 0 for no limit).

Readme

Apple Books MCP

Model Context Protocol (MCP) server for Apple Books.

Website PyPI License: Apache 2.0 Buy Me A Coffee

At a glance


View the full README on GitHub

Details

Repository
github.com/vgnshiyer/apple-books-mcp
Website
vgnshiyer.me/AppleBooksMcp
Package
apple-books-mcp
Transport
STDIO
Registry
MCP registry, active