一个专业级别的模型上下文协议(MCP)服务器,无缝连接AI助手与BookStack知识管理系统。通过智能自动化改进您的文档工作流程。
由Derron Knox创建 | 展示企业级软件架构和最佳实践
这个基于TypeScript的MCP服务器提供了一个强大的、生产就绪的接口,用于AI助手与BookStack实例之间的交互。设计时考虑了企业的可扩展性、安全性和可维护性,展示了先进的软件工程原则和现代开发实践。
create_page - 创建包含HTML/Markdown内容的新页面get_page_content - 根据ID或名称检索页面内容update_page - 修改现有页面(内容、位置、元数据)delete_page - 从BookStack中删除页面search_items - 在架子、书籍、章节和页面之间搜索list_books - 列出书籍,支持过滤和分页list_shelves - 浏览架子集合,带有高级选项read_book - 根据ID或名称获取特定书籍的详细信息create_book - 创建新书籍update_book - 修改现有书籍(内容、元数据)delete_book - 从BookStack中删除书籍# 克隆并配置
git clone <repository-url>
cd bookstack/
cp .env.example .env
# 配置您的BookStack凭证
cat > .env << EOF
BOOKSTACK_URL="https://your-bookstack-instance.com"
BOOKSTACK_API_TOKEN_ID="your_token_id_here"
BOOKSTACK_API_TOKEN_SECRET="your_token_secret_here"
EOF
# 生产就绪的容器化部署
docker-compose up --build -d
# 监控日志
docker-compose logs -f bookstack-mcp-server
# 安装依赖
npm install
# 开发模式,支持热重载
npm run watch
# 生产构建
npm run build
npm start
添加到您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"bookstack-mcp-server": {
"command": "node",
"args": ["/path/to/bookstack/build/index.js"],
"env": {
"BOOKSTACK_URL": "https://your-bookstack-instance.com",
"BOOKSTACK_API_TOKEN_ID": "your_token_id",
“BOOKSTACK_API_TOKEN_SECRET”: "your_token_secret"
}
}
}
}
bookstack/
├── src/
│ ├── types.ts # TypeScript接口定义
│ ├── utils/
│ │ ├── validation.ts # 输入验证与净化
│ │ └── api.ts # API实用程序与辅助函数
│ ├── tools/
│ │ ├── definitions.ts # 工具模式定义
│ │ └── handlers.ts # 业务逻辑实现
│ └── index.ts # 主服务器与编排
├── build/ # 编译后的JavaScript输出
├── Dockerfile # 多阶段容器构建
├── docker-compose.yml # 生产部署配置
└── package.json # 依赖项与脚本
| 变量 | 描述 | 是否必需 | 示例 |
|---|---|---|---|
BOOKSTACK_URL | BookStack实例URL | ✅ | https://wiki.company.com |
BOOKSTACK_API_TOKEN_ID | 来自BookStack的API令牌ID | ✅ | abc123def456 |
BOOKSTACK_API_TOKEN_SECRET | 来自BookStack的API令牌密钥 | ✅ | xyz789uvw012 |
// 在特定书籍中创建页面
await createPage({
name: "API 文档",
markdown: "# API 指南\n\n综合API文档...",
book_name: "开发指南",
tags: [
{ name: "类别", value: "api" },
{ name: "优先级", value: "高" }
]
});
// 跨所有内容类型搜索
await searchItems({
query: "Kubernetes 部署",
count: 20
});
// 根据上下文查找页面
await getPageContent({
page_name: "部署指南",
book_name: "基础设施文档"
});
// 更新页面内容
await updatePage({
page_name: "入门指南",
book_name: "用户手册",
markdown: "# 更新的入门指南\n...",
tags: [{ name: "状态", value: "更新" }]
});
# 在多个节点上扩展
docker stack deploy -c docker-compose.yml bookstack-mcp
apiVersion: apps/v1
kind: Deployment
metadata:
name: bookstack-mcp-server
spec:
replicas: 3
selector:
matchLabels:
app: bookstack-mcp-server
template:
metadata:
labels:
app: bookstack-mcp-server
spec:
containers:
- name: bookstack-mcp-server
image: bookstack-mcp-server:latest
env:
- name: BOOKSTACK_URL
valueFrom:
secretKeyRef:
name: bookstack-credentials
key: url
# 开发模式,支持自动重载
npm run watch
# 类型检查
npx tsc --noEmit
# 使用MCP Inspector调试
npm run inspector
# 启动调试界面
npm run inspector
# 通过提供的URL在浏览器中访问
# 验证BookStack的可达性
curl -H "Authorization: Token $BOOKSTACK_API_TOKEN_ID:$BOOKSTACK_API_TOKEN_SECRET" \
"$BOOKSTACK_URL/api/books"
# 检查容器健康状况
docker-compose ps
docker-compose logs bookstack-mcp-server
# 使用新的构建重启
docker-compose down && docker-compose up --build
此项目展示了以下领域的专业知识:
欢迎贡献!可以增强的领域包括:
Derron Knox - 软件工程师与解决方案架构师
此项目展示了企业级软件开发实践,体现了在现代网络技术、云原生开发和可扩展系统架构方面的熟练程度。