Apple Books MCP: your books and highlights in Claude
Apple Books MCP
An MCP server for Apple Books on macOS: the agent sees your current book, reads chapters, highlights and notes, finds books
- 64 ★ on the repository
- Last commit
Extended access
Why this level
- The agent reads your highlights, notes and full chapter texts, which go to the model provider
- With the --enable-writes flag the server edits the Apple Books database directly, and collections may revert from iCloud
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/apple-books-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent reads your highlights, notes and full chapter texts, which go to the model provider
- With the --enable-writes flag the server edits the Apple Books database directly, and collections may revert from iCloud
This is third-party code. Review the repository files before installing.
What it does
The server reads the local Apple Books library and gives it to the agent. get_current_reading_position returns the chapter you left off at, and get_chapter_content returns chapter text sliced with offset and max_chars. list_book_chapters shows the table of contents. Search matches title and author ignoring case, accents and curly quotes. For highlights there are list_annotations, search_notes, search_annotations, get_highlights_by_color and get_annotation_context, the last returning the paragraph around a highlight with the marked anchor. Reading status comes from get_books_in_progress, get_finished_books, get_unstarted_books and get_recently_read_books, and get_library_stats computes a summary. Collection editing is off by default and enabled with --enable-writes: before writing, the server makes a backup of the database and refuses to work while the Books app is open. It marks text from books as untrusted data.
Who it is for. Readers on a Mac who keep books and highlights in Apple Books and want to discuss what they read with an agent.
Good fit when
- You want to recall what the chapter you stopped at was about and get a short summary
- Highlights from a book should be collected and grouped by theme
- You want to find all notes with a word over a chosen period
- You need a library overview: how many books are finished, started and unopened
Not a fit when
- You need Windows, Linux or iPhone: the server reads only the local Apple Books database on macOS
- The book is not downloaded to this Mac: chapter text is unavailable and an error comes back
- You need books from other readers such as Kindle: the server works only with Apple Books
Example request
Show which chapter I stopped at in the current book, summarize it and group my highlights from this book by theme.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
APPLE_BOOKS_MCP_ENABLE_WRITES- The value 1 enables collection editing
APPLE_BOOKS_DATA_DIR- The Apple Books Documents folder
Limitations
It works only on macOS, and Apple Books must be opened at least once to create the library. Python 3.10 or newer is needed, and the first uvx run downloads about 14 MB and can take a minute, close to Claude startup patience, so run uvx apple-books-mcp --version in a terminal once beforehand. Books has no automation interface for collections, so write mode edits the database directly. With iCloud sync on, collection edits may not reach other devices and can be reverted. The Docker variant is marked deprecated.
How to disable. Run claude mcp remove apple-books-mcp or delete the .mcpb extension in Claude Desktop. Database backups live in ~/.py_apple_books/backups and can be erased by hand.
FAQ
What system is required?
macOS with Apple Books opened at least once and Python 3.10 or newer. Through uvx and the Claude Desktop extension the needed Python comes automatically.
Can the agent change my library?
No, until you add the --enable-writes flag. Then create_collection, rename_collection, delete_collection and adding books become available, but every write makes a database copy and refuses while Books is open.
How do I find a book?
Through search_books by title or author: search ignores case, accents and quotes and the result contains a link that opens the book in Apple Books. Pass the ID from the result row to other tools.
How do I get the text of the current chapter?
Call get_chapter_content passing current in the chapter_id parameter. For large chapters use offset and max_chars to read in parts.
Where does the server get data?
From local Apple Books databases, the folder with BKLibrary and AEAnnotation. You can override the folder with APPLE_BOOKS_DATA_DIR, and the query timeout is set by APPLE_BOOKS_QUERY_TIMEOUT.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for Apple Notes on Mac: the agent reads, searches, creates, edits and exports notes and manages folders and tags.
A local reading room for Claude: an EPUB or TXT book is split into chunks, and margin notes and progress persist between sessions.
An MCP server for WeChat Reading: your AI agent gets your bookshelf, notes, highlights and top reviews
An MCP server for a BookStack wiki: read and search by default, writes enabled separately, rights taken from the token.
An MCP server for Apple Mail on macOS: search, reading, drafts, rules and attachments, with confirmation for dangerous steps.
A local MCP server for Mac: Claude, Codex and ChatGPT work in apps, files, terminal and browser under your permissions
README in short
The README lists scenarios, tools by group with parameters, rules for results and the guarded write mode. Installation through uv, pip and the .mcpb extension, Claude Desktop and Claude Code setup, environment variables and common problems are described separately.