Живой доступ к LiveLib для ИИ-агентов — MCP-сервер + скилл в одном репозитории.
Железная обложка сайта. Скрытая керамика API, живая и тёплая.
Сайты, к которым мы привыкли, стареют. LiveLib — не исключение: старый интерфейс, навязчивая и низкокачественная реклама, за которую не отвечают владельцы сайта, UI, который сопротивляется вместо того, чтобы помогать.
При этом главная ценность LiveLib — читатели: русскоязычное книжное сообщество со списками книг, цита и рецензий.
Этот проект делает простую вещь: ИИ-агент говорит с LiveLib напрямую, через JSON API — мимо legacy-интерфейса и рекламы. Ты просто разговариваешь со своим агентом («добавь цитату из главы», «что я читал в прошлом году», «опубликуй рецензию на эту книгу»), а он делает остальное.
Возможно, это один из ответов на вопрос, куда движется книжная онлайн-среда: не миграция на другую платформу, а живой API-слой поверх сообщества читателей. MCP-подписка на любимый сайт — потенциальное спасение книжного бизнеса: читатель платит за чистый доступ, а не смотрит рекламу.
Чтение — анонимно, без всякой регистрации:
| Инструмент | Что возвращает |
|---|---|
get_edition(id) |
карточка издания: название, авторы, ISBN, год, обложка |
get_shelf(uid, shelf) |
полка читателя (reads/readings/unreads/wants) с дедупликацией |
get_edition_quotes(id) |
цитаты издания |
get_quotes(uid) |
все цитаты пользователя |
get_reviews(uid) |
все рецензии пользователя |
search_editions(query) |
поиск книг |
Запись — с авторизацией (твоя сессия):
| Инструмент | Что делает |
|---|---|
add_quote(edition_id, text, visibility) |
добавляет цитату |
delete_quote(id) |
удаляет твою цитату |
add_review(edition_id, title, text, rating) |
публикует рецензию |
update_review(id, title, text, rating) |
обновляет рецензию (лайки и статистика сохраняются) |
delete_review(id) |
удаляет рецензию |
Важно: текст цитат и рецензий проходит байт-в-байт — агент не переписывает твои слова. Оценка в рецензии по шкале 0–10 (10 = «пятёрка» на сайте).
MCP (Model Context Protocol) — открытый стандарт, позволяющий ИИ-агенту пользоваться внешними инструментами. Ты один раз описываешь сервер в конфиге — и агент получает новые «руки»: умеет искать книги, добавлять цитаты, публиковать рецензии. Всё общение идёт локально: агент запускает сервер как дочерний процесс и говорит с ним по stdin/stdout. Никаких браузеров, никаких парсеров вёрстки — только чистый JSON API LiveLib.
Где живут данные. Всё, что ты видишь на LiveLib (полки, цитаты, рецензии),
на самом деле лежит в JSON API (beta.api.livelib.ru/trisolaris). Сайт — лишь
одна из его витрин. MCP-сервер обращается к API напрямую: быстрее, стабильнее
и без рекламы.
Почему это законно и безопасно. MCP делает ровно то, что делаешь ты в
браузере: читает открытые данные и пишет от твоего имени с твоей сессией.
Креды не проходят через чат и не хранятся в коде — только в локальном
~/.hermes/.env. Агент публикует текст только после того, как ты его подтвердил.
Вам нужен только личный AI-агент — он сам установит всё остальное. Проще всего это сделать в Hermes: скопируйте фразу из раздела ниже и отправьте её своему агенту.
Технический читатель найдёт пошаговую машинную инструкцию в конце файла («For agents — step by step»).
Самый простой путь — логин и пароль от LiveLib в credential vault твоего
агента (в Hermes это browser_vault; в других агентах есть аналоги).
Пароль при этом никогда не проходит через чат и не хранится в памяти агента —
vault сам вводит его в маскированное поле на странице входа.
Скопируй агенту (Hermes, Claude, pi.dev — кому доверяешь свою LiveLib-сессию):
Install the livelib-mcp MCP server from github.com/shared-goals/livelib-mcp. My LiveLib credentials are in your credential vault (label
livelib). Follow the agent instructions in that repo's README: install and verify, log in via the vault, extract thellsidcookie, store it in secrets, wire the server. Then list the tools you got and smoke-test a search.
Дальше агент сделает сам: установит и проверит сервер, войдёт на сайт через
vault, достанет из живой сессии куку llsid (она httpOnly — руками её из
браузера не достать, агент умеет), спрячет её в секреты и пропишет конфиг.
От тебя — только подтверждать действия, когда агент спросит.
Читатели, у которых нет своего агента: чтение (полки, цитаты, рецензии, поиск) работает и без всякой установки — это уже умеет любой агент, обращающийся к открытому API LiveLib. Сервер нужен для записи от твоего имени.
- Clone and verify:
git clone https://github.com/shared-goals/livelib-mcp.git ~/livelib-mcp
cd ~/livelib-mcp/scripts && uv sync && uv run pytest -q # all green-
Obtain the user's
llsidcookie (writes require the user's session). Primary path — credential vault: if the owner stored LiveLib credentials there (Hermesbrowser_vault; items are origin-bound tobeta.livelib.ru), log in through it: openhttps://beta.livelib.ru/login, click «Войти» → «Войти по почте или логину», fill the login, submit the password viavault fillwith the stored handle (the password never passes through chat). Success = redirect to/users/me.Alternatives:
- a managed browser without a vault — ask the owner to type the password in the open login window, then continue (redirect → cookie);
- no browser at all — ask the owner to extract the cookie manually (F12 → Application → Cookies → www.livelib.ru → llsid; httpOnly) and hand it over through a safe channel, never a shared chat.
Cookie extraction after a successful login: grab the jar via CDP
Network.getCookies(urls: beta.livelib.ru + beta.api.livelib.ru) and pickllsid(httpOnly, domain.livelib.ru). -
Store it in the agent's secrets (Hermes:
~/.hermes/.env; never in config.yaml and never in git):
echo "LIVELIB_LLSID=<value>" >> ~/.hermes/.env- Wire the server (Hermes:
~/.hermes/config.yaml):
mcp_servers:
livelib:
command: uv
args: ["run", "--project", "<path>/livelib-mcp/scripts", "livelib-mcp"]
env:
LIVELIB_LLSID: ${LIVELIB_LLSID}
connect_timeout: 15
timeout: 60If the MCP server places its venv inside the skill tree
(UV_PROJECT_ENVIRONMENT unset), the outer Hermes skills scan can break —
set UV_PROJECT_ENVIRONMENT: <cache-path>/livelib-venv in env.
- Restart the agent and verify live:
tools/listmust show 11 tools; smoke —get_edition(1004124394)returns «Экономика всего…». Never submit a write without the owner confirming the exact text.
Other harnesses (Claude Code, pi.dev, OpenCode): the server is a plain stdio-MCP; same command and env, per your harness's rules.
- Оценка в рецензии — по шкале 0–10; «пятёрка» = 10.
- Абзацы текста разделяй пустой строкой — каждый станет отдельным блоком (один блок схлопывает переносы строк).
- Рецензия, отредактированная в старом веб-редакторе, закрывается для API
(
409 NotEditableByNewEditor) — правь её на сайте. Пока правок там не было,update_reviewработает. - Цитаты дедуплицируются по тексту: если такой текст уже кто-то добавил, твоя запись привяжется к его канонической цитате, и страница цитаты покажет первоавтора. Это нормальное поведение LiveLib.
- Старый сайт и мобильное приложение могут не показывать свежие API-созданные записи сразу — beta-слой (web + API) консистентен.
- Кука
llsidживёт долго, но не вечно — при 401 просто обнови её в.env.
Это часть Shared Goals — открытой платформы совместных целей, где ИИ-агенты помогают людям договариваться, действовать вместе и не тонуть в информационном шуме. LiveLib для нас — сообщество читателей; этот проект — мост между ним и агентами.
MIT — shared-goals/livelib-mcp