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!
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 - Tokendel 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".
- El
ResearcherAgentnavega por la web.- El
WriterAgentredacta el artículo.- Al
PublisherAgentse le proporciona una herramientapublish_to_joomla, que utiliza el Model Context Protocol para llamar al endpointmcp.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
- Descargar: Descarga el archivo
plg_system_mcp_vX.X.X.zipmás reciente desde la página de Releases. - Instalar: En tu panel de administración de Joomla, ve a
System->Install->Extensionsy sube el archivo zip. - Habilitar el Plugin: Ve a
System->Manage->Pluginsy busca "MCP". Habilita el plugin. - Generar un Token de API de Usuario:
- Ve a
Users->Managey 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.
- Ve a
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
| Tarea | Descripción | Ejemplo de Cuerpo JSON |
|---|---|---|
mcp.info | Devuelve información del plugin y estado de autenticación. | null |
mcp.get_article | Recupera un solo artículo por ID. | {"article_id": 124} |
mcp.get_articles | Recupera una lista de todos los artículos. | null o {"catid": 8, "state": 1, "limit": 10} |
mcp.get_categories | Recupera una lista de todas las categorías de contenido. | null |
mcp.get_tags | Recupera una lista de todas las etiquetas. | null |
mcp.create_article | Crea un nuevo artículo. | {"title": "My Title", "articletext": "<p>Content</p>", "catid": 2, "published": true} |
mcp.update_article | Actualiza 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
- 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).
- Establece el Método en
- Agrega un nodo de Solicitud HTTP a tu flujo de trabajo.
- Agregar Encabezados:
- Agrega un encabezado:
X-Joomla-Tokencon el valor<your_joomla_api_token>.
- Agrega un encabezado:
- 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
- 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.
- Establece el Método en
- Agrega un módulo HTTP a tu escenario.
- Agregar Parámetros de Consulta:
- Agrega un parámetro de consulta:
task=mcp.<your_task>(por ejemplo,task=mcp.get_article).
- Agrega un parámetro de consulta:
- Agregar Encabezados:
- Agrega un encabezado:
X-Joomla-Tokencon el valor<your_joomla_api_token>.
- Agrega un encabezado:
- Agregar Cuerpo JSON:
- Agrega el payload JSON para la tarea que deseas realizar.
Cambios en la Versión 2.0
Mejoras Implementadas
- Consolidación de Tareas:
- Las tareas
manage_article_stateymove_article_to_trashse han consolidado en la tareaupdate_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.
- Usa
- Las tareas
- Nuevas Funcionalidades:
- Se agregó la tarea
mcp.get_tagspara recuperar todas las etiquetas- Se agregó la tarea
mcp.infopara información del plugin y estado de autenticación - Soporte mejorado de filtrado y paginación para
get_articles
- Se agregó la tarea
- Se agregó la tarea
- 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
- Refactorizado completamente con clases de manejo organizadas