MCP - Model Context Protocol for Joomla!

Un plugin de Joomla que proporciona una API basada en tareas para gestionar contenido y conectarse con IA, automatización de flujos de trabajo y herramientas internas.

Documentación

MCP - Model Context Protocol para Joomla!

Joomla License Version

MCP es un plugin de sistema ligero y potente para Joomla que proporciona un Model Context Protocol —una API simple basada en tareas para gestionar contenido. Actúa como un puente optimizado entre tu sitio web Joomla y el mundo moderno de la IA, la automatización de flujos de trabajo y las herramientas internas. Obtén más información en Model Context Protocol.

El Problema

La API REST integrada de Joomla es completa, pero su complejidad puede ser un obstáculo para la integración rápida. Los agentes de IA modernos y las plataformas de automatización de flujos de trabajo prosperan con "herramientas" o endpoints simples y predecibles para realizar acciones específicas. Necesitan un protocolo claro para interactuar con fuentes de datos externas sin requerir configuraciones complejas específicas del servicio.

La Solución: MCP (Model Context Protocol)

MCP establece un protocolo simple para que los modelos y servicios de IA interactúen con tu contenido de Joomla. Proporciona una API plana de un solo endpoint donde una acción se especifica mediante un parámetro task. Este diseño facilita increíblemente que cualquier aplicación cree, actualice o recupere artículos y categorías—proporcionando y recibiendo contexto a través de un protocolo estandarizado.

Se autentica utilizando el sistema de Token de API nativo de Joomla, garantizando que todas las operaciones sean seguras y respeten los niveles de permisos del usuario asociado con el token.

Características Clave

  • Protocolo Simple: Sin rutas RESTful complejas que aprender. Solo una URL y un parámetro task.
  • Seguro: Aprovecha el sistema Web Services - Authentication - Token del núcleo de Joomla.
  • Ligero: Un solo plugin sin dependencias externas.
  • Listo para IA: Diseñado para servir como la "herramienta" perfecta para agentes de IA y flujos de trabajo de automatización para leer y escribir en tu base de datos de Joomla.
  • Endpoints Esenciales: Cubre las tareas de gestión de contenido más comunes.

El Superpoder de la IA y la Automatización de Flujos de Trabajo

Aquí es donde MCP realmente brilla. Transforma tu CMS Joomla de una plataforma aislada a un componente dinámico e integrado de tus flujos de trabajo automatizados y pipelines de contenido impulsados por IA.

Para Automatización de Flujos de Trabajo (Make.com, n8n, Zapier, etc.)

Plataformas como Make.com y n8n están construidas alrededor de la conexión de servicios mediante llamadas API. MCP proporciona los endpoints perfectos para sus módulos genéricos de "Solicitud HTTP".

Caso de Uso de Ejemplo: Un feed RSS activa un flujo de trabajo en n8n. Un nodo de IA reescribe el contenido, y luego un nodo de Solicitud HTTP utiliza el Model Context Protocol (task=mcp.create_article) para publicar instantáneamente el nuevo artículo en tu sitio Joomla.

Para Marcos de Trabajo de Agentes de IA (crewAI, AutoGen, etc.)

Los agentes de IA necesitan "herramientas" para interactuar con el mundo real. Los endpoints de MCP son los bloques de construcción perfectos para estas herramientas, permitiendo que los agentes gestionen contenido de forma autónoma.

Caso de Uso de Ejemplo: Asignas a un agente de crewAI la tarea de "Escribir una publicación de blog sobre las últimas tendencias de IA y publicarla en nuestro sitio web".

  1. El ResearcherAgent navega por la web.
  2. El WriterAgent redacta el artículo.
  3. Al PublisherAgent se le proporciona una herramienta publish_to_joomla, que utiliza el Model Context Protocol para llamar al endpoint mcp.create_article. El equipo de IA completa toda la tarea sin intervención humana.

Para Herramientas Internas y Scripting (Windmill, Superblocks, etc.)

Plataformas como Windmill te permiten crear rápidamente paneles de administración internos y ejecutar scripts. MCP proporciona una capa de abstracción limpia para interactuar con Joomla.

Caso de Uso de Ejemplo: Tu equipo de marketing quiere un panel simple en Windmill para publicar rápidamente comunicados de prensa. Un desarrollador crea una interfaz de usuario simple. El botón "Publicar" activa un script que utiliza el Model Context Protocol para enviar el contenido en vivo instantáneamente.

