# Apple Books

Сервер открывает ИИ-ассистенту доступ к библиотеке Apple Books, цитатам, заметкам и статусу чтения на macOS.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 63
- Автор: vgnshiyer
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/vgnshiyer/apple-books-mcp
- Обновлён: 2026-10-16
- HTML: https://affpapa.org/nevibecode/mcp/apple-books

## Что делает

Сервер подключается напрямую к локальной базе Apple Books на macOS. Он позволяет искать книги по авторам или названиям, проверять статус чтения и извлекать цитаты вместе с окружающим контекстом. Фрагменты текста из книг сервер возвращает внутри тегов `<book_text>`, чтобы ассистент не воспринимал содержимое как инструкции.

Запись по умолчанию отключена. Для создания полок и редактирования коллекций нужен флаг `--enable-writes`. Сервер блокирует любые изменения базы, если приложение «Книги» открыто прямо сейчас, а перед каждой записью сохраняет резервную копию в папку `~/.py_apple_books/backups/`. Если на Mac включена синхронизация с iCloud, изменённые напрямую коллекции могут перезаписаться облаком при следующем обновлении.

Инструменты чтения глав работают только с локально сохранёнными файлами в формате EPUB. Книги с DRM-защитой или файлы, оставшиеся исключительно в iCloud, прочитать не получится.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `APPLE_BOOKS_MCP_ENABLE_WRITES`, `APPLE_BOOKS_DATA_DIR`, `APPLE_BOOKS_MCP_THREADS`, `APPLE_BOOKS_QUERY_TIMEOUT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env APPLE_BOOKS_MCP_ENABLE_WRITES=<APPLE_BOOKS_MCP_ENABLE_WRITES> --env APPLE_BOOKS_DATA_DIR=<APPLE_BOOKS_DATA_DIR> --env APPLE_BOOKS_MCP_THREADS=<APPLE_BOOKS_MCP_THREADS> --env APPLE_BOOKS_QUERY_TIMEOUT=<APPLE_BOOKS_QUERY_TIMEOUT> --transport stdio apple-books -- uvx apple-books-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-books-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add apple-books --env APPLE_BOOKS_MCP_ENABLE_WRITES=<APPLE_BOOKS_MCP_ENABLE_WRITES> --env APPLE_BOOKS_DATA_DIR=<APPLE_BOOKS_DATA_DIR> --env APPLE_BOOKS_MCP_THREADS=<APPLE_BOOKS_MCP_THREADS> --env APPLE_BOOKS_QUERY_TIMEOUT=<APPLE_BOOKS_QUERY_TIMEOUT> -- uvx apple-books-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-books-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "apple-books": {
            "command": "uvx",
            "args": [
                "apple-books-mcp"
            ],
            "env": {
                "APPLE_BOOKS_MCP_ENABLE_WRITES": "<APPLE_BOOKS_MCP_ENABLE_WRITES>",
                "APPLE_BOOKS_DATA_DIR": "<APPLE_BOOKS_DATA_DIR>",
                "APPLE_BOOKS_MCP_THREADS": "<APPLE_BOOKS_MCP_THREADS>",
                "APPLE_BOOKS_QUERY_TIMEOUT": "<APPLE_BOOKS_QUERY_TIMEOUT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-books-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "apple-books": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "apple-books-mcp"
            ],
            "env": {
                "APPLE_BOOKS_MCP_ENABLE_WRITES": "<APPLE_BOOKS_MCP_ENABLE_WRITES>",
                "APPLE_BOOKS_DATA_DIR": "<APPLE_BOOKS_DATA_DIR>",
                "APPLE_BOOKS_MCP_THREADS": "<APPLE_BOOKS_MCP_THREADS>",
                "APPLE_BOOKS_QUERY_TIMEOUT": "<APPLE_BOOKS_QUERY_TIMEOUT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-books-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e APPLE_BOOKS_MCP_ENABLE_WRITES=<APPLE_BOOKS_MCP_ENABLE_WRITES> -e APPLE_BOOKS_DATA_DIR=<APPLE_BOOKS_DATA_DIR> -e APPLE_BOOKS_MCP_THREADS=<APPLE_BOOKS_MCP_THREADS> -e APPLE_BOOKS_QUERY_TIMEOUT=<APPLE_BOOKS_QUERY_TIMEOUT> apple-books uvx apple-books-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-books-mcp <команда>

## Когда брать
- найти цитаты и заметки по названию или идентификатору книги
- проверить списки начатых, прочитанных или отложенных книг
- вытащить фрагмент главы вокруг сделанной заметки
- создать пользовательскую коллекцию через флаг `--enable-writes`

## Примеры запросов агенту
- Какие книги я сейчас читаю в Apple Books?
- Найди все мои заметки и цитаты из книги с идентификатором 175.
- Покажи последние завершённые книги из моей библиотеки.

## Похожие
- [Reactive Resume](https://affpapa.org/nevibecode/mcp/reactive-resume.md) — MCP-сервер · ★ 44874
- [screenpipe](https://affpapa.org/nevibecode/mcp/screenpipe.md) — MCP-сервер · ★ 22053
- [Inbox Zero](https://affpapa.org/nevibecode/mcp/inbox-zero.md) — MCP-сервер · ★ 12791
- [kaneo](https://affpapa.org/nevibecode/mcp/kaneo.md) — MCP-сервер · ★ 9602
- [Mindwtr](https://affpapa.org/nevibecode/mcp/mindwtr.md) — MCP-сервер · ★ 2318

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
