Volver al Blog

Cómo gestionar múltiples sitios Drupal con un único servidor MCP

2025-10-258 min read

El problema del cambio de contexto

Trabajo en varios sitios de Drupal. Cada vez que cambio entre ellos, existe esta sobrecarga mental: ¿Qué módulos tiene este? ¿Qué campos tiene el tipo de contenido artículo? Necesito extraer algunos datos de la base de datos para mostrarlos. ¿Debo crear una vista nueva o ya existe una?

Incluso con asistentes de IA como Claude Code, Cursor o Windsurf, obtener respuestas significaba esperar mientras ejecutaban varios comandos drush secuencialmente, juntando fragmentos de información. Así que construí Drupal Scout, un servidor MCP que proporciona a los asistentes de IA conocimiento instantáneo y completo sobre tu sitio Drupal. Es código abierto en GitHub. Scout es de solo lectura. Analiza tu sitio pero nunca modifica tu base de datos o archivos.

Sin Scout, tu IA ejecuta comandos como este:

IA: Ejecutando drush field:list node article...
IA: Ejecutando drush config:get field.field.node.article.field_image...
IA: Ejecutando drush config:get field.field.node.article.field_category...
# ...y así sucesivamente, esperando entre cada comando

Con Scout, solo preguntas: "¿Qué campos tiene el tipo de contenido artículo?"

Una llamada. Respuesta instantánea. Todo referenciado. Esto ahorra entre un 70 y un 90% de los tokens en comparación con la ejecución secuencial de comandos, y tu IA responde al instante en lugar de esperar varias operaciones de drush.

El truco multi-proyecto

Esto es lo que aprendí: puedes usar el mismo servidor MCP para todos tus proyectos. Cada uno obtiene su propio contexto automáticamente.

Cuando descubrí esto, lo cambió todo. No más cambios de configuraciones. No más preguntarse qué sitio estoy mirando. La IA simplemente lo sabe.

Cómo funciona

Drupal Scout busca un archivo config.json en el directorio de tu proyecto. Cuando estás en el proyecto A, lee la configuración de A. ¿Cambias al proyecto B? Lee la configuración de B. Simple.

El servidor MCP reside en un solo lugar (yo mantengo el mío en ~/.local/drupal-scout-mcp), pero cada proyecto le indica qué instalación de Drupal debe indexar.

Configuración

Instala Drupal Scout una vez:

git clone https://github.com/davo20019/drupal-scout-mcp.git ~/.local/drupal-scout-mcp
cd ~/.local/drupal-scout-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Luego, en cada proyecto Drupal, coloca dos archivos en la raíz:

config.json (le dice a Scout dónde está tu Drupal):

{
"drupal_root": "/ruta/a/tu/drupal",
"modules_path": "web/modules"
}

.claude.json (conecta el servidor MCP):

claude mcp add --transport stdio drupal-scout -- \
~/.local/drupal-scout-mcp/venv/bin/python \
~/.local/drupal-scout-mcp/server.py

Eso es todo. Cuando entras a ese proyecto (`cd`) e inicias la codificación, Scout indexa esos módulos. ¿Cambias de proyecto? Indexa los nuevos.

¿Qué puede hacer Drupal Scout?

Ahora que lo tienes configurado, ¿qué puedes hacer realmente con él? Déjame mostrarte algunos ejemplos reales.

Análisis de campos y tipos de contenido

Tú: "Necesito añadir un campo de teléfono al tipo de contenido 'staff' (personal)"
IA: Déjame comprobar si ya existe un campo de teléfono...
IA: Usando drupal-scout get_field_info(field_name="phone")

Resultado: Se encontraron 2 campos de teléfono:
• Número de Teléfono (field_phone_number) Tipo: telephone, Usado en: contact, vendor
• Teléfono Móvil (field_mobile_phone) Tipo: telephone, Usado en: employee

IA: "¡Puedes reutilizar field_phone_number en el tipo de contenido 'staff'!"

Esto te ahorró crear un campo duplicado con un nombre diferente. Una consulta te mostró todos los campos relacionados con el teléfono y dónde se utilizan.

