BookStack MCP Server – Installationsanleitung
Kontext
Diese Anleitung dokumentiert die Einrichtung des bookstack-mcp-server (npm-Paket von pnocera), der Claude über das Model Context Protocol direkten Zugriff auf diese BookStack-Instanz gibt.
Voraussetzungen
- Laufende BookStack-Instanz mit Zugriff auf einen Benutzer-Account
- Die Rolle des Accounts benötigt die Berechtigung "Access system API" (BookStack: Settings → Roles → <Rolle> → Bereich "System")
- Bun-Runtime ≥ 1.1.0 installiert und im PATH
- Das npm-Paket liefert kein kompiliertes JavaScript aus, sondern startet die TypeScript-Quelle direkt über das Shebang
#!/usr/bin/env bun. Node/npx allein reicht nicht aus – Bun muss auf der Maschine vorhanden sein. - Prüfen:
bun --version - Installation z. B. via winget:
winget install Oven-sh.Bun
- Das npm-Paket liefert kein kompiliertes JavaScript aus, sondern startet die TypeScript-Quelle direkt über das Shebang
- Claude Code CLI installiert
Schritt 1: API-Token in BookStack erzeugen
- In BookStack einloggen.
- Oben rechts auf das Profil-Icon klicken → Edit Profile.
- Tab API Tokens öffnen → Create Token.
- Namen vergeben, Token erzeugen.
- Token-ID und Token-Secret notieren (Secret wird nur einmal angezeigt).
- Für die Konfiguration werden beide Teile mit Doppelpunkt kombiniert:
token_id:token_secret.
Schritt 2: MCP-Server zu Claude Code hinzufügen
claude mcp add bookstack --scope user \
--env BOOKSTACK_BASE_URL=https://<deine-bookstack-domain>/api \
--env BOOKSTACK_API_TOKEN=<token_id>:<token_secret> \
--env MCP_TRANSPORT=stdio \
-- npx -y bookstack-mcp-server
Wichtige Punkte:
BOOKSTACK_BASE_URLmuss zwingend auf/apienden – nicht nur die reine Domain angeben.MCP_TRANSPORT=stdioist notwendig. Ohne diese Variable startet der Server im HTTP-Modus, verlangt zusätzlich einenMCP_AUTH_TOKEN(separates Bearer-Secret für eingehende Verbindungen, z. B. viaopenssl rand -hex 32) und einen freien Port (Default3000).--scope userlegt den Server user-weit an, nicht nur projektbezogen.
Schritt 3: Verbindung prüfen
- In Claude Code
/mcpausführen → Serverbookstacksollte als verbunden angezeigt werden. - Testaufruf, z. B.
bookstack_searchoderbookstack_books_list→ sollte JSON-Daten liefern, kein HTML.
Troubleshooting
| Symptom | Ursache | Fix |
|---|---|---|
| Tool liefert rohes HTML (Login-Seite) statt JSON | BOOKSTACK_BASE_URL ohne /api-Suffix → Anfrage landet auf normaler Web-Route statt REST-API |
URL um /api ergänzen |
MCP error -32600: Requested resource not found bei bookstack_system_info |
Einzelnes Tool/Endpoint-Problem, nicht grundsätzlich | Mit anderem Tool (z. B. bookstack_search) erneut testen |
| 401 / Auth-Fehler | BOOKSTACK_API_TOKEN nicht im Format token_id:token_secret |
Token in BookStack neu erzeugen, beide Teile mit : kombinieren |
Änderung an ~/.claude.json wirkt nicht |
Laufender stdio-Prozess wurde mit alten Env-Variablen gestartet | Claude-Code-Session neu starten |
| Server startet gar nicht (nur im HTTP-Modus relevant) | BOOKSTACK_API_TOKEN fehlt komplett |
Env-Variable setzen, Prozess neu starten |
Sicherheitshinweise
- Der BookStack-API-Token gewährt API-Zugriff im vollen Umfang der Rolle des Accounts, für den er erzeugt wurde (ggf. inkl. Create/Update/Delete auf Books/Pages/Users) – als Secret behandeln, nicht in Klartext-Notizen, Tickets oder Chats teilen.
~/.claude.jsonliegt lokal und unverschlüsselt auf der Maschine; Zugriff entsprechend einschränken.- Falls statt Stdio der HTTP-Transport genutzt wird: zusätzlich
MCP_AUTH_TOKENgenerieren (z. B.openssl rand -hex 32). Dieser ist nicht identisch mit dem BookStack-Token und schützt den eingehenden/message-Endpoint.
Alternative: offizielle Bun-Variante
Das Paket-README empfiehlt eigentlich bunx statt npx:
claude mcp add bookstack --scope user \
--env BOOKSTACK_BASE_URL=https://<domain>/api \
--env BOOKSTACK_API_TOKEN=<token_id>:<token_secret> \
--env MCP_TRANSPORT=stdio \
-- bunx bookstack-mcp-server
In der bestehenden Konfiguration funktioniert auch npx -y bookstack-mcp-server, weil npm auf Windows das Shebang (#!/usr/bin/env bun) im generierten Wrapper-Skript berücksichtigt und automatisch bun aufruft, sofern es im PATH gefunden wird.
Andere MCP-Server-Implementierungen für BookStack (falls Alternative gewünscht)
pnocera/bookstack-mcp-server(aktuell genutzt; npm:bookstack-mcp-server; 59 Tools; benötigt Bun) — https://github.com/pnocera/bookstack-mcp-serverh4sht/bookstack-mcp(25 Tools; reines Node.js, kein Bun nötig; Installation:claude mcp add bookstack -- npx github:h4sht/bookstack-mcp) — https://github.com/h4sht/bookstack-mcpoculairmedia/Bookstack-MCP(Python/FastMCP, Fokus u. a. auf Bild-Galerie-Workflows)- weitere Optionen:
yellowgg2/mcp-bookstack,pacyworld/bookstack-mcp(Multi-Instanz),Derron-Knox/bookstack-mcp-server
Quellen
- pnocera/bookstack-mcp-server – README
- h4sht/bookstack-mcp – README
- BookStack – Hacking BookStack / API-Doku
Erstellt von Claude Sonnet 5 (claude-sonnet-5) via API, ausgehend von der Obsidian-Notiz Themes/BookStack MCP/2026-09-17 BookStack MCP Installationsanleitung.md.