Saltar al contenido principal

HUB_MCP_INTEGRATION

Ver en Git


Integración con @auravant/hub-mcp

Este repositorio es consumido por el hub-mcp, un servidor MCP que centraliza la documentación y herramientas de todos los módulos core del ecosistema frontend de Auravant.

Al iniciar, el hub descarga archivos específicos de cada repo vía GitLab API para que los agentes de IA (Amazon Q, Claude, etc.) tengan contexto actualizado al momento de desarrollar.


¿Qué archivos necesita el hub de este repo?

Depende del tipo de módulo. Abajo se detalla qué se espera de cada uno.

Todos los módulos

ArchivoRequeridoDescripción
README.mdDocumentación principal del módulo. Es lo que devuelve la tool get_module_docs.

El README debe incluir como mínimo:

  • Qué hace el módulo y para qué se usa
  • API pública / exports principales
  • Convenciones y reglas de desarrollo
  • Stack y dependencias relevantes

UI Kit (ui-kit)

ArchivoRequeridoDescripción
README.mdDocs generales, reglas de estilos, convenciones
metadata.jsonMetadata autogenerada con la lista de componentes, sus props e interfaces. Alimenta las tools list_components y get_component_details.

Formato esperado de metadata.json:

{
"components": [
{
"displayName": "Button",
"description": "Botón principal",
"props": {
"variant": { "type": { "name": "string" }, "required": false, "description": "..." },
"size": { "type": { "name": "enum", "value": ["sm", "md", "lg"] }, "required": false }
}
}
]
}

Icons (icons)

ArchivoRequeridoDescripción
README.mdConvenciones de naming, cómo agregar nuevos iconos
metadata.jsonLista de iconos disponibles con nombre y categoría.

Formato esperado de metadata.json:

{
"icons": [
{ "name": "ArrowLeft", "category": "navigation" },
{ "name": "FieldCrop", "category": "agro" }
]
}

Utils (utils)

ArchivoRequeridoDescripción
README.mdDescripción general y listado de utilidades
metadata.jsonCatálogo de funciones/clases exportadas con firma y descripción.

Formato esperado de metadata.json:

{
"functions": [
{
"name": "formatDate",
"description": "Formatea una fecha al locale del usuario",
"signature": "(date: Date, format?: string) => string",
"module": "date"
}
]
}

Hookaholics (hookaholics)

ArchivoRequeridoDescripción
README.mdListado de hooks y convenciones
metadata.jsonCatálogo de hooks con firma, parámetros y descripción.

Formato esperado de metadata.json:

{
"hooks": [
{
"name": "useDebounce",
"description": "Debounce de un valor con delay configurable",
"signature": "<T>(value: T, delay: number) => T",
"params": [
{ "name": "value", "type": "T", "description": "Valor a debouncear" },
{ "name": "delay", "type": "number", "description": "Milisegundos de delay" }
]
}
]
}

AuraComponents (aura-components)

ArchivoRequeridoDescripción
README.mdDocs de componentes compuestos (UIKit + Icons + MainState + lógica)
metadata.jsonMismo formato que UI Kit — lista de componentes con props.

FeatureCore (feature-core)

ArchivoRequeridoDescripción
README.mdVariables globales, contexto y API que expone a los microfrontends de nivel 3
metadata.jsonOpcionalCatálogo de variables/contextos expuestos.

Maps (maps)

ArchivoRequeridoDescripción
README.mdAPI del mapa, eventos, layers, cómo interactuar desde un MFE
metadata.jsonOpcionalCatálogo de métodos/eventos del mapa.

Architecture (architecture)

ArchivoRequeridoDescripción
README.mdEstructura del shell, flujo de init, routing, carga de MFEs

No necesita metadata.json — su README es la fuente principal.


¿Cómo generar el metadata.json?

Cada repo puede generarlo como prefiera. Algunas opciones:

  • react-docgen para componentes React (UI Kit, AuraComponents)
  • TypeDoc o ts-morph para extraer firmas de funciones/hooks (Utils, Hookaholics)
  • Script custom que lea el directorio de exports y genere el JSON

Lo importante es que el archivo esté en la raíz del repo y siga el formato documentado arriba.


¿Cómo se registra un repo en el hub?

En el hub-mcp, el archivo src/sources/registry.ts tiene la lista de repos:

{
id: 'mi-modulo',
name: 'Mi Módulo',
gitlabProjectId: 123, // ID del proyecto en GitLab
branch: 'main',
files: ['README.md', 'metadata.json'],
}

Si tu repo no tiene metadata.json todavía, dejá solo ['README.md'] en files — el hub no va a fallar, simplemente no tendrá metadata estructurada de ese módulo.