Skip to main content
Glama
ttpears

BookStack MCP Server

by ttpears

BookStack MCP-Server

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

Ein Model Context Protocol (MCP)-Server, der KI-Assistenten vollen Zugriff auf Ihre BookStack-Dokumentation gewährt — suchen, lesen, erstellen und verwalten Sie Inhalte.

npx bookstack-mcp

Funktionen

  • 20 schreibgeschützte Tools + 18 Schreib-Tools für vollständige BookStack-API-Abdeckung

  • Bücher, Kapitel, Seiten, Regale, Anhänge und Kommentare — vollständiges CRUD

  • Unterstützung für den Papierkorb — Wiederherstellung oder dauerhaftes Löschen von gelöschten Inhalten

  • Typsichere Eingabevalidierung mit Zod (automatische Konvertierung von String/Number-Parametern für breite Client-Kompatibilität)

  • Eingebettete URLs und Inhaltsvorschauen in allen Antworten

  • Markdown-Export-Fallback für in HTML erstellte Seiten, damit KI-Clients immer nutzbare Inhalte erhalten

  • Schreibvorgänge aus Sicherheitsgründen standardmäßig deaktiviert

  • Funktioniert mit Claude Desktop, Claude Code, LibreChat und jedem MCP-kompatiblen Client

  • Stdio- und Streamable-HTTP-Transporte

Related MCP server: PDF RAG MCP Server

Schnellstart

Installation über npm

npx bookstack-mcp

Oder klonen und bauen

git clone https://github.com/ttpears/bookstack-mcp.git
cd bookstack-mcp
npm install && npm run build
npm start

Umgebungsvariablen

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

Sicherheitshinweis: BOOKSTACK_INSECURE_SKIP_TLS_VERIFY=true deaktiviert die TLS-Zertifikatsprüfung für ausgehende Anfragen an BookStack. Nur für selbstsignierte Zertifikate in einem vertrauenswürdigen LAN verwenden — Verbindungen werden anfällig für MITM-Angriffe. Der Server protokolliert beim Start eine WARNING-Zeile, wenn dies aktiviert ist.

Client-Konfiguration

Claude Desktop

Fügen Sie dies zu Ihrer Claude Desktop-Konfiguration hinzu:

{
  "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, Einzelbenutzer)

Fügen Sie dies zu Ihrer librechat.yaml hinzu:

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, empfohlen für Produktion / Docker)

Führen Sie den Server als langlebigen HTTP-Dienst aus und verweisen Sie LibreChat auf die URL. Dies ist das richtige Setup für Multi-User- oder containerisierte Bereitstellungen.

Starten Sie den Server im HTTP-Modus:

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

Konfigurieren Sie dann LibreChat:

mcpServers:
  bookstack:
    type: streamable-http
    url: http://bookstack-mcp:8080/mcp

3.0.0 Breaking Change: Der veraltete HTTP+SSE-Transport (GET /sse + POST /messages) wurde entfernt. Streamable HTTP unter /mcp unterstützt bereits SSE für Streaming-Antworten und ist der einzige HTTP-Transport in aktuellen MCP-Clients. Wenn Sie einen älteren Client verwenden, der die Legacy-Endpunkte benötigt, pinnen Sie auf bookstack-mcp@2.x.

Umgebungsvariablen für den HTTP-Transport

Variable

Standard

Beschreibung

MCP_TRANSPORT

stdio

Auf http setzen, um den HTTP-Server zu aktivieren

MCP_HTTP_PORT

8080

Port, auf dem gelauscht werden soll

MCP_HTTP_HOST

127.0.0.1

Bind-Adresse. Standardmäßig Loopback aus Sicherheitsgründen

MCP_HTTP_ALLOWED_HOSTS

(nur Loopback)

Kommagetrennte Liste erlaubter Host-Header-Hostnamen zum Schutz vor DNS-Rebinding. Erforderlich bei Bindung an eine Nicht-Loopback-Adresse

MCP_HTTP_PATH

/mcp

Streamable HTTP-Endpunkt

Wenn Sie an 0.0.0.0 binden (z. B. innerhalb eines Containers, der von anderen Diensten erreichbar ist), setzen Sie MCP_HTTP_ALLOWED_HOSTS auf die Hostnamen, die LibreChat verwenden wird, um diesen Server zu erreichen, z. B. MCP_HTTP_ALLOWED_HOSTS=bookstack-mcp,bookstack-mcp.internal.

Starten Sie LibreChat nach Konfigurationsänderungen neu.

Claude Code (CLI)

Der empfohlene Weg ist der ttpears/claude-plugins-Marktplatz, der das Plugin-Manifest dieses Repos (.claude-plugin/plugin.json) bereitstellt:

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

Setzen Sie dann die BOOKSTACK_*-Umgebungsvariablen in Ihrer Shell, damit der MCP-Server des Plugins authentifizieren kann:

