xwiki-mcp

Servidor MCP que expone una instancia de XWiki a través de HTTP (Streamable HTTP transport).

Documentación

xwiki-mcp

Servidor MCP (Go, mcp-go v0.55.0) que expone una instancia de XWiki a través de HTTP (transporte HTTP Streamable).

Flujo: el LLM envía su token de usuario de XWiki en la cabecera HTTP -> xwiki-mcp se autentica en la API REST de XWiki en nombre del usuario -> XWiki.

Enlaces

Autenticación

El cliente envía su token en cada solicitud en uno de:

  • X-XWiki-Token: <token>
  • Authorization: Bearer <token>

Si no está presente ninguno, se utiliza el token predeterminado configurado al inicio (--token / XWIKI_TOKEN).

Configuración

BanderaEnvPredeterminadoDescripción
-addrXWIKI_MCP_ADDRlocalhost:8080Dirección de escucha HTTP
-xwiki-urlXWIKI_BASE_URL— (requerido)Base REST de XWiki, p. ej. https://xwiki.example.com/rest/wikis/xwiki
-tokenXWIKI_TOKENToken predeterminado de respaldo
-allow-deleteXWIKI_MCP_ALLOW_DELETEfalseRegistrar la herramienta delete_page
-timeoutXWIKI_MCP_TIMEOUT60sTiempo de espera de solicitud HTTP de XWiki

docker-compose

services:
  xwiki-mcp:
    image: lnikonl/xwiki-mcp
    container_name: xwiki-mcp
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      XWIKI_BASE_URL: https://xwiki.example.com/rest/wikis/xwiki
      XWIKI_MCP_ADDR: :8080
      # Default token used when the client sends no X-XWiki-Token / Authorization header
      XWIKI_TOKEN: xwiki:XWiki.bot^XWiki.OIDC.ConsentClass[0]/<secret>
      # Enable the delete_page tool (off by default)
      XWIKI_MCP_ALLOW_DELETE: "false"
      XWIKI_MCP_TIMEOUT: 60s

Descargar binarios

Los binarios precompilados para Linux, macOS y Windows se publican en la página de lanzamientos. Los enlaces a continuación siempre apuntan a la última versión — no se necesita buscar la versión.

SO / ArquitecturaRecurso
Linux x86_64xwiki-mcp_linux_amd64.tar.gz
Linux arm64xwiki-mcp_linux_arm64.tar.gz
macOS Intelxwiki-mcp_darwin_amd64.tar.gz
macOS Apple Siliconxwiki-mcp_darwin_arm64.tar.gz
Windows x86_64xwiki-mcp_windows_amd64.zip

Cada archivo contiene el binario, LICENSE y README.md. Un archivo SHA256SUMS con sumas de verificación se adjunta a cada versión.

Linux / macOS

OS=linux        # linux | darwin
ARCH=amd64      # amd64 | arm64

curl -fL -o xwiki-mcp.tar.gz \
  "https://github.com/lnikonl/xwiki-mcp/releases/latest/download/xwiki-mcp_${OS}_${ARCH}.tar.gz"
tar -xzf xwiki-mcp.tar.gz
cd xwiki-mcp

Ejecutar

./xwiki-mcp \
  -addr :8080 \
  -xwiki-url https://xwiki.example.com/rest/wikis/xwiki

ejemplo de opencode

~/.config/opencode/opencode.jsonc

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xwiki-mcp": {
      "type": "remote",
      "url": "http://docker-host-ip:8080/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer xwiki:XWiki.bot-opencode^XWiki.OIDC.ConsentClass[0]/<SECRET>"
      }
    }
  }
}

prompt

OpenCode 1 OpenCode 2

resultado en xwiki

XWiki 1

Herramientas

  • list_spaces — listar todos los espacios (anidados)
  • list_pages — listar páginas en un espacio; espacios anidados como Manuals/ansible o Manuals.ansible
  • get_page — leer página (título, contenido, versión, autor, sintaxis)
  • get_page_version — leer una revisión específica de página, p. ej. 2.1
  • list_page_children — páginas hijas de una página
  • save_page — crear/actualizar página (PUT, idempotente; contenido en sintaxis XWiki 2.1)
  • search_pages — búsqueda de texto completo
  • get_page_history — versiones de página
  • list_attachments — adjuntos de página
  • upload_attachment — subir un archivo codificado en base64 (incluidas imágenes) como adjunto de página
  • download_attachment — descargar un adjunto; las imágenes se devuelven como contenido de imagen renderizado, otros archivos como texto base64
  • list_comments / add_comment — comentarios de página (autor establecido en el servidor)
  • get_modifications — últimas modificaciones del wiki (cambios recientes)
  • list_tags — todas las etiquetas definidas en el wiki
  • set_page_tags — asignar etiquetas a una página (modo replace/add; reemplaza o fusiona el conjunto de etiquetas)
  • get_pages_by_tag — páginas etiquetadas con cualquiera de las etiquetas dadas
  • delete_page, delete_attachment — solo cuando -allow-delete está configurado