Skip to main content
Glama
ttpears

BookStack MCP Server

by ttpears

Servidor MCP de BookStack

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

Un servidor del Protocolo de Contexto de Modelo (MCP) que brinda a los asistentes de IA acceso completo a su documentación de BookStack: buscar, leer, crear y gestionar contenido.

npx bookstack-mcp

Características

  • 20 herramientas de solo lectura + 18 herramientas de escritura para una cobertura completa de la API de BookStack

  • Libros, capítulos, páginas, estantes, archivos adjuntos y comentarios: CRUD completo

  • Soporte para papelera de reciclaje: restaure o elimine permanentemente contenido eliminado de forma lógica

  • Validación de entrada con seguridad de tipos mediante Zod (coacciona automáticamente parámetros de cadena/número para una amplia compatibilidad con clientes)

  • URLs incrustadas y vistas previas de contenido en todas las respuestas

  • Alternativa de exportación a Markdown para páginas creadas en HTML, para que los clientes de IA siempre obtengan contenido utilizable

  • Operaciones de escritura deshabilitadas por defecto por seguridad

  • Funciona con Claude Desktop, Claude Code, LibreChat y cualquier cliente compatible con MCP

  • Transportes Stdio y HTTP transmitible

Related MCP server: PDF RAG MCP Server

Inicio rápido

Instalar desde npm

npx bookstack-mcp

O clonar y compilar

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

Variables de entorno

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

Advertencia de seguridad: BOOKSTACK_INSECURE_SKIP_TLS_VERIFY=true deshabilita la verificación de certificados TLS para las solicitudes salientes a BookStack. Úselo solo para certificados autofirmados en una red local de confianza; las conexiones se vuelven vulnerables a ataques MITM. El servidor registra una línea de WARNING al inicio siempre que esto esté habilitado.

Configuración del cliente

Claude Desktop

Agréguelo a su configuración de Claude Desktop:

{
  "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, usuario único)

Agréguelo a su librechat.yaml:

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 (HTTP transmitible, recomendado para producción / Docker)

Ejecute el servidor como un servicio HTTP de larga duración y apunte LibreChat a la URL. Esta es la configuración correcta para implementaciones multiusuario o en contenedores.

Inicie el servidor en modo HTTP:

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

Luego configure LibreChat:

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

Cambio importante en la versión 3.0.0: se ha eliminado el transporte obsoleto HTTP+SSE (GET /sse + POST /messages). El HTTP transmitible en /mcp ya utiliza SSE para respuestas en streaming y es el único transporte HTTP en los clientes MCP actuales. Si utiliza un cliente antiguo que necesita los endpoints heredados, fije la versión a bookstack-mcp@2.x.

Variables de entorno de transporte HTTP

Variable

Predeterminado

Descripción

MCP_TRANSPORT

stdio

Establézcalo en http para habilitar el servidor HTTP

MCP_HTTP_PORT

8080

Puerto en el que escuchar

MCP_HTTP_HOST

127.0.0.1

Dirección de enlace. Loopback por defecto por seguridad

MCP_HTTP_ALLOWED_HOSTS

(solo loopback)

Lista blanca separada por comas de nombres de host en el encabezado Host para protección contra rebinding de DNS. Requerido al enlazar a una dirección que no sea loopback

MCP_HTTP_PATH

/mcp

Endpoint HTTP transmitible

Al enlazar a 0.0.0.0 (por ejemplo, dentro de un contenedor accesible desde otros servicios), establezca MCP_HTTP_ALLOWED_HOSTS con los nombres de host que LibreChat utilizará para llegar a este servidor, p. ej. MCP_HTTP_ALLOWED_HOSTS=bookstack-mcp,bookstack-mcp.internal.

Reinicie LibreChat después de realizar cambios en la configuración.

Claude Code (CLI)

La ruta recomendada es el mercado ttpears/claude-plugins, que incluye el manifiesto del plugin de este repositorio (.claude-plugin/plugin.json):

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

Luego, establezca las variables de entorno BOOKSTACK_* en su shell para que el servidor MCP del plugin pueda autenticarse:

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

Instalación manual (alternativa)

Si prefiere no usar el mercado, registre el servidor directamente con claude mcp add. Repita --env para cada variable, coloque todas las banderas antes del nombre del servidor y use -- para marcar el inicio del comando que Claude Code ejecutará:

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

El ámbito (scope) elige dónde se escribe la entrada:

Ámbito

Dónde reside

Compartido vía git

Úselo cuando

local (predeterminado)

~/.claude.json, limitado al proyecto actual

No

Esté probando en un repositorio

user

~/.claude.json, disponible en cada proyecto

No

Quiera bookstack en todas partes

project

.mcp.json en la raíz del repositorio

Todo el equipo deba tenerlo

La entrada de configuración resultante se ve así (en .mcp.json para el ámbito de proyecto, o ~/.claude.json en caso contrario):

{
  "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"
      }
    }
  }
}

