Skip to main content
Glama
vgnshiyer

apple-books-mcp

by vgnshiyer

Apple Books MCP

Servidor del Protocolo de Contexto de Modelos (MCP) para Apple Books.

Website PyPI License: Apache 2.0 Buy Me A Coffee

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 offset + max_chars

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

apple-books://currently-reading

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-mcp

Usando pip

pip install apple-books-mcp

Después de instalarlo, puedes ejecutar el servidor usando:

python -m apple_books_mcp

Usando 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:latest

Solicitud 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.

Solicitud de permiso de macOS: uvx desea acceder a datos de otras aplicaciones. No permitir / Permitir.

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 sync

Depuració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-mcp

Abrir 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.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
2dResponse time
6dRelease cycle
15Releases (12mo)
Commit activity
Issues opened vs closed

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

View all related MCP servers

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

View all MCP Connectors

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/vgnshiyer/apple-books-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server