Skip to content

About

Read-only BookStack MCP setup for Claude Code on Windows with protected local credentials

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

BookStack Reader для Windows

Подключение рабочей вики 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-токеном.

1. Подготовить пользователя BookStack

Создайте служебного пользователя, например claude-reader, и роль agents-ro со следующими разрешениями:

access-api
book-view-all
bookshelf-view-all
chapter-view-all
page-view-all

Не назначайте этому пользователю Admin или роли, разрешающие запись. Проверьте также индивидуальные правила доступа книг, глав и страниц: они могут переопределять права роли.

Если отдельные книги закрыты для общей роли, можно создать дополнительную роль без глобальных разрешений, назначить её только служебному пользователю и дать ей «Просмотр» на нужных книгах. Существующие правила других ролей сохраните.

Войдите под служебным пользователем, откройте профиль → API Tokens → Create Token. Выберите понятное название и срок действия. Секрет показывается один раз. Не отправляйте его в GitHub или переписку.

2. Установить на ПК

Скачайте этот репозиторий или клонируйте его:

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 не требуется.

3. Сохранить ключ

Запустите сценарий из установленной папки:

& "$env:USERPROFILE\.config\bookstack-reader-windows\Save-Token.ps1"

Введите token_id и token_secret. Ввод секретной части скрыт. Значения записываются в credentials.json; секрет не передаётся в командной строке. Файл config.json рядом содержит адрес вики.

Файлы ключей защищены разрешениями NTFS, а не шифрованием. Эта защита ограничивает другие обычные учётные записи Windows; администратор ПК может изменить разрешения. Процессы, запущенные под вашим пользователем, имеют такой же доступ к файлу.

4. Проверить и подключить Claude Code

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.

About

Read-only BookStack MCP setup for Claude Code on Windows with protected local credentials

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages