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
- Código fuente: https://github.com/lnikonl/xwiki-mcp
- Problemas: https://github.com/lnikonl/xwiki-mcp/issues
- Docker Hub: https://hub.docker.com/r/lnikonl/xwiki-mcp
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
| Bandera | Env | Predeterminado | Descripción |
|---|---|---|---|
-addr | XWIKI_MCP_ADDR | localhost:8080 | Dirección de escucha HTTP |
-xwiki-url | XWIKI_BASE_URL | — (requerido) | Base REST de XWiki, p. ej. https://xwiki.example.com/rest/wikis/xwiki |
-token | XWIKI_TOKEN | — | Token predeterminado de respaldo |
-allow-delete | XWIKI_MCP_ALLOW_DELETE | false | Registrar la herramienta delete_page |
-timeout | XWIKI_MCP_TIMEOUT | 60s | Tiempo 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 / Arquitectura | Recurso |
|---|---|
| Linux x86_64 | xwiki-mcp_linux_amd64.tar.gz |
| Linux arm64 | xwiki-mcp_linux_arm64.tar.gz |
| macOS Intel | xwiki-mcp_darwin_amd64.tar.gz |
| macOS Apple Silicon | xwiki-mcp_darwin_arm64.tar.gz |
| Windows x86_64 | xwiki-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
resultado en xwiki
Herramientas
list_spaces— listar todos los espacios (anidados)list_pages— listar páginas en un espacio; espacios anidados comoManuals/ansibleoManuals.ansibleget_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.1list_page_children— páginas hijas de una páginasave_page— crear/actualizar página (PUT, idempotente; contenido en sintaxis XWiki 2.1)search_pages— búsqueda de texto completoget_page_history— versiones de páginalist_attachments— adjuntos de páginaupload_attachment— subir un archivo codificado en base64 (incluidas imágenes) como adjunto de páginadownload_attachment— descargar un adjunto; las imágenes se devuelven como contenido de imagen renderizado, otros archivos como texto base64list_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 wikiset_page_tags— asignar etiquetas a una página (modoreplace/add; reemplaza o fusiona el conjunto de etiquetas)get_pages_by_tag— páginas etiquetadas con cualquiera de las etiquetas dadasdelete_page,delete_attachment— solo cuando-allow-deleteestá configurado