Skip to main content
Glama
ttpears

BookStack MCP Server

by ttpears

BookStack MCP サーバー

npm version npm downloads CI Node.js MCP License: MIT

AI アシスタントが BookStack ドキュメントにフルアクセス(検索、読み取り、作成、コンテンツ管理)できるようにする Model Context Protocol (MCP) サーバーです。

npx bookstack-mcp

機能

  • 20個の読み取り専用ツール + 18個の書き込みツールにより、BookStack API を完全にカバー

  • 本、章、ページ、棚、添付ファイル、コメントの完全な CRUD 操作

  • ゴミ箱サポート — 論理削除されたコンテンツの復元または完全削除

  • Zod による型安全な入力バリデーション(幅広いクライアント互換性のために文字列/数値パラメータを自動変換)

  • すべてのレスポンスに埋め込み URL とコンテンツプレビューを表示

  • HTML で作成されたページに対する Markdown エクスポートフォールバックにより、AI クライアントが常に利用可能なコンテンツを取得可能

  • 安全のため、書き込み操作はデフォルトで無効化

  • Claude Desktop、Claude Code、LibreChat、および MCP 互換クライアントで動作

  • Stdio および Streamable HTTP トランスポート

Related MCP server: PDF RAG MCP Server

クイックスタート

npm からインストール

npx bookstack-mcp

またはクローンしてビルド

git clone https://github.com/ttpears/bookstack-mcp.git
cd bookstack-mcp
npm install && npm run build
npm start

環境変数

BOOKSTACK_BASE_URL=https://your-bookstack.com   # Required
BOOKSTACK_TOKEN_ID=your-token-id                # Required
BOOKSTACK_TOKEN_SECRET=your-token-secret        # Required
BOOKSTACK_ENABLE_WRITE=false                    # Optional, default false
BOOKSTACK_INSECURE_SKIP_TLS_VERIFY=false        # Optional, default false

セキュリティ警告: BOOKSTACK_INSECURE_SKIP_TLS_VERIFY=true は、BookStack への送信リクエストに対する TLS 証明書の検証を無効にします。信頼できる LAN 上の自己署名証明書に対してのみ使用してください。接続が MITM 攻撃に対して脆弱になります。この設定が有効な場合、サーバーは起動時に WARNING ログを出力します。

クライアント設定

Claude Desktop

Claude Desktop の設定に追加します:

{
  "mcpServers": {
    "bookstack": {
      "command": "npx",
      "args": ["-y", "bookstack-mcp"],
      "env": {
        "BOOKSTACK_BASE_URL": "https://your-bookstack.com",
        "BOOKSTACK_TOKEN_ID": "your-token-id",
        "BOOKSTACK_TOKEN_SECRET": "your-token-secret"
      }
    }
  }
}

LibreChat (stdio, シングルユーザー)

librechat.yaml に追加します:

mcpServers:
  bookstack:
    command: npx
    args:
      - -y
      - bookstack-mcp
    env:
      BOOKSTACK_BASE_URL: "https://your-bookstack.com"
      BOOKSTACK_TOKEN_ID: "your-token-id"
      BOOKSTACK_TOKEN_SECRET: "your-token-secret"

LibreChat (Streamable HTTP, 本番環境/Docker 推奨)

サーバーを常駐 HTTP サービスとして実行し、LibreChat からその URL を指定します。これはマルチユーザー環境やコンテナ化されたデプロイメントに適した設定です。

サーバーを HTTP モードで起動します:

MCP_TRANSPORT=http \
MCP_HTTP_PORT=8080 \
BOOKSTACK_BASE_URL=https://your-bookstack.com \
BOOKSTACK_TOKEN_ID=your-token-id \
BOOKSTACK_TOKEN_SECRET=your-token-secret \
npx bookstack-mcp

次に LibreChat を設定します:

mcpServers:
  bookstack:
    type: streamable-http
    url: http://bookstack-mcp:8080/mcp

3.0.0 での破壊的変更: 非推奨となっていた HTTP+SSE トランスポート (GET /sse + POST /messages) が削除されました。/mcp での Streamable HTTP はすでにストリーミングレスポンスのために SSE を使用しており、現在の MCP クライアントにおける唯一の HTTP トランスポートです。レガシーエンドポイントを必要とする古いクライアントを使用している場合は、bookstack-mcp@2.x に固定してください。

HTTP トランスポート環境変数

変数

デフォルト

説明

MCP_TRANSPORT

stdio

HTTP サーバーを有効にするには http に設定

MCP_HTTP_PORT

8080

リッスンするポート

MCP_HTTP_HOST

127.0.0.1

バインドするアドレス。安全のためデフォルトはループバック

MCP_HTTP_ALLOWED_HOSTS

(ループバックのみ)

DNS リバインディング保護のための Host ヘッダーホスト名のカンマ区切りリスト。非ループバックアドレスにバインドする場合に必要

MCP_HTTP_PATH

/mcp

Streamable HTTP エンドポイント

0.0.0.0 にバインドする場合(他のサービスから到達可能なコンテナ内など)、MCP_HTTP_ALLOWED_HOSTS に LibreChat がこのサーバーに到達するために使用するホスト名を設定してください(例: MCP_HTTP_ALLOWED_HOSTS=bookstack-mcp,bookstack-mcp.internal)。

設定変更後は LibreChat を再起動してください。

Claude Code (CLI)

