apple-books-mcp
Apple Books MCP
Servidor del Protocolo de Contexto de Modelos (MCP) para Apple Books.
De un vistazo
Retoma donde lo dejaste — Claude puede ver el capítulo en el que estás y su texto, además de los subrayados recientes en el libro.
Amplía cualquier subrayado — obtén una explicación del párrafo circundante en contexto, con el ancla exacta que marcaste mostrada en
«...».Revisita un libro — extrae tus subrayados, agrúpalos por temas y deja que te los cite de vuelta.
Reflexiona sobre tu lectura — patrones entre libros, ideas recurrentes en tus subrayados, aquello que realmente te atrae.
https://github.com/user-attachments/assets/77a5a29b-bfd7-4275-a4af-8d6c51a4527e
¡Y mucho más!
Related MCP server: Co-Reading MCP
Herramientas disponibles
Colecciones
Herramienta | Descripción | Parámetros |
list_all_collections | Lista todas las colecciones | limit?: int |
get_collection_books | Obtiene todos los libros de una colección | collection_id: str |
describe_collection | Obtiene detalles de una colección | collection_id: str |
search_collections_by_title | Busca colecciones por título | title: str |
Libros
Herramienta | Descripción | Parámetros |
list_all_books | Lista todos los libros | limit?: int |
describe_book | Obtiene detalles de un libro en particular (metadatos, progreso, número de anotaciones, descripción) | book_id: str |
list_annotations | Obtiene todas las anotaciones de un libro (id + texto + capítulo por fila, ordenadas por capítulo) | book_id: int, limit?: int |
search_books_by_title | Busca libros por título | title: str |
get_books_by_genre | Obtiene libros por género (coincidencia de subcadena) | genre: str, limit?: int |
Estado de lectura
Herramienta | Descripción | Parámetros |
get_books_in_progress | Obtiene los libros que se están leyendo actualmente | limit?: int |
get_finished_books | Obtiene los libros que ya se han terminado | limit?: int |
get_unstarted_books | Obtiene los libros que aún no se han empezado | limit?: int |
get_recently_read_books | Obtiene los libros abiertos más recientemente | limit?: int (predeterminado: 10) |
Anotaciones
Herramienta | Descripción | Parámetros |
list_all_annotations | Explora todas las anotaciones agrupadas por libro, las más recientes primero | limit?: int |
recent_annotations | Obtiene las anotaciones más recientes (plano, con fecha + libro por fila) | limit?: int (predeterminado: 10) |
describe_annotation | Obtiene los detalles completos de una sola anotación | annotation_id: str |
get_annotation_context | Ventana de texto alrededor de un subrayado (el párrafo en el que se encuentra), con el subrayado marcado como | annotation_id: int, chars_before?: int (predeterminado: 500), chars_after?: int (predeterminado: 500) |
get_highlights_by_color | Subrayados de un color en particular, agrupados por libro | color: str, limit?: int |
search_notes | Busca notas de usuario (muestra el subrayado + la nota en línea) | note: str, limit?: int |
search_annotations | Busca entre subrayados + notas + texto circundante | text: str, limit?: int |
get_annotations_by_date_range | Anotaciones dentro de un rango de fechas (plano, con fecha + libro por fila) | after?: YYYY-MM-DD, before?: YYYY-MM-DD, limit?: int |
Estadísticas de la biblioteca
Herramienta | Descripción | Parámetros |
get_library_stats | Obtiene un resumen de la biblioteca con estadísticas de lectura | None |
Contenido del libro
Solo funciona para EPUBs sin DRM (libros importados, Project Gutenberg, Standard Ebooks, etc.). Las compras de la Apple Books Store están protegidas por FairPlay y devuelven un error claro. Los libros solo en iCloud devuelven una pista de "no descargado".
Herramienta | Descripción | Parámetros |
list_book_chapters | Tabla de contenido de un libro (títulos de capítulos, orden, anidamiento) | book_id: int |
get_chapter_content | Contenido en texto plano de un capítulo, con corte opcional de | book_id: int, chapter_id: str, offset?: int, max_chars?: int |
get_current_reading_position | El capítulo donde el usuario dejó de leer por última vez (mediante el marcador automático CFI de Apple Books) | book_id: int |
Recursos disponibles
Objetos de datos adjuntables accesibles desde el selector de recursos de Claude Desktop.
Recurso | URI | Descripción |
Lectura actual |
| El libro que estás leyendo ahora mismo: el libro en progreso abierto más recientemente, con metadatos, el capítulo donde lo dejaste más una vista previa de su texto (para EPUBs sin DRM) y anotaciones recientes. Adjúntalo a cualquier conversación para centrar a Claude en tu lectura actual. |
Prompts disponibles
Flujos de trabajo de un solo clic, accesibles desde el selector de prompts de Claude Desktop.
Prompt | Descripción | Argumentos |
weekly_digest | Resume lo que he leído y subrayado en la última semana | days?: int (predeterminado: 7) |
library_snapshot | Una reflexión sobre toda mi vida lectora | None |
revisit_book | Revisa tus notas y subrayados de un libro específico | book_title: str |
Instalación
Usando uv (recomendado)
uvx se puede usar para ejecutar directamente apple-books-mcp (sin instalarlo).
brew install uv # for macos
uvx apple-books-mcpUsando pip
pip install apple-books-mcpDespués de instalarlo, puedes ejecutar el servidor usando:
python -m apple_books_mcpUsando Docker
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:latestSolicitud de permiso en la primera ejecución (macOS)
En el primer uso, macOS preguntará si uvx (o python / docker, dependiendo de cómo lo hayas iniciado) puede "acceder a datos de otras aplicaciones". Haz clic en Permitir: el MCP lee el contenedor privado de Apple Books en ~/Library/Containers/com.apple.iBooksX/, que macOS trata como datos en espacio aislado de otra aplicación. El acceso es de solo lectura y está limitado a ese contenedor; el servidor se inicia correctamente de cualquier manera, pero sin permiso, todas las herramientas devuelven resultados vacíos.

Configuración
Configuración de Claude Desktop
Usando uvx (recomendado)
{
"mcpServers": {
"apple-books-mcp": {
"command": "uvx",
"args": [ "apple-books-mcp@latest" ]
}
}
}Usando python
{
"mcpServers": {
"apple-books-mcp": {
"command": "python",
"args": ["-m", "apple_books_mcp"]
}
}
}Usando Docker
{
"mcpServers": {
"apple-books-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "~/Library/Containers/com.apple.iBooksX/Data/Documents:/root/Library/Containers/com.apple.iBooksX/Data/Documents:ro",
"ghcr.io/vgnshiyer/apple-books-mcp:latest"
]
}
}
}Próximas funciones
[ ] Acceso al contenido de PDF (actualmente solo EPUB)
[ ] Contexto de anotación más completo mediante resolución de CFI → párrafo
Contribución
¡Gracias por considerar contribuir a este proyecto!
Desarrollo
Si clonaste este repositorio, puedes probarlo usando Claude Desktop con la siguiente configuración:
Usa uv venv para crear un entorno virtual e instalar las dependencias.
uv venv
uv syncDepuración
Con Claude Desktop
{
"mcpServers": {
"apple-books-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/apple-books-mcp/",
"run",
"apple_books_mcp",
"-v"
]
}
}
}Con inspector
npx @modelcontextprotocol/inspector uvx apple-books-mcpAbrir incidencias
Si encuentras un error, tienes una solicitud de función o quieres discutir algo relacionado con el proyecto, abre una incidencia en el repositorio de GitHub. Al abrir una incidencia, por favor proporciona:
Informes de errores: Describe el problema en detalle. Incluye pasos para reproducir el error si es posible, junto con cualquier mensaje de error o captura de pantalla.
Solicitudes de funciones: Explica claramente la nueva función que te gustaría ver añadida al proyecto. Proporciona contexto sobre por qué esta función sería beneficiosa.
Discusiones generales: Siéntete libre de iniciar discusiones sobre temas más amplios relacionados con el proyecto.
Contribuir
1️⃣ Haz un fork del repositorio de GitHub https://github.com/vgnshiyer/apple-books-mcp
2️⃣ Crea una nueva rama para tus cambios (git checkout -b feature/my-new-feature).
3️⃣ Realiza tus cambios y pruébalos exhaustivamente.
4️⃣ Envía tus cambios y abre un Pull Request a main.
Por favor, proporciona un título y una descripción claros de tus cambios.
Licencia
Apple Books MCP tiene la licencia Apache 2.0. Consulta el archivo LICENSE para obtener más detalles.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables 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
- AlicenseBqualityBmaintenanceA local MCP server that gives Claude a durable reading room for EPUB and plain text books, enabling chunk-by-chunk navigation, annotations, progress tracking, and shared margin cards.26103MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for processing raw book notes into structured, searchable knowledge using embeddings and semantic search.

Books Mandala MCPofficial
FlicenseNot gradedqualityCmaintenanceMCP server enabling AI assistants to search, browse, and discover books from Books Mandala's live catalog of 50,000+ titles.2
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
An MCP memory server. One memory your agents share — across models, devices and apps.
Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vgnshiyer/apple-books-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server