Подключение рабочей вики BookStack к Claude Code в терминале с правами только чтения.
Проект содержит установщик для Windows, защищённое сохранение API-ключа, запуск и проверку подключения. Сам MCP-сервер устанавливается как зависимость ttpears/bookstack-mcp. Авторы исходного сервера указаны в THIRD-PARTY-NOTICES.md.
- 20 инструментов чтения: поиск и чтение книг, глав, страниц и другого доступного содержимого.
- Режим записи принудительно выключен при запуске.
- Проверка HTTPS-сертификата включена.
- Ключ хранится отдельным файлом, доступным текущему пользователю Windows и SYSTEM.
- В конфигурации Claude Code сохраняется команда запуска, без ключа.
- Адрес вики задаётся при установке; проект не привязан к конкретной организации.
- Windows 10/11 и PowerShell 5.1 или новее.
- Node.js 22 или новее с npm. Локально проверено на Node.js 24.
- Установленный Claude Code; команда
claudeдолжна быть доступна в терминале. - Вики BookStack по HTTPS и возможность создать отдельного пользователя с API-токеном.
Создайте служебного пользователя, например claude-reader, и роль agents-ro со следующими разрешениями:
access-api
book-view-all
bookshelf-view-all
chapter-view-all
page-view-all
Не назначайте этому пользователю Admin или роли, разрешающие запись. Проверьте также индивидуальные правила доступа книг, глав и страниц: они могут переопределять права роли.
Если отдельные книги закрыты для общей роли, можно создать дополнительную роль без глобальных разрешений, назначить её только служебному пользователю и дать ей «Просмотр» на нужных книгах. Существующие правила других ролей сохраните.
Войдите под служебным пользователем, откройте профиль → API Tokens → Create Token. Выберите понятное название и срок действия. Секрет показывается один раз. Не отправляйте его в GitHub или переписку.
Скачайте этот репозиторий или клонируйте его:
git clone https://github.com/dimax27/bookstack-reader-windows.git
cd bookstack-reader-windows
.\Install.ps1 -BaseUrl 'https://wiki.example.com'Замените пример адресом своей вики. Установщик создаёт отдельную папку:
%USERPROFILE%\.config\bookstack-reader-windows
Установка закрепляет версии зависимостей из package-lock.json и не запускает их установочные сценарии. Для работы без сети при уже заполненном npm-кэше добавьте -Offline.
Можно указать другую пустую папку через -InstallDirectory. Повторная установка в созданную этим установщиком папку сохраняет ключ. Произвольная непустая папка не подходит для установки.
Для другой вики используйте отдельную папку: повторная установка не позволяет перенаправить сохранённый ключ на другой адрес.
Если Windows заблокировала скачанные сценарии, сначала проверьте их содержимое. Для доверенных файлов можно использовать Unblock-File; менять общую политику выполнения PowerShell не требуется.
Запустите сценарий из установленной папки:
& "$env:USERPROFILE\.config\bookstack-reader-windows\Save-Token.ps1"Введите token_id и token_secret. Ввод секретной части скрыт. Значения записываются в credentials.json; секрет не передаётся в командной строке. Файл config.json рядом содержит адрес вики.
Файлы ключей защищены разрешениями NTFS, а не шифрованием. Эта защита ограничивает другие обычные учётные записи Windows; администратор ПК может изменить разрешения. Процессы, запущенные под вашим пользователем, имеют такой же доступ к файлу.
node "$env:USERPROFILE\.config\bookstack-reader-windows\check.mjs"
& "$env:USERPROFILE\.config\bookstack-reader-windows\Register-Claude.ps1"
claude mcp get bookstack-readerПервая команда проверяет перечень инструментов MCP и чтение списка книг. Ожидается writeTools: 0, затем success: true. Проверка не выводит содержимое вики и не выполняет запись.
Регистрация использует пользовательскую область настроек Claude Code (--scope user), поэтому подключение доступно из разных проектов. Если имя уже занято, укажите другое:
& "$env:USERPROFILE\.config\bookstack-reader-windows\Register-Claude.ps1" -ServerName 'another-wiki-reader'Начните новую сессию Claude Code и откройте /mcp. Сервер должен показывать Connected.
Пример запроса: «Через bookstack-reader найди инструкцию по оформлению заказа и кратко перечисли шаги».
Проверка выбранных книг и страниц по их числовым ID:
node "$env:USERPROFILE\.config\bookstack-reader-windows\check.mjs" --book-id 1 --page-id 2Параметры --book-id и --page-id можно повторять. Используйте ID из своей вики. При указании ID проверяется выбранное содержимое вместо списка книг.
Проверка без настоящего ключа и без запросов к BookStack:
node "$env:USERPROFILE\.config\bookstack-reader-windows\check.mjs" --offlineОна запускает настоящий MCP-сервер с тестовыми значениями и проверяет только перечень инструментов. Фактический доступ к вики и права пользователя так не проверяются.
Для разработчиков, из папки исходного кода:
npm ci --ignore-scripts --no-audit --no-fund
npm testТесты проверяют запрет небезопасных адресов, отсутствие ключей в сообщениях об ошибках и запуск только с инструментами чтения даже при унаследованных настройках записи. GitHub Actions выполняет их на Windows без доступа к рабочей вики.
Создайте новый токен под тем же служебным пользователем, повторно запустите Save-Token.ps1, проверьте подключение и начните новую сессию Claude Code. После успешной проверки отзовите старый токен в BookStack.
Удаление регистрации:
claude mcp remove bookstack-reader -s userЭта команда не отзывает API-токен и не удаляет установленную папку. При полном отключении отзовите токен в BookStack и удалите папку установки самостоятельно.
Обёртка всегда запускает bookstack-mcp с BOOKSTACK_ENABLE_WRITE=false, проверкой TLS и локальным транспортом stdio. Унаследованные переменные BookStack и MCP сбрасываются, включая отдельные ключи записи и настройки OAuth.
Окончательный доступ задаётся ролями и правилами содержимого в BookStack. Установщик не создаёт пользователей и не меняет права на сервере. API-токен администратора останется административным, даже если конкретное подключение не показывает инструменты записи; используйте отдельный аккаунт чтения.
Сценарии и документация этого проекта распространяются по лицензии MIT.