¿Qué es MCP y por qué revoluciona la interacción con Liferay?
El Model Context Protocol (MCP) es un protocolo abierto que permite a los asistentes de IA como Claude, Cursor o VS Code Copilot conectarse a sistemas externos de forma estandarizada. En lugar de limitarse a leer y escribir código, MCP permite que estos asistentes interactúen directamente con APIs, bases de datos y plataformas empresariales como Liferay DXP.
Desde la versión Liferay DXP/CE 2025.Q4+, la plataforma incluye un servidor MCP integrado que expone toda la API REST de Liferay a los asistentes de IA. Esto significa que puedes gestionar tu portal completo mediante comandos en lenguaje natural, desde la creación de contenido web hasta la administración de pedidos de comercio electrónico.
Capacidades del MCP Server de Liferay
El servidor MCP de Liferay permite a los asistentes de IA realizar operaciones como:
- •Consultar y gestionar contenido web: artículos, blogs, documentos y videos externos
- •Administrar usuarios y roles: crear, modificar y consultar perfiles de usuario
- •Gestionar objetos personalizados: operar con custom objects y sus datos
- •Operar con workflows: consultar y gestionar flujos de aprobación
- •Administrar taxonomías y categorías: organizar el contenido del portal
- •Gestionar comercio electrónico: catálogo, pedidos, inventario y envíos
- •Consultar formularios y respuestas: acceder a datos de formularios dinámicos
- •Administrar la configuración del portal: ajustar parámetros de instancia
Las 3 herramientas fundamentales del servidor MCP
El servidor MCP de Liferay expone tres herramientas que siguen un flujo de descubrimiento progresivo, permitiendo al asistente de IA explorar y utilizar las APIs disponibles:
1. get-openapis: Descubrimiento de APIs
Esta herramienta lista todas las APIs OpenAPI disponibles en la instancia de Liferay. Es el punto de partida para que el asistente entienda qué capacidades tiene a su disposición. Devuelve un catálogo completo de las APIs organizadas por categoría: contenido, usuarios, comercio, workflows, etc.
2. get-openapi: Especificación detallada
Una vez identificada la API necesaria, esta herramienta descarga la especificación OpenAPI completa en formato YAML. Esto permite al asistente comprender los endpoints disponibles, sus parámetros, modelos de datos y tipos de respuesta. Es el equivalente a que el asistente lea la documentación técnica de la API.
3. call-http-endpoint: Ejecución de operaciones
La herramienta más potente, que ejecuta llamadas reales a los endpoints de la API. Acepta tres parámetros principales:
- •method: El método HTTP (GET, POST, PUT, DELETE, PATCH)
- •path: La ruta del endpoint relativa a /o
- •payload: El cuerpo de la petición en formato JSON (para POST/PUT/PATCH)
Ecosistema completo de APIs disponibles
El servidor MCP expone más de 50 APIs diferentes organizadas por categorías funcionales. A continuación, exploramos las más relevantes:
APIs de contenido y CMS
Para la gestión de contenido web, Liferay ofrece un conjunto robusto de APIs:
- •Headless CMS (/o/headless-cms/v1.0/openapi.yaml): API principal para gestión de contenido estructurado
- •Headless Delivery (/o/headless-delivery/v1.0/openapi.yaml): Entrega de contenido para aplicaciones headless
- •CMS Blogs (/o/cms/blogs/openapi.yaml): Gestión específica de blogs y entradas
- •CMS Basic Web Contents (/o/cms/basic-web-contents/openapi.yaml): Artículos web básicos
- •CMS Basic Documents (/o/cms/basic-documents/openapi.yaml): Gestión de documentos y archivos
APIs de usuarios y administración
Para la gestión de usuarios, roles y configuración del portal:
- •Headless Admin User (/o/headless-admin-user/v1.0/openapi.yaml): CRUD completo de usuarios
- •Headless Admin Configuration (/o/headless-admin-configuration/v1.0/openapi.yaml): Configuración de instancia
- •SCIM (/o/scim/v1.0/openapi.yaml): Gestión de identidades según estándar SCIM
- •SAML Admin (/o/saml-admin/v1.0/openapi.yaml): Configuración de Single Sign-On
APIs de workflows y procesos
Para la gestión de flujos de aprobación y procesos de negocio:
- •Headless Admin Workflow (/o/headless-admin-workflow/v1.0/openapi.yaml): Gestión de workflows y tareas
- •Portal Workflow Metrics (/o/portal-workflow-metrics/v1.0/openapi.yaml): Métricas y análisis de procesos
APIs de comercio electrónico
Liferay Commerce expone un conjunto extenso de APIs para gestión completa de tiendas online:
- •Commerce Admin Catalog (/o/headless-commerce-admin-catalog/v1.0/openapi.yaml): Productos, categorías y especificaciones
- •Commerce Admin Order (/o/headless-commerce-admin-order/v1.0/openapi.yaml): Gestión de pedidos
- •Commerce Admin Inventory (/o/headless-commerce-admin-inventory/v1.0/openapi.yaml): Control de stock
- •Commerce Admin Pricing v2 (/o/headless-commerce-admin-pricing/v2.0/openapi.yaml): Precios y promociones
- •Commerce Delivery Cart (/o/headless-commerce-delivery-cart/v1.0/openapi.yaml): Carritos de compra
- •Commerce Admin Shipment (/o/headless-commerce-admin-shipment/v1.0/openapi.yaml): Gestión de envíos
APIs de objetos personalizados
Para trabajar con los custom objects de Liferay:
- •Object Admin (/o/object-admin/v1.0/openapi.yaml): Definición y configuración de objetos
- •Headless Object (/o/headless-object/v1.0/openapi.yaml): Operaciones CRUD sobre objetos personalizados
Habilitación del servidor MCP en Liferay
El servidor MCP es una funcionalidad beta que requiere activar el feature flag LPD-63311. Existen dos métodos para habilitarlo:
Opción 1: Activación desde la interfaz de administración
Esta es la forma más directa y no requiere reinicio del servidor:
- •Accede al Menú Global → Panel de Control → Configuración de la Instancia
- •En la sección Plataforma, haz clic en Feature Flags
- •Selecciona la pestaña Beta
- •Busca el flag LPD-63311 (MCP Server) y actívalo
Los cambios realizados desde la interfaz se aplican de inmediato, sin necesidad de reiniciar Liferay.
Opción 2: Configuración mediante portal-ext.properties
Para entornos donde prefieras configuración como código, añade esta línea al archivo portal-ext.properties:
feature.flag.LPD-63311=true
Tras modificar portal-ext.properties es necesario reiniciar Liferay para que el cambio surta efecto.
Verificación de la activación
Una vez habilitado el feature flag, el endpoint MCP estará disponible en:
https://tu-instancia-liferay.com/o/mcp
Puedes verificar que el servidor está activo realizando una petición de inicialización:
curl -X POST https://tu-instancia-liferay.com/o/mcp \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream, application/json" \
-H "Authorization: Basic TU_TOKEN_BASE64" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
Si el servidor responde con un JSON conteniendo serverInfo y una cabecera mcp-session-id, el servidor MCP está correctamente configurado y listo para usar.
Configuración paso a paso en Claude Code
Claude Code es uno de los clientes MCP más populares. Su configuración requiere un enfoque específico mediante CLI.
Requisitos previos
Antes de comenzar, asegúrate de tener:
- •Liferay DXP con el feature flag LPD-63311 activado
- •Un usuario de Liferay con permisos de API (autenticación Basic o OAuth2)
- •Claude Code CLI instalado en tu sistema
Paso 1: Generación del token de autenticación
Codifica tus credenciales de Liferay en formato Base64:
echo -n "usuario@empresa.com:contraseña" | base64
Guarda el resultado, lo necesitarás en el siguiente paso.
Paso 2: Registro del servidor MCP
Importante: En Claude Code, los servidores MCP con transporte HTTP deben registrarse mediante el comando CLI claude mcp add. La edición manual de settings.json con "type": "http" no funciona, ya que Claude Code ignora silenciosamente esas entradas.
claude mcp add \
--transport http \
--scope user \
--header "Authorization: Basic TU_TOKEN_BASE64" \
-- liferay https://tu-instancia-liferay.com/o/mcp
Desglose de las opciones:
- •--transport http: Indica que el servidor usa Streamable HTTP (no stdio)
- •--scope user: Registra el servidor a nivel de usuario en ~/.claude.json, disponible en todos los proyectos. Usa local o project para limitar el alcance
- •--header: Cabecera de autenticación enviada en cada petición
- •--: Separador necesario antes del nombre y la URL cuando se usan flags como --header
Paso 3: Verificación de la conexión
Comprueba que el servidor aparece en la lista y está conectado:
claude mcp list
Deberías ver una salida similar a:
liferay: https://tu-instancia-liferay.com/o/mcp - ✓ Connected
También puedes verificar la conexión dentro de una sesión interactiva preguntando al asistente:
¿Qué APIs de Liferay tengo disponibles?
Gestión del servidor MCP
Comandos útiles para administrar la configuración:
# Ver la configuración actual
claude mcp get liferay
# Eliminar el servidor
claude mcp remove liferay --scope user
Configuración en otros clientes MCP
Cursor y VS Code
En estos editores sí se puede usar la configuración JSON directa en el fichero de MCP del editor:
# Reconfigurar (eliminar y volver a añadir)
claude mcp remove liferay --scope user
claude mcp add --transport http --scope user \
--header "Authorization: Basic NUEVO_TOKEN" \
-- liferay https://tu-instancia-liferay.com/o/mcp
{
"mcpServers": {
"liferay": {
"url": "https://tu-instancia-liferay.com/o/mcp",
"type": "http",
"headers": {
"Authorization": "Basic TU_TOKEN_BASE64"
}
}
}
}
Cada cliente MCP tiene su propio formato de configuración. Lo que funciona en Cursor o VS Code (JSON con "type": "http") no funciona en Claude Code, donde es necesario usar el CLI.
Detalles técnicos del protocolo
Especificaciones del servidor
Transporte: Streamable HTTP (MCP sobre HTTP con Server-Sent Events)
Versión del protocolo: 2024-11-05
Servidor: Java SDK MCP Server v0.15.0
Capabilities: tools (con listChanged), prompts (con listChanged), logging
Flujo de conexión
La comunicación con el servidor MCP sigue este flujo:
- •POST /o/mcp con method: initialize → Devuelve mcp-session-id en headers
- •POST /o/mcp con notifications/initialized (usando session-id)
- •POST /o/mcp con tools/list → Lista las 3 herramientas disponibles
- •POST /o/mcp con tools/call → Ejecuta herramientas específicas
Headers HTTP requeridos
Content-Type: application/json
Accept: text/event-stream, application/json
Authorization: Basic <token>
mcp-session-id: <session-id> (tras initialize)
Nota sobre compatibilidad
El servidor responde con Content-Type: text/event-stream para las llamadas a herramientas (formato SSE), pero con application/json para el initialize. Algunos clientes MCP pueden tener problemas con esta diferencia. Si el cliente no conecta automáticamente, verifica que soporte el transporte Streamable HTTP del protocolo MCP.
Casos de uso prácticos con IA
1. Gestión de contenido web con comandos naturales
Un editor de contenido puede pedirle al asistente:
"Crea un artículo web en el site principal sobre las novedades del mes de marzo, categorízalo como 'Noticias' y publícalo inmediatamente"
El asistente usará la API de Headless Delivery para crear el artículo, asignar la categoría y cambiar el estado a publicado, todo en una sola operación.
2. Administración automatizada de usuarios
Un administrador puede solicitar:
"Lista todos los usuarios del rol Administrador creados en los últimos 30 días"
El asistente consultará la API de Headless Admin User con los filtros apropiados y presentará los resultados en formato legible.
3. Gestión de workflows y aprobaciones
Para supervisar procesos de negocio:
"¿Qué tareas de workflow están pendientes de aprobación en el departamento de marketing?"
El asistente consultará la API de Admin Workflow, filtrará por departamento y mostrará las tareas pendientes con sus detalles.
4. Operaciones de comercio electrónico
Un gestor de tienda puede preguntar:
"Muestra los pedidos del último mes con estado pendiente y valor superior a 500€"
El asistente accederá a Commerce Admin Order, aplicará los filtros necesarios y presentará un resumen ejecutivo de los pedidos.
5. Desarrollo y depuración acelerados
Un desarrollador puede solicitar:
"Muestra la definición completa del objeto personalizado 'Proyectos' incluyendo todos sus campos y relaciones"
El asistente consultará Object Admin para obtener el esquema completo, facilitando el desarrollo sin necesidad de navegar por la interfaz de administración.
Consideraciones de seguridad
Al integrar asistentes de IA con Liferay mediante MCP, es fundamental seguir estas mejores prácticas de seguridad:
- •Usar siempre HTTPS: La conexión al servidor MCP debe realizarse exclusivamente mediante HTTPS para proteger las credenciales y los datos en tránsito
- •No exponer credenciales en repositorios: Nunca incluyas tokens o contraseñas en archivos de configuración versionados. Usa variables de entorno o gestores de secretos
- •Crear usuarios específicos para MCP: En lugar de usar cuentas de administrador, crea usuarios dedicados con los permisos mínimos necesarios para las operaciones que realizará el asistente
- •Rotar credenciales periódicamente: Establece una política de rotación de tokens y contraseñas, especialmente si múltiples desarrolladores usan la integración
- •Auditar las operaciones: Aprovecha el sistema de logging de Liferay para monitorizar las acciones realizadas a través del servidor MCP
- •Limitar el alcance por IP: Si es posible, restringe el acceso al endpoint MCP desde rangos de IP específicos
Las credenciales configuradas en settings.json o ~/.claude.json son locales al equipo del desarrollador y no se sincronizan automáticamente.
Conclusión y próximos pasos
El servidor MCP de Liferay representa un salto cualitativo en la forma de interactuar con la plataforma. Al permitir que asistentes de IA accedan directamente a las APIs, se abre un mundo de posibilidades para automatización, desarrollo acelerado y gestión más eficiente del portal.
La integración con Claude Code, Cursor y otros clientes MCP convierte tareas complejas que requerían múltiples pasos en la interfaz de administración en comandos simples en lenguaje natural. Esto no solo mejora la productividad, sino que también reduce la curva de aprendizaje para nuevos usuarios de Liferay.
Para comenzar a explorar el servidor MCP:
- •Habilita el feature flag LPD-63311 en tu instancia de Liferay
- •Configura Claude Code siguiendo los pasos de esta guía
- •Experimenta con comandos simples de consulta antes de operaciones de escritura
- •Documenta los prompts que mejor funcionen para tu equipo
- •Explora gradualmente las diferentes APIs disponibles según tus necesidades
¿Necesitas ayuda para implementar el servidor MCP en tu proyecto Liferay? En JULDITEC somos expertos en Liferay DXP y podemos ayudarte a aprovechar al máximo esta y otras funcionalidades avanzadas de la plataforma. Contáctanos para una consultoría personalizada.
Referencias y recursos adicionales
- •Documentación oficial de Liferay
- •Especificación del Model Context Protocol
- •Documentación de Claude Code CLI
- •Repositorio oficial de MCP en GitHub
