BookStack MCP Server
BookStack MCP サーバー
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/mcp3.0.0 での破壊的変更: 非推奨となっていた HTTP+SSE トランスポート (
GET /sse+POST /messages) が削除されました。/mcpでの Streamable HTTP はすでにストリーミングレスポンスのために SSE を使用しており、現在の MCP クライアントにおける唯一の HTTP トランスポートです。レガシーエンドポイントを必要とする古いクライアントを使用している場合は、bookstack-mcp@2.xに固定してください。
HTTP トランスポート環境変数
変数 | デフォルト | 説明 |
|
| HTTP サーバーを有効にするには |
|
| リッスンするポート |
|
| バインドするアドレス。安全のためデフォルトはループバック |
| (ループバックのみ) | DNS リバインディング保護のための |
|
| 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 共有 | 使用場面 |
|
| いいえ | 1つのリポジトリで試す場合 |
|
| いいえ | どこでも BookStack を使いたい場合 |
| リポジトリルートの | はい | チーム全体で共有したい場合 |
結果として生成される設定エントリは以下のようになります(プロジェクトスコープの場合は .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 テンプレート | 説明 |
| 本(JSON メタデータとして返される) |
| ページ(Markdown と JSON メタデータブロブとして返される) |
どちらのテンプレートも id のオートコンプリートをサポートしています。入力中にサーバーが BookStack を検索し、一致する ID を返すため、数値 ID を手動で覚える必要はありません。
利用可能なツール
読み取り操作(常に利用可能)
ツール | 説明 |
| サーバーの機能と設定 |
| フィルタリングを使用してすべてのコンテンツを検索 |
| 本のフィルタリングオプション付きでページを検索 |
| 本の一覧取得または詳細取得 |
| ページの一覧取得またはフルコンテンツ取得 |
| 章の一覧取得または詳細取得 |
| 棚の一覧取得または詳細取得 |
| 添付ファイルの一覧取得または詳細取得 |
| ページのコメント一覧取得または詳細取得 (BookStack v25.11+) |
| ゴミ箱内のアイテム一覧取得 |
| ページを HTML、PDF、Markdown、プレーンテキスト、または ZIP としてエクスポート |
| 本全体をエクスポート |
| 章をエクスポート |
| 最近更新されたコンテンツ |
書き込み操作 (BOOKSTACK_ENABLE_WRITE=true が必要)
ツール | 説明 |
| 本の作成または削除 |
| 章の作成または削除 |
| 新しいページの作成 (HTML または Markdown) |
| コンテンツの更新、名前変更、または別の本/章への移動 |
| ページの削除 (ゴミ箱から復元可能) |
| 棚の管理 |
| 添付ファイルの管理 |
| ページコメントの管理 (v25.11+) |
| ゴミ箱内のアイテムの復元または完全削除 |
BookStack API のセットアップ
管理者として BookStack にログイン
設定 > ユーザー > ユーザーの編集 に移動
ユーザーに システム API へのアクセス 権限があることを確認
API トークン セクションで新しいトークンを作成
トークン 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
Maintenance
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