Skip to main content
Glama
ttpears

BookStack MCP Server

by ttpears

BookStack MCP 服务器

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

一个 Model Context Protocol (MCP) 服务器,让 AI 助手能够全面访问您的 BookStack 文档——包括搜索、读取、创建和管理内容。

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 证书验证。仅在受信任局域网内的自签名证书环境下使用——连接将容易受到中间人 (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

流式 HTTP 端点

当绑定到 0.0.0.0(例如在其他服务可访问的容器内)时,请将 MCP_HTTP_ALLOWED_HOSTS 设置为 LibreChat 将用于访问此服务器的主机名,例如 MCP_HTTP_ALLOWED_HOSTS=bookstack-mcp,bookstack-mcp.internal

配置更改后请重启 LibreChat。

Claude Code (CLI)

推荐路径是使用 ttpears/claude-plugins 市场,它提供了本仓库的插件清单 (.claude-plugin/plugin.json):

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

然后在您的 shell 中设置 BOOKSTACK_* 环境变量,以便插件的 MCP 服务器能够进行身份验证:

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,仅限当前项目

在单个仓库中进行尝试

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 会从当前 shell 中扩展 .mcp.json 中的 ${VAR}${VAR:-default} 引用。利用这一点可以避免将密钥提交到 git:在文件中设置 "BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}",并让每位开发人员在他们的 shell 中导出该变量。

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. 前往 设置 (Settings) > 用户 (Users) > 编辑您的用户

  3. 确保用户拥有 访问系统 API (Access System API) 权限

  4. API 令牌 (API Tokens) 部分,创建一个新令牌

  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