export BOOKSTACK_BASE_URL=https://your-bookstack.com
export BOOKSTACK_TOKEN_ID=your-token-id
export BOOKSTACK_TOKEN_SECRET=your-token-secret

Manuelle Installation (Alternative)

Wenn Sie den Marktplatz nicht nutzen möchten, registrieren Sie den Server direkt mit claude mcp add. Wiederholen Sie --env für jede Variable, setzen Sie alle Flags vor den Servernamen und verwenden Sie --, um den Start des Befehls zu markieren, den Claude Code ausführen wird:

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

Der Scope bestimmt, wo der Eintrag geschrieben wird:

Scope

Speicherort

Über Git geteilt

Verwendung

local (Standard)

~/.claude.json, auf das aktuelle Projekt beschränkt

Nein

Ausprobieren in einem Repo

user

~/.claude.json, in jedem Projekt verfügbar

Nein

Sie möchten BookStack überall

project

.mcp.json im Repo-Root

Ja

Das gesamte Team sollte es erhalten

Der resultierende Konfigurationseintrag sieht so aus (in .mcp.json für Projekt-Scope oder sonst in ~/.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"
      }
    }
  }
}

Tipp für committete .mcp.json: Claude Code expandiert ${VAR} und ${VAR:-default}-Referenzen in .mcp.json aus der umgebenden Shell. Nutzen Sie dies, um Geheimnisse aus Git fernzuhalten: Setzen Sie "BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}" in der Datei und lassen Sie jeden Entwickler die Variable in seiner Shell exportieren.

MCP-Ressourcen

Bücher und Seiten werden auch als MCP-Ressourcen bereitgestellt, sodass Clients, die Ressourcen durchsuchen (Claude Desktop, MCP Inspector usw.), sie direkt mit @ erwähnen können:

URI-Template

Beschreibung

bookstack://book/{id}

Ein Buch, zurückgegeben als JSON-Metadaten

bookstack://page/{id}

Eine Seite, zurückgegeben als Markdown plus ein JSON-Metadaten-Blob

Beide Templates unterstützen id-Autovervollständigung: Während Sie tippen, durchsucht der Server BookStack und gibt passende IDs zurück, damit Sie sich keine numerischen IDs merken müssen.

Verfügbare Tools

Leseoperationen (immer verfügbar)

Tool

Beschreibung

get_capabilities

Server-Fähigkeiten und Konfiguration

search_content

Suche über alle Inhalte mit Filtern

search_pages

Suche nach Seiten mit optionalem Buch-Filter

get_books / get_book

Bücher auflisten oder Details abrufen

get_pages / get_page

Seiten auflisten oder vollständigen Seiteninhalt abrufen

get_chapters / get_chapter

Kapitel auflisten oder Details abrufen

get_shelves / get_shelf

Regale auflisten oder Details abrufen

get_attachments / get_attachment

Anhänge auflisten oder Details abrufen

get_comments / get_comment

Seitenkommentare auflisten oder abrufen (BookStack v25.11+)

get_recycle_bin

Elemente im Papierkorb auflisten

export_page

Seite als HTML, PDF, Markdown, Klartext oder ZIP exportieren

export_book

Gesamtes Buch exportieren

export_chapter

Kapitel exportieren

get_recent_changes

Kürzlich aktualisierte Inhalte

Schreiboperationen (erfordert BOOKSTACK_ENABLE_WRITE=true)

Tool

Beschreibung

create_book / delete_book

Buch erstellen oder löschen

create_chapter / delete_chapter

Kapitel erstellen oder löschen

create_page

Neue Seite erstellen (HTML oder Markdown)

update_page

Inhalt aktualisieren, umbenennen oder in ein anderes Buch/Kapitel verschieben

delete_page

Seite löschen (wiederherstellbar aus dem Papierkorb)

create_shelf / update_shelf / delete_shelf

Regale verwalten

create_attachment / update_attachment / delete_attachment

Anhänge verwalten

create_comment / update_comment / delete_comment

Seitenkommentare verwalten (v25.11+)

restore_deleted / permanently_delete

Elemente im Papierkorb wiederherstellen oder dauerhaft löschen

BookStack API-Einrichtung

  1. Melden Sie sich als Administrator bei BookStack an

  2. Gehen Sie zu Einstellungen > Benutzer > Benutzer bearbeiten

  3. Stellen Sie sicher, dass der Benutzer die Berechtigung System-API zugreifen hat

  4. Erstellen Sie im Bereich API-Token ein neues Token

  5. Kopieren Sie die Token-ID und das Token-Geheimnis

Sicherheit

  • Schreibvorgänge sind standardmäßig deaktiviert

  • Verwenden Sie HTTPS für Produktionsinstanzen

  • Speichern Sie API-Token sicher (niemals in Git committen)

  • Erwägen Sie einen dedizierten BookStack-Benutzer mit eingeschränkten Berechtigungen

Entwicklung

npm run dev          # Hot reload with tsx
npm run type-check   # Type checking only
npm run build        # Production build

Lizenz

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