知识管理集成服务

BookStack MCP Server是一个专业级的模型上下文协议服务器,用于连接AI助手与BookStack知识管理系统,实现文档工作流的智能自动化。

  • by Derron-Knox
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Derron-Knox/bookstack-mcp-server

使用说明

📚 BookStack MCP服务器

一个专业级的模型上下文协议(MCP)服务器,将AI助手与BookStack知识管理系统无缝连接。通过智能自动化改变您的文档工作流程。

由...创建 Derron Knox | 展示企业级软件架构和最佳实践


🚀 概述

这个基于TypeScript的MCP服务器为AI助手与BookStack实例交互提供了一个健壮的、生产就绪的接口。它的设计考虑了企业的可扩展性、安全性和可维护性,展示了先进的软件工程原理和现代开发实践。

✨ 主要特点

  • 🛡️ 企业安全:具有安全凭证管理的基于令牌的身份验证
  • 🏗️ 模块化架构:与TypeScript接口进行清晰的关注点分离
  • 🔄 全面的CRUD操作:BookStack内容的全生命周期管理
  • 🐳 集装箱准备就绪:通过多阶段构建进行生产优化的Docker设置
  • ⚡ 高性能:通过正确的错误处理和超时优化API调用
  • 📋 类型安全:具有严格类型检查的完整TypeScript实现
  • 🔍 智能搜索:高级内容发现和过滤功能
  • 📖 智能分辨率:名称到ID解析,便于用户操作

🛠️ 可用工具

页面管理

  • 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中删除书籍

高级功能

  • 灵活定位:对所有操作使用ID或名称
  • 上下文感知解决方案:自动名称到ID转换
  • 分层导航:支持书籍/章节/页面关系
  • 元数据管理:标签、优先级和组织特征

🏃‍♂️ 快速开始

先决条件

  • Node.js 20+
  • Docker和Docker Compose(用于容器化部署)
  • 具有API访问权限的BookStack实例
  • BookStack API代币(代币ID和密钥)

1.环境设置

# Clone and configure
git clone <repository-url>
cd bookstack/
cp .env.example .env

# Configure your BookStack credentials
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

2.安装选项

选项A:Docker部署(推荐)

# Production-ready containerized deployment
docker-compose up --build -d

# Monitor logs
docker-compose logs -f bookstack-mcp-server

方案B:地方发展

# Install dependencies
npm install

# Development with hot reload
npm run watch

# Production build
npm run build
npm start

3.与克劳德桌面集成

添加到您的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 interface definitions
│   ├── utils/
│   │   ├── validation.ts     # Input validation & sanitization
│   │   └── api.ts           # API utilities & helper functions
│   ├── tools/
│   │   ├── definitions.ts    # Tool schema definitions
│   │   └── handlers.ts      # Business logic implementations
│   └── index.ts             # Main server & orchestration
├── build/                   # Compiled JavaScript output
├── Dockerfile              # Multi-stage container build
├── docker-compose.yml      # Production deployment config
└── package.json            # Dependencies & scripts

工程原理演示

🎯 清洁建筑

  • 关注点分离:用于验证、业务逻辑和API交互的不同层
  • 依赖注入:模块化设计,界面清晰
  • 单一责任:每个模块都有一个明确的目的

🔒 安全第一

  • 环境变量管理:安全的凭证处理
  • 输入验证:全面的论点净化
  • 误差边界:正确的异常处理,无信息泄露

🚀 生产准备就绪

  • 容器优化:多阶段Docker构建,实现最小映像大小
  • 健康检查:内置容器健康监测
  • 优雅地关闭:正确的信号处理,实现干净端接
  • 综合录井:结构化错误报告和调试

📊 代码质量

  • TypeScript严格模式:全型安全,接口全面
  • 模块化设计:具有清晰API的可重用组件
  • 错误处理:强大的异常管理,用户友好的消息

🔧 配置选项

环境变量

变量 描述 必填 示例
BOOKSTACK_URL BookStack实例URL ✅ https://wiki.company.com
BOOKSTACK_API_TOKEN_ID BookStack中的API令牌ID ✅ abc123def456
BOOKSTACK_API_TOKEN_SECRET 来自BookStack的API令牌机密 ✅ xyz789uvw012

Docker配置

  • 健康检查:30秒间隔,重试3次
  • 日志轮转:最大文件大小为10MB,保留5个文件
  • 安全:非root用户执行
  • 资源优化:多阶段构建,提高生产效率

🔍 使用示例

创建内容

// Create a page in a specific book
await createPage({
  name: "API Documentation",
  markdown: "# API Guide\n\nComprehensive API documentation...",
  book_name: "Development Guides",
  tags: [
    { name: "category", value: "api" },
    { name: "priority", value: "high" }
  ]
});

内容发现

// Search across all content types
await searchItems({
  query: "kubernetes deployment",
  count: 20
});

// Find pages by context
await getPageContent({
  page_name: "Deployment Guide",
  book_name: "Infrastructure Documentation"
});

内容管理

// Update page with new content
await updatePage({
  page_name: "Getting Started",
  book_name: "User Manual",
  markdown: "# Updated Getting Started Guide\n...",
  tags: [{ name: "status", value: "updated" }]
});

🚀 部署选项

生产部署

Docker Swarm

# Scale across multiple nodes
docker stack deploy -c docker-compose.yml bookstack-mcp

Kubernetes

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

开发工作流程

# Development with auto-reload
npm run watch

# Type checking
npx tsc --noEmit

# Debug with MCP Inspector
npm run inspector

🐛 调试与故障排除

MCP检查员

# Launch debugging interface
npm run inspector
# Access via browser at provided URL

常见问题

连接问题

# Verify BookStack accessibility
curl -H "Authorization: Token $BOOKSTACK_API_TOKEN_ID:$BOOKSTACK_API_TOKEN_SECRET" \
     "$BOOKSTACK_URL/api/books"

集装箱问题

# Check container health
docker-compose ps
docker-compose logs bookstack-mcp-server

# Restart with fresh build
docker-compose down && docker-compose up --build

📋 依赖项

生产依赖性

  • @模型上下文协议/sdk:^0.6.0-MCP协议实现
  • 轴:^1.9.0-BookStack API的HTTP客户端

发展依赖性

  • 打字稿:^5.3.3-类型安全的JavaScript开发
  • @类型/节点:^20.11.24-Node.js类型定义

系统要求

  • Node.js:20+(建议使用LTS)
  • 记忆:最小256MB,建议512MB
  • 存储:100MB用于应用程序,额外用于日志

🎯 专业展示

该项目展示了以下方面的专业知识:

后端开发

  • RESTful API集成与设计
  • 微服务架构模式
  • 错误处理和弹性模式

DevOps和基础设施

  • Docker的容器化
  • 生产部署策略
  • 配置管理
  • 健康监测和可观察性

软件工程

  • 干净代码原则
  • 设计模式(策略、工厂、依赖注入)
  • 测试驱动开发思维
  • 文件和可维护性

现代JavaScript/TypeScript

  • 高级TypeScript功能
  • 异步/等待模式
  • ES2022+现代语法
  • Node.js最佳实践

🤝 贡献

这个项目欢迎捐款!需要改进的领域:

  • 单元测试覆盖范围扩展
  • 其他BookStack API端点
  • 性能优化
  • 增强的错误恢复

📞 联系

Derron Knox - 软件工程师和解决方案架构师


该项目展示了企业级软件开发实践,展示了对现代web技术、云原生开发和可扩展系统架构的熟练掌握。