HUB_MCP_INTEGRATION
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
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Documentació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)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Docs generales, reglas de estilos, convenciones |
metadata.json | Sí | Metadata 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)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Convenciones de naming, cómo agregar nuevos iconos |
metadata.json | Sí | Lista de iconos disponibles con nombre y categoría. |
Formato esperado de metadata.json:
{
"icons": [
{ "name": "ArrowLeft", "category": "navigation" },
{ "name": "FieldCrop", "category": "agro" }
]
}
Utils (utils)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Descripción general y listado de utilidades |
metadata.json | Sí | Catá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)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Listado de hooks y convenciones |
metadata.json | Sí | Catá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)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Docs de componentes compuestos (UIKit + Icons + MainState + lógica) |
metadata.json | Sí | Mismo formato que UI Kit — lista de componentes con props. |
FeatureCore (feature-core)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Variables globales, contexto y API que expone a los microfrontends de nivel 3 |
metadata.json | Opcional | Catálogo de variables/contextos expuestos. |
Maps (maps)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | API del mapa, eventos, layers, cómo interactuar desde un MFE |
metadata.json | Opcional | Catálogo de métodos/eventos del mapa. |
Architecture (architecture)
| Archivo | Requerido | Descripción |
|---|---|---|
README.md | Sí | Estructura 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.