Skip to main content
Glama
vgnshiyer

apple-books-mcp

by vgnshiyer

Apple Books MCP

Сервер протокола контекста модели (MCP) для Apple Books.

Website PyPI License: Apache 2.0 Buy Me A Coffee

Краткий обзор

  • Продолжайте с того места, где остановились — Claude видит главу, на которой вы остановились, и её текст, а также недавние выделения в книге.

  • Разверните любое выделение — получите объяснение окружающего абзаца в контексте, с точным якорем, который вы отметили, показанным в «...».

  • Вернитесь к книге — извлеките свои выделения, сгруппируйте их по темам и процитируйте их себе.

  • Размышляйте о своем чтении — закономерности в книгах, повторяющиеся идеи в ваших выделениях, то, к чему вас на самом деле тянет.

https://github.com/user-attachments/assets/77a5a29b-bfd7-4275-a4af-8d6c51a4527e

И многое другое!

Related MCP server: Co-Reading MCP

Доступные инструменты

Коллекции

Инструмент

Описание

Параметры

list_all_collections

Список всех коллекций

limit?: int

get_collection_books

Получить все книги в коллекции

collection_id: str

describe_collection

Получить детали коллекции

collection_id: str

search_collections_by_title

Поиск коллекций по названию

title: str

Книги

Инструмент

Описание

Параметры

list_all_books

Список всех книг

limit?: int

describe_book

Получить детали конкретной книги (метаданные, прогресс, количество аннотаций, описание)

book_id: str

list_annotations

Получить все аннотации для книги (id + текст + глава в строке, упорядочено по главам)

book_id: int, limit?: int

search_books_by_title

Поиск книг по названию

title: str

get_books_by_genre

Получить книги по жанру (поиск по подстроке)

genre: str, limit?: int

Статус чтения

Инструмент

Описание

Параметры

get_books_in_progress

Получить книги, которые сейчас читаются

limit?: int

get_finished_books

Получить прочитанные книги

limit?: int

get_unstarted_books

Получить книги, которые еще не начинали читать

limit?: int

get_recently_read_books

Получить недавно открытые книги

limit?: int (по умолчанию: 10)

Аннотации

Инструмент

Описание

Параметры

list_all_annotations

Просмотр всех аннотаций, сгруппированных по книгам, сначала новые

limit?: int

recent_annotations

Получить самые последние аннотации (плоский список, с датой + книга в строке)

limit?: int (по умолчанию: 10)

describe_annotation

Получить полные детали одной аннотации

annotation_id: str

get_annotation_context

Текстовое окно вокруг выделения (абзац, в котором оно находится), с выделением, отмеченным «...»

annotation_id: int, chars_before?: int (по умолчанию: 500), chars_after?: int (по умолчанию: 500)

get_highlights_by_color

Выделения определенного цвета, сгруппированные по книгам

color: str, limit?: int

search_notes

Поиск заметок пользователя (показывает выделение + заметку в строке)

note: str, limit?: int

search_annotations

Поиск по выделениям + заметкам + окружающему тексту

text: str, limit?: int

get_annotations_by_date_range

Аннотации в диапазоне дат (плоский список, с датой + книга в строке)

after?: YYYY-MM-DD, before?: YYYY-MM-DD, limit?: int

Статистика библиотеки

Инструмент

Описание

Параметры

get_library_stats

Получить сводку библиотеки со статистикой чтения

None

Содержимое книг

Работает только для EPUB без DRM (импортированные книги, Project Gutenberg, Standard Ebooks и т.д.). Покупки в Apple Books Store защищены FairPlay и возвращают понятную ошибку. Книги только из iCloud возвращают подсказку "не загружено".

Инструмент

Описание

Параметры

list_book_chapters

Оглавление книги (названия глав, порядок, вложенность)

book_id: int

get_chapter_content

Текстовое содержимое главы с опциональным срезом offset + max_chars

book_id: int, chapter_id: str, offset?: int, max_chars?: int

get_current_reading_position

Глава, на которой пользователь остановился (через автозакладку CFI Apple Books)

book_id: int

Доступные ресурсы

Прикрепляемые объекты данных, доступные из выбора ресурсов Claude Desktop.

Ресурс

URI

Описание

Сейчас читаю

apple-books://currently-reading

