Skip to main content
Glama
sjdanielarita

portalv4-context-server

🛡️ PortalV4 Context Server (MCP) - Manual Oficial

Versión: 1.0.0 Entorno: Híbrido (Windows / WSL2) Gestor de paquetes: pnpm Transporte: stdio

📖 Introducción

El portalv4-context-server es un microservicio basado en el estándar Model Context Protocol (MCP). Actúa como el "gobierno técnico" del proyecto PortalV4. Su propósito principal es dotar a los agentes de Inteligencia Artificial (Cursor, Codex, Claude Code) de herramientas seguras para leer el contexto real del proyecto, validar reglas de arquitectura y prevenir código destructivo o fuera de estándar.


Related MCP server: Engineering Intelligence MCP

🤖 Sección para Agentes de IA (Instrucciones)

ATENCIÓN IA: Este servidor te proporciona capacidades de lectura y validación sobre el entorno real del usuario.

  • PROHIBIDO adivinar rutas, esquemas de base de datos o inventar plantillas de tests.

  • OBLIGATORIO invocar las herramientas documentadas en este manual antes de generar o proponer código al desarrollador.

  • Tienes permiso implícito para usar estas herramientas de forma autónoma durante tu proceso de razonamiento.


🛠️ Catálogo de Herramientas (Skills)

El servidor expone 6 herramientas especializadas divididas por responsabilidades:

1. get_module_structure (Backend & Frontend)

Propósito: Garantizar el cumplimiento de la arquitectura modular desacoplada.

  • Qué hace: Verifica si un módulo existe en la arquitectura clásica o en la nueva arquitectura Modules. Busca el nombre sin depender de mayúsculas/minúsculas y devuelve el nombre real del disco.

  • Payload exacto: { "moduleName": "WebCoosajo" }

  • Salida: Destinos que incluyen ruta nativa absoluta, ruta portable con /, tipo y existencia actual.

2. lint_thin_controller (Solo Backend)

Propósito: Forzar el patrón Thin Controller.

  • Qué hace: Analiza estáticamente archivos PHP dentro de portalv4/backend. Es un guardrail regex que detecta llamadas estáticas a modelos, mutaciones como ->save() y ->update(), y acceso directo mediante DB::.

  • Payload exacto: { "controllerPath": "/ruta/absoluta/Controller.php" }

  • Salida: Devuelve passed: false, ubicación y acción requerida cuando hay hallazgos.

3. read_database_schema (Solo Backend)

Propósito: Eliminar alucinaciones de SQL y proteger el esquema de la base de datos.

  • Qué hace: Levanta un proceso PHP en segundo plano, lee la conexión real desde config/database.php de Laravel y ejecuta una consulta de solo lectura (INFORMATION_SCHEMA) al motor (SQL Server o MySQL).

  • Payload exacto: { "table_name": "Agencia", "connection_name": "sqlsrv" } (Nota: connection_name es opcional. Si table_name se deja vacía "", lista todas las tablas disponibles).

4. export_endpoint_docs (Solo Backend)

Propósito: Automatizar la documentación de la API.

  • Qué hace: Lee las rutas registradas en memoria en Laravel, realiza un análisis estático de los FormRequests y métodos para extraer parámetros obligatorios (_Colaborador, _Token), y escribe una colección Postman Collection v2.1.0 exclusivamente en el archivo .json indicado por el usuario. También inyecta automáticamente variables de URL y encabezados como Authorization: Bearer {{token}}. No existe una ruta de salida predeterminada; el directorio padre debe existir y los enlaces simbólicos existentes se rechazan. Tampoco sobrescribe un archivo salvo autorización expresa.

  • Filtros Granulares: Permite filtrar las rutas a documentar a través de los siguientes parámetros opcionales:

    • prefix: Filtra por prefijo de URL (ej. api/).

    • module: Filtra por el nombre del módulo de la arquitectura (ej. WebCoosajo).

    • route_file: Filtra por archivo de registro de ruta (ej. api.php).

    • search_pattern: Regex para filtrar por URI, nombre de ruta o controlador.

  • Payload exacto: { "output_path": "/ruta/elegida/portalv4-api.json", "prefix": "api/", "module": "WebCoosajo", "overwrite": false } (Nota: output_path es obligatorio, absoluto y debe terminar en .json; los filtros y overwrite son opcionales. Para reemplazar un archivo existente, el usuario debe indicar overwrite: true expresamente).

  • Salida: Metadatos de la exportación: ruta efectiva, prefijo, cantidad de rutas y requests, bytes escritos y formato. La colección completa queda únicamente en output_path.

5. generate_tests (Solo Backend)