Instalación y Configuración

  1. Descargar: Descarga el archivo plg_system_mcp_vX.X.X.zip más reciente desde la página de Releases.
  2. Instalar: En tu panel de administración de Joomla, ve a System -> Install -> Extensions y sube el archivo zip.
  3. Habilitar el Plugin: Ve a System -> Manage -> Plugins y busca "MCP". Habilita el plugin.
  4. Generar un Token de API de Usuario:
    • Ve a Users -> Manage y selecciona el usuario al que deseas otorgar acceso a la API. Se respetarán los permisos de este usuario.
      • Haz clic en la pestaña "Joomla API Token".
      • Haz clic en "Create a New Token" para generar una clave de API. Copia esta clave de forma segura.

Uso de la API

Nota: Esta es la Versión 2.0 con tareas API consolidadas y arquitectura mejorada.

  • Endpoint: https://www.yoursite.com/index.php
  • Método: POST
  • Encabezado de Autenticación: X-Joomla-Token: YOUR_JOOMLA_API_TOKEN
  • Parámetro de Consulta: task=mcp.your_task

Tareas Disponibles

TareaDescripciónEjemplo de Cuerpo JSON
mcp.infoDevuelve información del plugin y estado de autenticación.null
mcp.get_articleRecupera un solo artículo por ID.{"article_id": 124}
mcp.get_articlesRecupera una lista de todos los artículos.null o {"catid": 8, "state": 1, "limit": 10}
mcp.get_categoriesRecupera una lista de todas las categorías de contenido.null
mcp.get_tagsRecupera una lista de todas las etiquetas.null
mcp.create_articleCrea un nuevo artículo.{"title": "My Title", "articletext": "<p>Content</p>", "catid": 2, "published": true}
mcp.update_articleActualiza el contenido y/o estado del artículo (consolidado).{"article_id": 124, "title": "Updated Title", "state": 0} o {"article_id": 126, "state": -2}

Ejemplo: Solicitud curl Completa

Así es como se crea un nuevo artículo publicado en la categoría con ID 8.

curl -X POST \
  -H "X-Joomla-Token: YOUR_JOOMLA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "New Article via MCP", "articletext": "<p>This content was published by an automated workflow!</p>", "catid": 8, "published": true}' \
  "[https://www.yoursite.com/index.php?task=mcp.create_article](https://www.yoursite.com/index.php?task=mcp.create_article)"

Uso de MCP con Herramientas de Automatización de Flujos de Trabajo

Integración con n8n

  1. Crear un Nodo HTTP:
    • Agrega un nodo de Solicitud HTTP a tu flujo de trabajo.
      • Establece el Método en POST.
      • Establece la URL en https://<your_joomla_website_url>/index.php.
      • Agrega un parámetro de consulta: task=mcp.<your_task> (por ejemplo, task=mcp.create_article).
  2. Agregar Encabezados:
    • Agrega un encabezado: X-Joomla-Token con el valor <your_joomla_api_token>.
  3. Agregar Cuerpo JSON:
    • Agrega el payload JSON para la tarea que deseas realizar (por ejemplo, crear o actualizar un artículo).

Integración con Make.com

  1. Crear un Escenario:
    • Agrega un módulo HTTP a tu escenario.
      • Establece el Método en POST.
      • Establece la URL en https://<your_joomla_website_url>/index.php.
  2. Agregar Parámetros de Consulta:
    • Agrega un parámetro de consulta: task=mcp.<your_task> (por ejemplo, task=mcp.get_article).
  3. Agregar Encabezados:
    • Agrega un encabezado: X-Joomla-Token con el valor <your_joomla_api_token>.
  4. Agregar Cuerpo JSON:
    • Agrega el payload JSON para la tarea que deseas realizar.

Cambios en la Versión 2.0

Mejoras Implementadas

  1. Consolidación de Tareas:
    • Las tareas manage_article_state y move_article_to_trash se han consolidado en la tarea update_article. Ahora puedes actualizar contenido y estado en una sola llamada.
      • Usa {"article_id": 123, "state": -2} para mover a la papelera, {"article_id": 123, "state": 0} para despublicar, etc.
  2. Nuevas Funcionalidades:
    • Se agregó la tarea mcp.get_tags para recuperar todas las etiquetas
      • Se agregó la tarea mcp.info para información del plugin y estado de autenticación
      • Soporte mejorado de filtrado y paginación para get_articles
  3. Arquitectura del Código:
    • Refactorizado completamente con clases de manejo organizadas
      • Sistema de autenticación mejorado
      • Mejor manejo de errores y validación
      • Respuestas JSON optimizadas con marcas de tiempo