Búsqueda de vistas y displays

Tú: "¿Tenemos alguna vista que muestre datos de usuario?"
IA: Usando drupal-scout get_views_summary(entity_type="users")

Resultado: Se encontraron 2 vistas:
• Lista de Usuarios (user_list) Displays: page, block
• Directorio de Personal (staff_directory) Displays: page, block

IA: "¡Sí! La vista Directorio de Personal ya existe con filtros para departamento y rol."

En lugar de crear una vista nueva, descubriste una existente que hace lo que necesitas.

Limpieza de términos de taxonomía

Tú: "¿Puedo eliminar de forma segura el término 'Old Category' (Categoría Antigua)?"
IA: Usando drupal-scout get_taxonomy_info(term_name="Old Category")

Resultado: Término: Old Category (tid: 75)
Uso: 0 elementos de contenido, 0 vistas
Hijos: Ninguno

SEGURO DE ELIMINAR - Este término no se usa en ninguna parte.

IA: "Sí, es seguro eliminarlo. El término no se utiliza en ningún contenido ni vista."

Ahora intenta preguntar sobre un término que se utiliza:

Tú: "¿Qué pasa con el término 'Technology' (Tecnología)?"
IA: Usando drupal-scout get_taxonomy_info(term_name="Technology")

Resultado: Término: Technology (tid: 42)
Uso: 87 elementos de contenido
Hijos: AI/ML, Web Development
Contenido de ejemplo:
• Cómo la IA está cambiando el desarrollo (nid: 123)
• Tendencias Tecnológicas 2024 (nid: 156)
... y 84 más

ADVERTENCIA: Tiene términos hijos (2 hijos quedarán huérfanos)
PRECAUCIÓN: Usado en 87 piezas de contenido

IA: "Este término está muy utilizado. Eliminarlo afectaría a 87 artículos y dejaría huérfanos a 2 términos hijos. Considera fusionarlos en su lugar."

Este análisis habría requerido docenas de comandos drush y consultas a la base de datos. Drupal Scout lo hizo en una sola llamada.

Depuración con registros de watchdog

Tú: "El sitio está mostrando errores, ¿puedes comprobar qué está mal?"
IA: Usando drupal-scout get_watchdog_logs()

Resultado: Se encontraron 12 errores de PHP:
[2024-01-15 14:32:21] Undefined array key 'field_category'
Ubicación: /modules/custom/custom_module/custom_module.module:45

[2024-01-15 14:30:15] Call to undefined method getCategory()
Ubicación: /modules/custom/custom_module/src/Service/CategoryService.php:78

IA: "Encontré dos errores relacionados en custom_module. Déjame leer esos archivos y solucionarlos..."

La IA puede saltar inmediatamente a los archivos problemáticos y sugerir correcciones.

Obtener recomendaciones de módulos

Aquí hay algo que me resulta muy útil: Drupal Scout puede buscar en la API de Drupal.org y recomendar módulos basándose en lo que estás tratando de hacer.

Tú: "Necesito una forma de gestionar el flujo de trabajo y la moderación de contenido"
IA: Usando drupal-scout search_drupal_modules(keyword="workflow")

Resultado: Módulos relevantes encontrados:
• Workbench Moderation - Proporciona flujo de trabajo editorial para contenido
• Content Moderation - Solución de flujo de trabajo central para Drupal 8+
• Workflow - Gestión flexible del flujo de trabajo de contenido

IA: "Basándome en tu versión de Drupal y tus necesidades, recomiendo Content Moderation ya que está en el núcleo para Drupal 8+. ¿Quieres que compruebe si ya está habilitado?"

En lugar de buscar en Google módulos o preguntar, la IA puede buscar en Drupal.org, comparar opciones y hacer recomendaciones basadas en tu configuración específica.

Consejos para sacar el máximo partido a Drupal Scout

1. Haz preguntas amplias primero

En lugar de sumergirte en la implementación, pide a Drupal Scout que compruebe lo que existe:

  • En lugar de: "Crea una vista que muestre artículos recientes"
  • Prueba: "¿Tenemos alguna vista que muestre artículos?"