推奨される方法は、このリポジトリのプラグインマニフェスト (.claude-plugin/plugin.json) を提供する ttpears/claude-plugins マーケットプレイスを使用することです:

/plugin marketplace add ttpears/claude-plugins
/plugin install bookstack-mcp@ttpears-plugins

次に、プラグインの MCP サーバーが認証できるように、シェルで BOOKSTACK_* 環境変数を設定します:

export BOOKSTACK_BASE_URL=https://your-bookstack.com
export BOOKSTACK_TOKEN_ID=your-token-id
export BOOKSTACK_TOKEN_SECRET=your-token-secret

手動インストール(代替手段)

マーケットプレイスを使用したくない場合は、claude mcp add で直接サーバーを登録します。各変数に対して --env を繰り返し、すべてのフラグをサーバー名のに置き、-- を使用して Claude Code が起動するコマンドの開始位置を指定します:

claude mcp add bookstack \
  --transport stdio \
  --scope user \
  --env BOOKSTACK_BASE_URL=https://your-bookstack.com \
  --env BOOKSTACK_TOKEN_ID=your-token-id \
  --env BOOKSTACK_TOKEN_SECRET=your-token-secret \
  -- npx -y bookstack-mcp

スコープはエントリの書き込み先を選択します:

スコープ

保存場所

git 共有

使用場面

local (デフォルト)

~/.claude.json (現在のプロジェクトにスコープ)

いいえ

1つのリポジトリで試す場合

user

~/.claude.json (すべてのプロジェクトで利用可能)

いいえ

どこでも BookStack を使いたい場合

project

リポジトリルートの .mcp.json

はい

チーム全体で共有したい場合

結果として生成される設定エントリは以下のようになります(プロジェクトスコープの場合は .mcp.json、それ以外は ~/.claude.json):

{
  "mcpServers": {
    "bookstack": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "bookstack-mcp"],
      "env": {
        "BOOKSTACK_BASE_URL": "https://your-bookstack.com",
        "BOOKSTACK_TOKEN_ID": "your-token-id",
        "BOOKSTACK_TOKEN_SECRET": "your-token-secret"
      }
    }
  }
}

コミットする .mcp.json のヒント: Claude Code は .mcp.json 内の ${VAR} および ${VAR:-default} 参照をシェル環境から展開します。これを利用してシークレットを git に含めないようにします:ファイル内に "BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}" を設定し、各開発者がシェルで変数をエクスポートするようにします。

MCP リソース

本やページは MCP リソースとしても公開されているため、リソースをブラウズできるクライアント(Claude Desktop、MCP Inspector など)では @ メンションで直接参照できます:

URI テンプレート

説明

bookstack://book/{id}

本(JSON メタデータとして返される)

bookstack://page/{id}

ページ(Markdown と JSON メタデータブロブとして返される)

どちらのテンプレートも id のオートコンプリートをサポートしています。入力中にサーバーが BookStack を検索し、一致する ID を返すため、数値 ID を手動で覚える必要はありません。

利用可能なツール

読み取り操作(常に利用可能)

ツール

説明

get_capabilities

サーバーの機能と設定

search_content

フィルタリングを使用してすべてのコンテンツを検索

search_pages

本のフィルタリングオプション付きでページを検索

get_books / get_book

本の一覧取得または詳細取得

get_pages / get_page

ページの一覧取得またはフルコンテンツ取得

get_chapters / get_chapter

章の一覧取得または詳細取得

get_shelves / get_shelf

棚の一覧取得または詳細取得

get_attachments / get_attachment

添付ファイルの一覧取得または詳細取得

get_comments / get_comment

ページのコメント一覧取得または詳細取得 (BookStack v25.11+)

get_recycle_bin

ゴミ箱内のアイテム一覧取得

export_page

ページを HTML、PDF、Markdown、プレーンテキスト、または ZIP としてエクスポート

export_book

本全体をエクスポート

export_chapter

章をエクスポート

get_recent_changes

最近更新されたコンテンツ

書き込み操作 (BOOKSTACK_ENABLE_WRITE=true が必要)

ツール

説明

create_book / delete_book

本の作成または削除

create_chapter / delete_chapter

章の作成または削除

create_page

新しいページの作成 (HTML または Markdown)

update_page

コンテンツの更新、名前変更、または別の本/章への移動

delete_page

ページの削除 (ゴミ箱から復元可能)

create_shelf / update_shelf / delete_shelf

棚の管理

create_attachment / update_attachment / delete_attachment

添付ファイルの管理

create_comment / update_comment / delete_comment

ページコメントの管理 (v25.11+)

restore_deleted / permanently_delete

ゴミ箱内のアイテムの復元または完全削除

BookStack API のセットアップ

  1. 管理者として BookStack にログイン

  2. 設定 > ユーザー > ユーザーの編集 に移動

  3. ユーザーに システム API へのアクセス 権限があることを確認

  4. API トークン セクションで新しいトークンを作成

  5. トークン ID とトークンシークレットをコピー

セキュリティ

  • 書き込み操作は デフォルトで無効 です

  • 本番環境では HTTPS を使用してください

  • API トークンは安全に保管してください(git にコミットしないでください)

  • 権限を制限した専用の BookStack ユーザーの使用を検討してください

開発

npm run dev          # Hot reload with tsx
npm run type-check   # Type checking only
npm run build        # Production build

ライセンス

MIT

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
5Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ttpears/bookstack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server