Access your Apple Books library, annotations, reading progress, and highlights through Claude
{
"mcpServers": {
"apple-books-mcp": {
"args": [
"apple-books-mcp@latest"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Model Context Protocol (MCP) server for Apple Books.
Is it safe?
No known CVEs for apple-books-mcp.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 1 days ago. 45 stars.
Will it work with my client?
Transport: stdio, sse. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
Model Context Protocol (MCP) server for Apple Books.
https://github.com/user-attachments/assets/77a5a29b-bfd7-4275-a4af-8d6c51a4527e
And much more!
| Tool | Description | Parameters |
|---|---|---|
| list_all_collections | List all collections | limit?: int |
| get_collection_books | Get all books in a collection | collection_id: str |
| describe_collection | Get details of a collection | collection_id: str |
| search_collections_by_title | Search for collections by title | title: str |
| Tool | Description | Parameters |
|---|---|---|
| list_all_books | List all books | limit?: int |
| describe_book | Get details of a particular book | book_id: str |
| get_book_annotations | Get all annotations for a book | book_id: str |
| search_books_by_title | Search for books by title | title: str |
| get_books_by_genre | Get books by genre (substring match) | genre: str, limit?: int |
| Tool | Description | Parameters |
|---|---|---|
| get_books_in_progress | Get books currently being read | limit?: int |
| get_finished_books | Get books that have been finished | limit?: int |
| get_unstarted_books | Get books not yet started | limit?: int |
| get_recently_read_books | Get most recently opened books | limit?: int (default: 10) |
| Tool | Description | Parameters |
|---|---|---|
| list_all_annotations | List all annotations | limit?: int |
| recent_annotations | Get most recent annotations | limit?: int (default: 10) |
| describe_annotation | Get details of an annotation | annotation_id: str |
| get_highlights_by_color | Get all highlights by color | color: str, limit?: int |
| search_highlighted_text | Search highlights by text | text: str, limit?: int |
| search_notes | Search annotations by note | note: str, limit?: int |
| full_text_search | Search annotations by any text | text: str, limit?: int |
| get_annotations_by_date_range | Get annotations within a date range | after?: YYYY-MM-DD, before?: YYYY-MM-DD, limit?: int |
| Tool | Description | Parameters |
|---|---|---|
| get_library_stats | Get library summary with reading stats | None |
uvx can be used to directly run apple-books-mcp (without installing it).
brew install uv # for macos
uvx apple-books-mcp
pip install apple-books-mcp
After installing, you can run the server using:
python -m apple_books_mcp
docker run -v ~/Library/Containers/com.apple.iBooksX/Data/Documents:/root/Library/Containers/com.apple.iBooksX/Data/Documents:ro ghcr.io/vgnshiyer/apple-books-mcp:latest
... [View full README on GitHub](https://github.com/vgnshiyer/apple-books-mcp#readme)
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'apple-books-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
No known vulnerabilities.
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Dynamic problem-solving through sequential thought chains
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
The official Python SDK for Model Context Protocol servers and clients
An open-source AI agent that brings the power of Gemini directly into your terminal.
MCP Security Weekly
Get CVE alerts and security updates for io.github.vgnshiyer/apple-books-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.