Joomla MCP Server
Crear artículos en un sitio web de Joomla usando su API.
Documentación
Servidor MCP de Joomla
Tabla de Contenidos
- Introducción
- Características
- Requisitos
- Instalación
- Herramientas Disponibles
- Consideraciones de Seguridad
Introducción
El Servidor MCP (Protocolo de Contexto de Modelo) de Joomla permite que asistentes de IA, como Claude, interactúen con sitios web de Joomla a través de la API de Servicios Web de Joomla. Proporciona herramientas para gestionar artículos mediante un asistente de IA.
Características
- Recuperar todos los artículos de un sitio web de Joomla
- Listar todas las categorías de contenido
- Crear nuevos artículos
- Gestionar estados de artículos (publicado, no publicado, eliminado o archivado)
- Eliminar artículos
- Actualizar artículos (requiere tanto introtext como fulltext, con un salto de "Leer más")
Requisitos
- Python 3.11+
- Joomla 4.x o 5.x con el plugin de API de Servicios Web habilitado
- Token Bearer de API para autenticación
Instalación
Crear un Token de API de Joomla
-
Acceder al Perfil de Usuario: Inicia sesión en la interfaz de Administración de Joomla y navega al menú Usuarios, luego selecciona Gestionar.
-
Editar Super Usuario: Encuentra y haz clic en la cuenta de Super Usuario (o el usuario deseado) para editar su perfil.
-
Generar Token: Ve a la pestaña Token de API de Joomla, haz clic en el botón Generar y copia el token mostrado.
Instalar el Proyecto/Servidor localmente
- Clonar el repositorio:
git clone https://github.com/nasoma/joomla-mcp-server.git
cd joomla-mcp-server
- Configurar un entorno virtual e instalar las dependencias usando
uv(un gestor de dependencias de Python, consulta la documentación de uv). Si uv está instalado, ejecuta:
uv sync
Instalación en Claude u otros asistentes de IA
Claude Desktop
Añade esto a tu claude_desktop_config.json:
{
"mcpServers": {
"Joomla Articles MCP": {
"command": "{{PATH_TO_UV}}",
"args": [
"--directory",
"{{PATH_TO_PROJECT}}",
"run",
"main.py"
],
"env": {
"JOOMLA_BASE_URL": "<your_joomla_website_url>",
"BEARER_TOKEN": "<your_joomla_api_token>"
}
}
}
}
Reemplaza {{PATH_TO_UV}} con la ruta a uv (ejecuta which uv para encontrarlo) y {{PATH_TO_PROJECT}} con la ruta del directorio del proyecto (ejecuta pwd en la raíz del repositorio).
Herramientas Disponibles
1. get_joomla_articles()
Recupera todos los artículos del sitio web de Joomla a través de su API.
2. get_joomla_categories()
Recupera todas las categorías del sitio web de Joomla y las formatea en una lista legible.
3. create_article()
Crea un nuevo artículo en el sitio web de Joomla a través de su API.
Parámetros:
article_text(obligatorio): El contenido del artículo (texto plano o HTML)title(opcional): El título del artículo (se infiere del contenido si no se proporciona)category_id(opcional): El ID de categoría para el artículoconvert_plain_text(opcional, predeterminado: True): Convierte automáticamente texto plano a HTMLpublished(opcional, predeterminado: True): Publica el artículo inmediatamente
4. manage_article_state()
Gestiona el estado de un artículo existente en el sitio web de Joomla a través de su API.
Parámetros:
article_id(obligatorio): El ID del artículo existente para verificar y actualizartarget_state(obligatorio): El estado deseado para el artículo (1=publicado, 0=no publicado, 2=archivado, -2=eliminado)
5. delete_article()
Elimina un artículo del sitio web de Joomla a través de su API.
Parámetros:
article_id(obligatorio): El ID del artículo a eliminar
6. update_article()
Actualiza un artículo existente en el sitio web de Joomla a través de su API. Tanto introtext como fulltext son obligatorios para alinearse con la estructura de artículos de Joomla (introtext para el teaser, fulltext para el contenido después de un salto de "Leer más").
Parámetros:
article_id(obligatorio): El ID del artículo a actualizartitle(opcional): Nuevo título para el artículointrotext(obligatorio): Texto introductorio para el artículo (texto plano o HTML)fulltext(obligatorio): Contenido completo para el artículo (texto plano o HTML)metadesc(opcional): Descripción meta para el artículo
Consideraciones de Seguridad
- El Token de API de Joomla tiene acceso a tu sitio. Trátalo de la misma manera que tratas tus contraseñas.
- El servidor sanitiza el contenido HTML para prevenir ataques XSS.
- Asegúrate de que tu sitio web de Joomla use HTTPS para proteger las comunicaciones de la API.
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