Propósito: Proteger la base de datos de desarrollo frente a ejecuciones de tests destructivos.

  • Qué hace: Genera la plantilla base PHP para pruebas automatizadas garantizando la importación y uso estricto del trait DatabaseTransactions (prohibiendo RefreshDatabase).

  • Payload exacto: { "test_name": "BeneficioControllerTest", "type": "Feature", "module_name": "WebCoosajo" } (Nota: module_name es opcional).

6. review_quality_and_git (Backend & Frontend)

Propósito: Auditar de forma analítica y segura el control de versiones sin alterar Git.

  • Qué hace: Inspecciona automática y pasivamente los repositorios reales backend/ y frontend/ bajo PORTALV4_ROOT. Ejecuta exclusivamente git status --porcelain, git rev-parse --abbrev-ref HEAD y git diff --stat con bloqueos opcionales desactivados. A partir de esa evidencia propone, cuando corresponde, un nombre de rama válido y un mensaje bajo Conventional Commits acorde con los archivos modificados.

  • Payload: {}. No recibe nombres de rama ni mensajes redactados por el usuario; los campos heredados que un cliente antiguo envíe son ignorados.

  • Salida: Reporte JSON por repositorio con rama actual, cumplimiento del estándar, estado porcelain, archivos cambiados, resumen del diff, observaciones y sugerencias. La herramienta nunca ejecuta git add, git commit, git push, git merge ni ninguna otra operación de escritura o alteración.


👨‍💻 Sección para Desarrolladores Humanos

Requisitos Previos

  • Node.js: v20 o superior.

  • Gestor de paquetes: pnpm v11+ (Requerido por pnpm-workspace.yaml).

  • Una copia accesible de PortalV4 con los directorios backend/ y frontend/.

Variables de Entorno

Variable

Uso

PORTALV4_ROOT

Raíz de PortalV4. Si se omite, se buscan backend/ y frontend/ desde el directorio actual y rutas vecinas.

PORTALV4_WSL_DISTRO

Distribución usada para traducir /home/... a \\wsl.localhost\... cuando Node corre en Windows (ej. Ubuntu-24.04).

PORTALV4_MAX_CONTROLLER_BYTES

Tamaño máximo del controlador analizado; predeterminado: 1 MiB.

Instalación y Desarrollo

El servidor MCP no se ejecuta en tiempo de ejecución de TypeScript, debe compilarse previamente. El transporte stdio reserva stdout para MCP; cualquier diagnóstico debe escribirse a stderr.

# Instalación y validación
pnpm install
pnpm check

# Compilar TypeScript a JavaScript (Genera dist/index.js)
pnpm build

La opción más estable es ejecutar el servidor en el mismo entorno donde vive el código:
Bash

PORTALV4_ROOT=/home/sjdarita/proyectos/portalv4 pnpm start

Ejemplos de Configuración de Clientes MCP
Use rutas y variables nativas del proceso que lanza Node.
Cliente ejecutado en WSL (Codex / Claude Code)
JSON

{
  "mcpServers": {
    "portalv4-context": {
      "command": "node",
      "args": [
        "/home/sjdarita/proyectos/portalv4-context-server/dist/index.js"
      ],
      "env": {
        "PORTALV4_ROOT": "/home/sjdarita/proyectos/portalv4"
      }
    }
  }
}

Cliente ejecutado en Windows, código dentro de WSL (Cursor / VS Code)
JSON

{
  "mcpServers": {
    "portalv4-context": {
      "command": "node",
      "args": [
        "\\\\wsl.localhost\\Ubuntu-24.04\\home\\sjdarita\\proyectos\\portalv4-context-server\\dist\\index.js"
      ],
      "env": {
        "PORTALV4_ROOT": "\\\\wsl.localhost\\Ubuntu-24.04\\home\\sjdarita\\proyectos\\portalv4"
      }
    }
  }
}

	Nota para Windows: Algunos clientes no permiten usar una ruta UNC (\\wsl.localhost\...) como directorio de trabajo. En ese caso, mantenga command como un ejecutable local de Windows y pase la ruta UNC sólo en args y PORTALV4_ROOT, o ejecute wsl.exe como wrapper.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with queryable, version-controlled project rules and coding standards. Enables validation, rule-based guidance, and task summaries to keep AI work aligned with your project's conventions without repeating context.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to safely read, search, understand, and edit local project code and files, with Git inspection, code indexing, and controlled command execution within permissioned workspaces.
    5 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to safely inspect a local repository's code and metadata while blocking private data from leaving the machine, providing read-only tools for search, change tracking, and integrity verification.
    MIT