UNPKG

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.

386 lines 11.8 kB
{ "name": "ecommerce-complete", "description": "Configuración completa para API de e-commerce", "version": "1.0.0", "steps": [ { "tool": "configure_project", "params": { "projectName": "ecommerce-api", "description": "API completa para e-commerce con autenticación, productos, órdenes y pagos", "author": "Mi Empresa", "version": "1.0.0", "license": "MIT" } }, { "tool": "configure_database", "params": { "provider": "postgresql", "enableMigrations": true, "enableSeeding": true, "poolSize": 15 } }, { "tool": "define_table", "params": { "tableName": "User", "fields": [ {"name": "id", "type": "Int", "required": true, "unique": true}, {"name": "email", "type": "String", "required": true, "unique": true}, {"name": "password", "type": "String", "required": true}, {"name": "firstName", "type": "String", "required": true}, {"name": "lastName", "type": "String", "required": true}, {"name": "role", "type": "String", "defaultValue": "customer"}, {"name": "isActive", "type": "Boolean", "defaultValue": "true"}, {"name": "createdAt", "type": "DateTime", "defaultValue": "now()"}, {"name": "updatedAt", "type": "DateTime", "defaultValue": "now()"} ] } }, { "tool": "define_table", "params": { "tableName": "Category", "fields": [ {"name": "id", "type": "Int", "required": true, "unique": true}, {"name": "name", "type": "String", "required": true, "unique": true}, {"name": "description", "type": "String"}, {"name": "slug", "type": "String", "required": true, "unique": true}, {"name": "isActive", "type": "Boolean", "defaultValue": "true"}, {"name": "createdAt", "type": "DateTime", "defaultValue": "now()"} ] } }, { "tool": "define_table", "params": { "tableName": "Product", "fields": [ {"name": "id", "type": "Int", "required": true, "unique": true}, {"name": "name", "type": "String", "required": true}, {"name": "description", "type": "String"}, {"name": "price", "type": "Float", "required": true}, {"name": "stock", "type": "Int", "defaultValue": "0"}, {"name": "sku", "type": "String", "required": true, "unique": true}, {"name": "categoryId", "type": "Int", "required": true}, {"name": "images", "type": "Json"}, {"name": "isActive", "type": "Boolean", "defaultValue": "true"}, {"name": "createdAt", "type": "DateTime", "defaultValue": "now()"}, {"name": "updatedAt", "type": "DateTime", "defaultValue": "now()"} ], "relations": [ { "type": "oneToMany", "relatedTable": "Category", "foreignKey": "categoryId" } ] } }, { "tool": "define_table", "params": { "tableName": "Order", "fields": [ {"name": "id", "type": "Int", "required": true, "unique": true}, {"name": "userId", "type": "Int", "required": true}, {"name": "total", "type": "Float", "required": true}, {"name": "status", "type": "String", "defaultValue": "pending"}, {"name": "shippingAddress", "type": "Json", "required": true}, {"name": "billingAddress", "type": "Json", "required": true}, {"name": "paymentMethod", "type": "String", "required": true}, {"name": "paymentStatus", "type": "String", "defaultValue": "pending"}, {"name": "createdAt", "type": "DateTime", "defaultValue": "now()"}, {"name": "updatedAt", "type": "DateTime", "defaultValue": "now()"} ], "relations": [ { "type": "oneToMany", "relatedTable": "User", "foreignKey": "userId" } ] } }, { "tool": "define_table", "params": { "tableName": "OrderItem", "fields": [ {"name": "id", "type": "Int", "required": true, "unique": true}, {"name": "orderId", "type": "Int", "required": true}, {"name": "productId", "type": "Int", "required": true}, {"name": "quantity", "type": "Int", "required": true}, {"name": "price", "type": "Float", "required": true}, {"name": "total", "type": "Float", "required": true} ], "relations": [ { "type": "oneToMany", "relatedTable": "Order", "foreignKey": "orderId" }, { "type": "oneToMany", "relatedTable": "Product", "foreignKey": "productId" } ] } }, { "tool": "setup_auth", "params": { "strategy": "jwt", "providers": ["local"], "jwtConfig": { "secret": "auto-generate", "expiresIn": "24h", "algorithm": "HS256" }, "roles": ["admin", "customer", "manager"], "permissions": [ { "resource": "users", "actions": ["create", "read", "update", "delete"], "roles": ["admin"] }, { "resource": "users", "actions": ["read", "update"], "roles": ["customer"] }, { "resource": "products", "actions": ["create", "read", "update", "delete"], "roles": ["admin", "manager"] }, { "resource": "products", "actions": ["read"], "roles": ["customer"] }, { "resource": "orders", "actions": ["create", "read", "update"], "roles": ["customer"] }, { "resource": "orders", "actions": ["read", "update", "delete"], "roles": ["admin", "manager"] } ] } }, { "tool": "add_module", "params": { "moduleName": "crud", "config": { "entities": ["User", "Product", "Category", "Order", "OrderItem"], "enableSoftDelete": true, "enablePagination": true, "enableFiltering": true, "enableSorting": true, "defaultPageSize": 20 } } }, { "tool": "add_module", "params": { "moduleName": "email", "config": { "provider": "smtp", "templates": ["welcome", "order-confirmation", "password-reset"], "enableQueue": true, "retryAttempts": 3 } } }, { "tool": "add_module", "params": { "moduleName": "validation", "config": { "enableRequestValidation": true, "enableResponseValidation": true, "strictMode": true } } }, { "tool": "setup_email", "params": { "provider": "smtp", "config": { "host": "smtp.gmail.com", "port": 587, "secure": false, "auth": { "user": "${EMAIL_USER}", "pass": "${EMAIL_PASS}" } }, "templates": [ { "name": "welcome", "subject": "¡Bienvenido a nuestra tienda!", "htmlTemplate": "<h1>Bienvenido {{firstName}}</h1><p>Gracias por registrarte en nuestra tienda.</p>", "textTemplate": "Bienvenido {{firstName}}. Gracias por registrarte en nuestra tienda." }, { "name": "order-confirmation", "subject": "Confirmación de pedido #{{orderNumber}}", "htmlTemplate": "<h1>Pedido confirmado</h1><p>Tu pedido #{{orderNumber}} por ${{total}} ha sido confirmado.</p>", "textTemplate": "Pedido confirmado. Tu pedido #{{orderNumber}} por ${{total}} ha sido confirmado." } ] } }, { "tool": "setup_cache", "params": { "provider": "redis", "config": { "host": "localhost", "port": 6379, "db": 0 }, "defaultTTL": 3600, "strategies": [ { "key": "product-*", "ttl": 1800, "invalidateOn": ["product-update", "product-delete"] }, { "key": "category-*", "ttl": 3600, "invalidateOn": ["category-update", "category-delete"] }, { "key": "user-profile-*", "ttl": 900, "invalidateOn": ["user-update"] } ] } }, { "tool": "create_endpoint", "params": { "path": "/api/products/search", "method": "POST", "controller": "searchProducts", "middleware": ["validation", "rateLimit"], "validation": { "body": { "query": {"type": "string", "required": true}, "category": {"type": "string"}, "minPrice": {"type": "number"}, "maxPrice": {"type": "number"}, "page": {"type": "number", "default": 1}, "limit": {"type": "number", "default": 20} } }, "requiresAuth": false } }, { "tool": "create_endpoint", "params": { "path": "/api/orders/checkout", "method": "POST", "controller": "processCheckout", "middleware": ["auth", "validation"], "validation": { "body": { "items": {"type": "array", "required": true}, "shippingAddress": {"type": "object", "required": true}, "billingAddress": {"type": "object", "required": true}, "paymentMethod": {"type": "string", "required": true} } }, "requiresAuth": true, "roles": ["customer"] } }, { "tool": "setup_monitoring", "params": { "enabled": true, "metrics": ["requests", "errors", "performance", "database"], "alerts": [ { "metric": "error-rate", "threshold": 5, "action": "send-email" }, { "metric": "response-time", "threshold": 2000, "action": "log-warning" } ], "dashboards": true } }, { "tool": "setup_docker", "params": { "enabled": true, "baseImage": "node:18-alpine", "services": [ { "name": "postgres", "image": "postgres:15", "ports": ["5432:5432"], "environment": { "POSTGRES_DB": "ecommerce", "POSTGRES_USER": "ecommerce_user", "POSTGRES_PASSWORD": "ecommerce_pass" } }, { "name": "redis", "image": "redis:7-alpine", "ports": ["6379:6379"] } ], "volumes": ["./data/postgres:/var/lib/postgresql/data"], "networks": ["ecommerce-network"] } }, { "tool": "setup_testing", "params": { "framework": "jest", "coverage": true, "testTypes": ["unit", "integration", "e2e"], "mocking": true, "fixtures": true } }, { "tool": "validate_config", "params": { "strict": true, "checkDependencies": true, "validateSchemas": true } }, { "tool": "generate_project", "params": { "outputPath": "./generated-projects/ecommerce-api", "installDependencies": true, "runMigrations": true, "generateDocs": true } } ] }