Podrías descubrir que ya tienes lo que necesitas.

2. Deja que la IA use las herramientas

No necesitas especificar qué herramienta MCP usar. Simplemente haz preguntas naturales:

  • "¿Qué campos tiene el tipo de contenido artículo?"
  • "¿Puedo eliminar este módulo de forma segura?"
  • "¿Hay errores recientes en los registros?"

La IA sabe qué herramienta llamar basándose en tu pregunta.

3. Combina análisis con acción

Drupal Scout proporciona análisis de solo lectura. Cuando necesites hacer cambios, la IA puede usar esa información para ejecutar comandos de forma segura:

Tú: "Limpia los módulos no utilizados"
IA: Usando drupal-scout find_unused_contrib()
Resultado: Se encontraron 3 módulos contrib instalados pero no utilizados: devel, kint, admin_toolbar_tools

IA: "Encontré 3 módulos no utilizados. ¿Debo desinstalarlos?"
Tú: "Sí"
IA: Ejecutando: drush pmu devel kint admin_toolbar_tools
IA: Ejecutando: composer remove drupal/devel drupal/kint drupal/admin_toolbar_tools
IA: Usando drupal-scout reindex_modules()

La IA utiliza Drupal Scout para el análisis y luego ejecuta los comandos necesarios para realizar los cambios.

¿Cómo funciona realmente MCP?

Quizás te preguntes: "¿Cómo sabe la IA cuándo usar Drupal Scout?" ¡Gran pregunta! Entender esto te ayuda a apreciar por qué MCP es tan potente.

La descripción de la herramienta es el manual de instrucciones de la IA

Cuando Drupal Scout se conecta a tu asistente de IA, no solo proporciona funciones, sino que proporciona documentación sobre esas funciones. Cada herramienta tiene una descripción que le dice a la IA:

  • Qué hace la herramienta
  • Cuándo usarla
  • Qué parámetros acepta
  • Qué tipo de resultados devuelve

Por ejemplo, la herramienta get_field_info tiene una descripción como:

Obtiene información completa sobre los campos de Drupal.

**USA ESTA HERRAMIENTA** para preguntas sobre campos, dónde se utilizan,
tipos de campo y estructura de datos.

Ejemplos:
• "¿Qué campos tiene el tipo de contenido artículo?"
• "¿Dónde se usa field_image?"
• "¿Tenemos un campo de número de teléfono?"

Esta descripción se convierte en parte del conocimiento de la IA. Cuando preguntas "¿Qué campos tiene mi tipo de contenido artículo?", la IA reconoce que esto coincide con el patrón y llama a la herramienta apropiada.

El flujo de la conversación

Esto es lo que realmente sucede cuando interactúas con Drupal Scout:

  1. Tú preguntas: "¿Qué campos tiene mi tipo de contenido artículo?"
  2. La IA piensa: "Esta es una pregunta sobre campos. Tengo get_field_info para eso."
  3. La IA llama a la herramienta: get_field_info(...)
  4. El servidor MCP ejecuta: Ejecuta comandos drush, analiza configuraciones, analiza el uso
  5. MCP devuelve datos: "Resumen de campos (15 campos encontrados)..."
  6. La IA formatea la respuesta: "Encontré 15 campos en tus tipos de entidad node..."

La belleza es que nunca ves los pasos 2 a 5. Simplemente obtienes la respuesta.

Por qué esto es mejor que el prompting tradicional

Sin MCP, tendrías que decirle a la IA exactamente qué hacer:

Tú: "Ejecuta drush field-list, luego para cada campo ejecuta drush config:get,
luego analiza el YAML y dime cuáles son los campos de teléfono"

Con MCP, solo preguntas de forma natural:

Tú: "¿Tenemos un campo de teléfono?"

Las descripciones de las herramientas le enseñaron a la IA cómo manejar preguntas específicas de Drupal. No necesitas ser un experto en drush; el servidor MCP ya lo es.

Es declarativo, no imperativo