Книга, которую вы читаете прямо сейчас — последняя открытая книга в процессе чтения, с метаданными, главой, на которой вы остановились, плюс предварительный просмотр её текста (для EPUB без DRM) и недавними аннотациями. Прикрепите к любому разговору, чтобы сфокусировать Claude на текущем чтении.

Доступные подсказки (Prompts)

Рабочие процессы в один клик, доступные из выбора подсказок Claude Desktop.

Подсказка

Описание

Аргументы

weekly_digest

Резюме того, что я прочитал и выделил за последнюю неделю

days?: int (по умолчанию: 7)

library_snapshot

Размышление о всей моей читательской жизни

None

revisit_book

Пересмотрите свои заметки и выделения из конкретной книги

book_title: str

Установка

Использование uv (рекомендуется)

uvx можно использовать для прямого запуска apple-books-mcp (без установки).

brew install uv  # for macos
uvx apple-books-mcp

Использование pip

pip install apple-books-mcp

После установки вы можете запустить сервер с помощью:

python -m apple_books_mcp

Использование 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

Запрос разрешения при первом запуске (macOS)

При первом использовании macOS спросит, может ли uvx (или python / docker, в зависимости от того, как вы запустили) "получать доступ к данным из других приложений". Нажмите Разрешить — MCP читает частный контейнер Apple Books по адресу ~/Library/Containers/com.apple.iBooksX/, который macOS рассматривает как изолированные данные другого приложения. Доступ осуществляется только для чтения и ограничен этим контейнером; сервер в любом случае запускается успешно, но без разрешения все инструменты будут возвращать пустые результаты.

Запрос разрешения macOS: uvx хочет получить доступ к данным из других приложений. Не разрешать / Разрешить.

Конфигурация

Настройка Claude Desktop

Использование uvx (рекомендуется)

{
    "mcpServers": {
        "apple-books-mcp": {
            "command": "uvx",
            "args": [ "apple-books-mcp@latest" ]
        }
    }
}

Использование python

{
    "mcpServers": {
        "apple-books-mcp": {
            "command": "python",
            "args": ["-m", "apple_books_mcp"]
        }
    }
}

Использование 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"
            ]
        }
    }
}

Предстоящие функции

  • [ ] Доступ к содержимому PDF (сейчас только EPUB)

  • [ ] Более полный контекст аннотаций через разрешение CFI → абзац

Вклад

Спасибо, что рассматриваете возможность внесения вклада в этот проект!

Разработка

Если вы клонировали этот репозиторий, вы можете протестировать его с помощью Claude Desktop со следующей конфигурацией:

Используйте uv venv для создания виртуального окружения и установки зависимостей.

uv venv
uv sync

Отладка

С Claude Desktop

{
    "mcpServers": {
        "apple-books-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/apple-books-mcp/",
                "run",
                "apple_books_mcp",
                "-v"
            ]
        }
    }
}

С инспектором

npx @modelcontextprotocol/inspector uvx apple-books-mcp

Открытие проблем (Issues)

Если вы столкнулись с ошибкой, у вас есть запрос на функцию или вы хотите обсудить что-то, связанное с проектом, пожалуйста, откройте issue в репозитории GitHub. При открытии issue, пожалуйста, предоставьте:

Отчеты об ошибках: Опишите проблему подробно. Включите шаги для воспроизведения ошибки, если это возможно, вместе с любыми сообщениями об ошибках или скриншотами.

Запросы функций: Четко объясните новую функцию, которую вы хотели бы видеть добавленной в проект. Предоставьте контекст, почему эта функция была бы полезной.

Общие обсуждения: Не стесняйтесь начинать обсуждения на более широкие темы, связанные с проектом.

Внесение вклада

1️⃣ Сделайте форк репозитория GitHub https://github.com/vgnshiyer/apple-books-mcp
2️⃣ Создайте новую ветку для ваших изменений (git checkout -b feature/my-new-feature). 3️⃣ Внесите изменения и тщательно протестируйте их. 4️⃣ Отправьте изменения и откройте Pull Request в main.

Пожалуйста, предоставьте четкое название и описание ваших изменений.

Лицензия

Apple Books MCP лицензирован под лицензией Apache 2.0. Подробности см. в файле LICENSE.

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