Labsco
MCP SERVER

Bookstack MCP

by oculairmedia

Create, search and edit BookStack content — including the image gallery — from an assistant.

Team Wikis & Documentation Platforms
Summary
The image gallery is the part most BookStack integrations skip, and it is the part this one is built around.

Uploading an image by URL is where authoring usually breaks down, so the tool streams the remote file under a size and time limit and refuses to fetch anything on a private or loopback address. The rest of the surface is deliberately consolidated — one CRUD tool across four entity types rather than sixteen near-identical ones.

What it is

A FastMCP server for a BookStack wiki. It consolidates the API into a handful of tools covering books, shelves, chapters and pages, full-text search, batch edits, and the image gallery that authoring depends on.

What you get
  • bookstack_content_crud — one interface for creating, reading, updating and deleting books, bookshelves, chapters and pages
  • bookstack_list_content — list and filter content entities with pagination
  • bookstack_search — full-text search across the instance
  • bookstack_batch_operations — bulk create, update and delete
  • bookstack_manage_images — create, read, update, delete and list gallery images; accepts base64, a data URL, or an HTTP(S) URL it fetches for you
  • bookstack_search_images — find images by extension, date, size and usage
  • URL uploads are fetched with a 30 second timeout and a 50 MB ceiling, restricted to HTTP and HTTPS, with loopback, private, link-local and redirect-based internal targets blocked
  • MIME validation against the formats BookStack accepts: jpeg, png, gif, webp, bmp, tiff and svg+xml
Requirements

A BookStack instance and an API token belonging to a user who can view and manage the image gallery: BS_URL, BS_TOKEN_ID and BS_TOKEN_SECRET. Python with the FastMCP server's requirements installed, launched as a module. Image uploads need a real page context — pass uploaded_to with a page id, since BookStack rejects uploads without one.

Setup effort

One command plus a key — pip install -r fastmcp_server/requirements.txt, then supply credentials