BookStack MCP Server
BookStack MCP 服务器
一个 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/mcp3.0.0 重大变更: 已弃用的 HTTP+SSE 传输 (
GET /sse+POST /messages) 已被移除。位于/mcp的 Streamable HTTP 已经支持用于流式响应的 SSE,并且是当前 MCP 客户端中唯一的 HTTP 传输方式。如果您使用的旧版客户端需要旧版端点,请锁定版本至bookstack-mcp@2.x。
HTTP 传输环境变量
变量 | 默认值 | 描述 |
|
| 设置为 |
|
| 监听端口 |
|
| 绑定地址。为安全起见,默认使用回环地址 |
| (仅限回环) | 用于 DNS 重绑定保护的 |
|
| 流式 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 共享 | 使用场景 |
|
| 否 | 在单个仓库中进行尝试 |
|
| 否 | 您希望在所有地方使用 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 会从当前 shell 中扩展.mcp.json中的${VAR}和${VAR:-default}引用。利用这一点可以避免将密钥提交到 git:在文件中设置"BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}",并让每位开发人员在他们的 shell 中导出该变量。
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
前往 设置 (Settings) > 用户 (Users) > 编辑您的用户
确保用户拥有 访问系统 API (Access System API) 权限
在 API 令牌 (API Tokens) 部分,创建一个新令牌
复制令牌 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