Consejo para .mcp.json confirmado: Claude Code expande las referencias ${VAR} y ${VAR:-default} en .mcp.json desde el shell circundante. Úselo para mantener los secretos fuera de git: establezca "BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}" en el archivo y haga que cada desarrollador exporte la variable en su shell.

Recursos MCP

Los libros y las páginas también se exponen como recursos MCP, por lo que los clientes que exploran recursos (Claude Desktop, MCP Inspector, etc.) pueden mencionarlos directamente con @:

Plantilla URI

Descripción

bookstack://book/{id}

Un libro, devuelto como metadatos JSON

bookstack://page/{id}

Una página, devuelta como markdown más un blob de metadatos JSON

Ambas plantillas admiten autocompletado de id: a medida que escribe, el servidor busca en BookStack y devuelve los IDs coincidentes para que no tenga que recordar los IDs numéricos manualmente.

Herramientas disponibles

Operaciones de lectura (siempre disponibles)

Herramienta

Descripción

get_capabilities

Capacidades y configuración del servidor

search_content

Buscar en todo el contenido con filtrado

search_pages

Buscar páginas con filtrado opcional de libros

get_books / get_book

Listar u obtener detalles de libros

get_pages / get_page

Listar u obtener el contenido completo de la página

get_chapters / get_chapter

Listar u obtener detalles del capítulo

get_shelves / get_shelf

Listar u obtener detalles del estante

get_attachments / get_attachment

Listar u obtener detalles del archivo adjunto

get_comments / get_comment

Listar u obtener comentarios de la página (BookStack v25.11+)

get_recycle_bin

Listar elementos en la papelera de reciclaje

export_page

Exportar página como HTML, PDF, Markdown, texto plano o ZIP

export_book

Exportar libro completo

export_chapter

Exportar capítulo

get_recent_changes

Contenido actualizado recientemente

Operaciones de escritura (requiere BOOKSTACK_ENABLE_WRITE=true)

Herramienta

Descripción

create_book / delete_book

Crear o eliminar un libro

create_chapter / delete_chapter

Crear o eliminar un capítulo

create_page

Crear una nueva página (HTML o Markdown)

update_page

Actualizar contenido, renombrar o mover a un libro/capítulo diferente

delete_page

Eliminar una página (recuperable desde la papelera de reciclaje)

create_shelf / update_shelf / delete_shelf

Gestionar estantes

create_attachment / update_attachment / delete_attachment

Gestionar archivos adjuntos

create_comment / update_comment / delete_comment

Gestionar comentarios de página (v25.11+)

restore_deleted / permanently_delete

Restaurar o destruir permanentemente elementos en la papelera de reciclaje

Configuración de la API de BookStack

  1. Inicie sesión en BookStack como administrador

  2. Vaya a Configuración > Usuarios > Editar su usuario

  3. Asegúrese de que el usuario tenga el permiso Acceder a la API del sistema

  4. En la sección Tokens de API, cree un nuevo token

  5. Copie el ID del token y el secreto del token

Seguridad

  • Las operaciones de escritura están deshabilitadas por defecto

  • Utilice HTTPS para instancias de producción

  • Almacene los tokens de API de forma segura (nunca los confirme en git)

  • Considere un usuario de BookStack dedicado con permisos limitados

Desarrollo

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

Licencia

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