Co-Reading MCP
Локальная читальня для Claude: книга EPUB или TXT режется на фрагменты, а заметки на полях и прогресс сохраняются между сессиями.
- 119 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Сервер читает и пишет файлы книг, заметок и прогресса в выбранном каталоге, а инструмент `reading_delete_book` убирает книгу в корзину.
- Удаленный режим без HTTPS и токена открывает вашу библиотеку любому, кто знает адрес.
Установка
- Работает в
Ручная установка
{"mcpServers": {"co-reading": {"command": "node", "args": ["/absolute/path/to/co-reading-mcp/src/server.js"], "env": {"READING_MCP_DATA_DIR": "/absolute/path/to/co-reading-mcp/data"}}}}Фрагмент из README для Claude Desktop и Claude Code. Перед этим выполните `cp -R data.example data`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Сервер читает и пишет файлы книг, заметок и прогресса в выбранном каталоге, а инструмент `reading_delete_book` убирает книгу в корзину.
- Удаленный режим без HTTPS и токена открывает вашу библиотеку любому, кто знает адрес.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
MCP-сервер импортирует EPUB и обычный текст в устойчивые фрагменты и сохраняет границы глав. Claude читает книгу по частям с указателями `prevId` и `nextId`, продолжает с первого непрочитанного фрагмента и ищет по книге в кэше. Человек и Claude оставляют заметки на полях. Заметки читателя можно хранить приватно, а потом отправить Claude одной командой, и ответ ляжет под ними. Сервер отмечает прогресс чтения, показывает небольшие карточки, когда оба остановились на одном отрывке, и выдает короткий ритуал по окончании книги. В комплекте идет простой читатель в браузере по адресу `http://127.0.0.1:8787` и REST API.
Для кого. Читателям, которые разбирают книгу вместе с Claude и хотят, чтобы заметки и прогресс не терялись после закрытия чата.
Подходит, если
- Книгу читают по главам вместе с Claude, и разговор продолжают с того места, где остановились.
- Нужен поиск по тексту книги без загрузки файла в каждый новый чат.
- Собственные пометки сначала копятся, и только потом читатель решает показать их Claude.
- Книги загружают на удаленный сервер прямо из браузера, потому что вложения чата не доходят до его файловой системы.
Не подходит, если
- Нужна быстрая сводка книги одним запросом: сервер рассчитан на чтение по фрагментам.
- Сервер выставляют в публичный интернет без HTTPS и `MCP_AUTH_TOKEN`.
- Формат книги отличается от EPUB, TXT и Markdown.
Пример запроса к агенту
Продолжи чтение книги с того места, где мы остановились, и оставь заметку на полях к последнему абзацу.MCP
- Транспорт
- stdio, http, sse
- Авторизация
- не нужна
Переменные окружения
READING_MCP_DATA_DIRобязательная- Каталог с книгами, заметками и прогрессом.
MCP_AUTH_TOKENсекрет- Токен для удаленного сервера, обязателен вне localhost.
Ограничения
Нужны Node.js 18 или новее и Python 3.10 или новее для скриптов импорта. Сервер надо запускать самому, готового пакета в npm нет. Для удаленного доступа обязательны HTTPS и `MCP_AUTH_TOKEN`, иначе читалку и API видно всем. Токен в адресе `/?token=` попадает в первый запрос, поэтому на общих устройствах его не используют. Для красивых PNG-карточек отдельно ставят Chromium через Playwright, без него карточки рисуются в SVG. Картинки из EPUB сохраняются только с флагом `--keep-images`.
Как отключить. Уберите запись `co-reading` из конфигурации клиента и остановите процесс `node src/server.js`. Данные книг, заметок и прогресса лежат в каталоге `data/`, который удаляют отдельно.
Частые вопросы
Как импортировать книгу?
Для EPUB выполните `python3 scripts/import_epub.py ./book.epub --out ./data/books`, для текста — `python3 scripts/import_text.py ./book.txt --title "Название" --out ./data/books`. Загрузить файл можно и кнопкой в браузерной читалке.
Как включить удаленный доступ?
Запустите `READING_MCP_DATA_DIR=./data MCP_AUTH_TOKEN="секрет" npm run start:sse`. Адрес `/mcp` подходит для подключения Claude, `/sse` оставлен для старых клиентов.
Что происходит при удалении книги?
Книга исчезает из библиотеки, а ее папка и связанные данные уходят в `data/trash/books/`. Корзина очищается через 30 дней, параметр `READING_TRASH_RETENTION_DAYS=0` отключает очистку.
Какие инструменты есть у сервера?
Чтение и поиск (`reading_list_books`, `reading_read_chunk`, `reading_continue`, `reading_search_chunks`), импорт (`reading_import_book`), заметки (`reading_annotate_passage`, `reading_submit_user_notes`) и прогресс (`reading_mark_read`, `reading_get_progress`).
Как запустить читалку для человека?
Выполните `npm run reader` и откройте `http://127.0.0.1:8787`. Тот же процесс держит и MCP-сервер по stdio, если в конфигурации клиента указан `src/http.js`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыApple Books MCP — ваши книги и заметки в Claude
Apple Books MCP
MCP-сервер для Apple Books на macOS: агент видит текущую книгу, читает главы, выделения и заметки, ищет книги
MCP-сервер для вики BookStack: поиск и чтение по умолчанию, запись включается отдельно, права берутся из токена.
MCP-сервер для WeChat Reading: ИИ-агент получает вашу книжную полку, заметки, подчеркивания и популярные отзывы
Minutes
minutes
Локальный MCP-сервер для памяти о встречах: запись и транскрипция на устройстве в Markdown, поиск истории из Claude Code, Codex, Cursor и других MCP-клиентов
Официальный MCP-сервер Kibela ищет, читает и правит заметки, папки и комментарии вашей вики прямо из чата с ассистентом
DoodleNote MCP — заметки встреч для агентов
DoodleNote MCP
MCP-сервер только для чтения: Claude Code, Claude Desktop и Codex ищут по локальным встречам, заметкам и транскриптам DoodleNote
Коротко о README
Проект задуман как общая поверхность чтения для человека и Claude с привязанными заметками. Личные данные остаются в игнорируемом git каталоге `data/`, а в репозитории лежит только учебный пример.