Esta es una idea clave: las descripciones de las herramientas MCP son declarativas (describen lo que existe) en lugar de imperativas (forzando acciones específicas).

Esto significa:

  • El MCP no anula tus prompts
  • Le dice a la IA qué capacidades están disponibles
  • La IA todavía decide cuándo y cómo usarlas
  • Mantienes el control total a través de la conversación natural

Piensa en ello como darle a la IA un kit de herramientas especializado. Tú sigues diciéndole qué construir, pero ahora tiene mejores herramientas para hacerlo.

Qué puede analizar Scout

Drupal Scout proporciona análisis profundos en toda tu instalación de Drupal con más de 23 herramientas especializadas:

Módulos y Dependencias (8 herramientas):

  • Buscar funcionalidad en módulos personalizados y contribuidos
  • Listar todos los módulos con capacidades e implementaciones de hooks
  • Obtener información detallada del módulo (servicios, rutas, clases, hooks)
  • Analizar dependencias (hacia adelante, inversas, circulares)
  • Encontrar módulos contrib no utilizados (con estado de instalación)
  • Verificar redundancia antes de construir nuevas características
  • Encontrar todas las implementaciones de un hook específico de Drupal
  • Forzar la reindexación cuando cambian los módulos

Entidades, Campos y Contenido (múltiples herramientas):

  • Estructura completa de entidades con información de bundles
  • Análisis exhaustivo de campos con seguimiento de uso
  • Referencias de entidades que muestran dónde se utiliza el contenido
  • Configuraciones de visualización para modos de vista
  • Buscar entidades por cualquier valor de campo
  • Obtener información de entidad por ID o ruta

Análisis de Vistas (1 herramienta):

  • Listar todas las vistas con displays (page, block, feed, etc.)
  • Rutas y configuraciones de display
  • Filtros, ordenaciones y relaciones
  • Campos que se muestran
  • Filtrar por tipo de entidad

Taxonomía (2 herramientas):

  • Todos los vocabularios con recuentos de términos y campos de referencia
  • Jerarquías de términos completas (relaciones padre/hijo)
  • Análisis de uso detallado (contenido, vistas, campos)
  • Evaluación de seguridad para eliminación con advertencias
  • Análisis masivo de vocabularios completos (optimizado para grandes conjuntos de datos)
  • Exportar datos de taxonomía a CSV/Excel

Escaneo de Seguridad (11 herramientas):

  • Detección de vulnerabilidades de inyección SQL
  • Comprobaciones de Cross-Site Scripting (XSS)
  • Análisis de protección CSRF
  • Detección de inyección de comandos
  • Vulnerabilidades de Path traversal
  • Secretos y claves API codificados
  • Problemas de control de acceso
  • Uso de API obsoletas
  • Exploits anónimos (explotables remotamente)
  • Auditoría de seguridad (informe completo)
  • Guías de verificación (cómo verificar manualmente los hallazgos)

Análisis de Código (4 herramientas):

  • Leer archivos de módulos con división inteligente para archivos grandes
  • Listar archivos en módulos con información de tamaño
  • Visualización del árbol de directorios del módulo
  • Extraer funciones PHP específicas de archivos

Integración con Drupal.org (5 herramientas):

  • Buscar módulos en Drupal.org
  • Obtener módulos populares por categoría
  • Recomendaciones de módulos basadas en necesidades
  • Información detallada del módulo con cola de incidencias
  • Buscar en colas de incidencias de módulos problemas

Salud y Monitoreo del Sistema (5 herramientas):

  • Registros de Watchdog con patrones de error y diagnósticos
  • Verificación de conectividad de la base de datos
  • Actualizaciones disponibles para core y contrib
  • Informe de estado completo (equivalente a /admin/reports/status)
  • Estado de sincronización de configuración

Las más de 23 herramientas trabajan juntas sin problemas. El asistente de IA sabe automáticamente qué herramienta usar basándose en tu pregunta.

Recursos

Mantente Actualizado

Recibe las últimas publicaciones e insights en tu bandeja de entrada.

Unsubscribe anytime. No spam, ever.