backend-mcp
Version:
Generador automático de backends con Node.js, Express, Prisma y módulos configurables. Servidor MCP compatible con npx para agentes IA. Soporta PostgreSQL, MySQL, MongoDB y SQLite.
234 lines (212 loc) • 5.23 kB
YAML
module:
name: crud
version: 1.0.0
description: "Módulo CRUD genérico para operaciones de base de datos"
category: core
author: Backend MCP
license: MIT
# Condiciones de activación
activation:
keywords:
- crud
- api
- rest
- endpoint
- controller
- model
- entity
- resource
auto_detect: true
priority: medium
# Puntos de entrada del módulo
entry_points:
controller: "controller.ts.hbs"
service: "service.ts.hbs"
dto: "dto.ts.hbs"
routes: "routes.ts.hbs"
middleware: "middleware.ts.hbs"
validator: "validator.ts.hbs"
# Dependencias
dependencies:
required:
- database
optional:
- auth
- logging
- cache
- validation
# Variables de entorno
environment:
required:
- DATABASE_URL
optional:
- CRUD_DEFAULT_PAGE_SIZE
- CRUD_MAX_PAGE_SIZE
- CRUD_ENABLE_SOFT_DELETE
- CRUD_ENABLE_AUDIT
# Características del módulo
features:
- "CRUD operations (Create, Read, Update, Delete)"
- "Pagination and filtering"
- "Sorting and searching"
- "Soft delete support"
- "Audit logging"
- "Input validation"
- "Error handling"
- "Swagger documentation"
- "Generic controllers"
- "DTO transformations"
- "Query optimization"
- "Bulk operations"
# API endpoints generados
api:
base_path: "/api"
endpoints:
- path: "/{entity}"
method: GET
description: "Get all entities with pagination"
auth_required: false
parameters:
- name: page
type: number
- name: limit
type: number
- name: search
type: string
- name: sort
type: string
- path: "/{entity}/{id}"
method: GET
description: "Get entity by ID"
auth_required: false
- path: "/{entity}"
method: POST
description: "Create new entity"
auth_required: true
- path: "/{entity}/{id}"
method: PUT
description: "Update entity"
auth_required: true
- path: "/{entity}/{id}"
method: DELETE
description: "Delete entity"
auth_required: true
- path: "/{entity}/bulk"
method: POST
description: "Bulk operations"
auth_required: true
# Archivos generados
generated_files:
- "src/controllers/{entity}.controller.ts"
- "src/services/{entity}.service.ts"
- "src/dto/{entity}.dto.ts"
- "src/routes/{entity}.routes.ts"
- "src/middleware/crud.middleware.ts"
- "src/validators/{entity}.validator.ts"
- "src/types/crud.types.ts"
# Integración con base de datos
database:
models_required: false
auto_generate_models: true
supported_relations:
- one_to_one
- one_to_many
- many_to_many
features:
- soft_delete
- timestamps
- audit_fields
# Configuración de paginación
pagination:
default_page_size: 10
max_page_size: 100
include_total_count: true
include_page_info: true
# Validación
validation:
input_validation: true
output_validation: true
custom_validators: true
sanitization: true
# Seguridad
security:
input_sanitization: true
sql_injection_protection: true
xss_protection: true
rate_limiting: true
field_filtering: true
# Ejemplos de uso
examples:
- name: "Basic CRUD"
description: "CRUD básico para entidad User"
code: |
// GET /api/users?page=1&limit=10
// POST /api/users
// GET /api/users/123
// PUT /api/users/123
// DELETE /api/users/123
- name: "Advanced filtering"
description: "Filtrado avanzado con búsqueda"
code: |
// GET /api/users?search=john&sort=createdAt:desc&status=active
# Instrucciones para agentes IA
ai_instructions: |
Este módulo genera operaciones CRUD completas para cualquier entidad.
Pasos de activación:
1. Detectar entidades mencionadas en el input del usuario
2. Generar controladores, servicios y DTOs para cada entidad
3. Configurar rutas y middleware
4. Aplicar validaciones y seguridad
Palabras clave de activación:
- "CRUD", "API REST", "endpoints"
- "crear", "leer", "actualizar", "eliminar"
- "controlador", "servicio", "modelo"
Configuración automática:
- Detectar entidades del esquema Prisma
- Generar DTOs basados en modelos
- Configurar paginación y filtros
- Aplicar middleware de autenticación si está disponible
# Scripts de automatización
scripts:
init: "init.js"
generate_entity: "generate-entity.js"
update_routes: "update-routes.js"
validate_schema: "validate-schema.js"
# Pruebas
tests:
unit:
- "controller.test.ts"
- "service.test.ts"
- "dto.test.ts"
integration:
- "crud-api.test.ts"
- "pagination.test.ts"
e2e:
- "crud-flow.e2e.ts"
# Métricas
metrics:
performance:
- query_execution_time
- response_time
- throughput
usage:
- endpoints_called
- entities_created
- queries_executed
# Compatibilidad
compatibility:
node_versions: [">=16.0.0"]
frameworks:
- express: ">=4.18.0"
- fastify: ">=4.0.0"
databases:
- postgresql: ">=12.0"
- mysql: ">=8.0"
- sqlite: ">=3.0"
- mongodb: ">=5.0"
# Documentación
documentation:
readme: "README.md"
api_docs: "api-docs.md"
examples: "examples/"
changelog: "CHANGELOG.md"