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.

179 lines 6.17 kB
{ "name": "rental-management-api", "description": "API para manejo de arriendos con PostgreSQL usando URL de conexión", "version": "1.0.0", "steps": [ { "tool": "configure_project", "params": { "projectName": "rental-management-api", "description": "Sistema completo para gestión de arriendos de propiedades", "author": "Federico", "version": "1.0.0", "license": "MIT" } }, { "tool": "configure_database", "params": { "provider": "postgresql", "url": "postgresql://rental_user:secure_password@localhost:5432/rental_management_db?schema=public", "enableMigrations": true, "enableSeeding": true, "poolSize": 15, "connectionTimeout": 30000, "queryTimeout": 60000, "ssl": false } }, { "tool": "define_table", "params": { "tableName": "Property", "fields": [ { "name": "id", "type": "Int", "required": true, "unique": true }, { "name": "title", "type": "String", "required": true }, { "name": "description", "type": "String", "required": true }, { "name": "address", "type": "String", "required": true }, { "name": "price", "type": "Float", "required": true }, { "name": "bedrooms", "type": "Int", "required": true }, { "name": "bathrooms", "type": "Int", "required": true }, { "name": "area", "type": "Float", "required": true }, { "name": "available", "type": "Boolean", "required": true, "defaultValue": "true" }, { "name": "createdAt", "type": "DateTime", "required": true }, { "name": "updatedAt", "type": "DateTime", "required": true } ] } }, { "tool": "define_table", "params": { "tableName": "Tenant", "fields": [ { "name": "id", "type": "Int", "required": true, "unique": true }, { "name": "firstName", "type": "String", "required": true }, { "name": "lastName", "type": "String", "required": true }, { "name": "email", "type": "String", "required": true, "unique": true }, { "name": "phone", "type": "String", "required": true }, { "name": "idNumber", "type": "String", "required": true, "unique": true }, { "name": "createdAt", "type": "DateTime", "required": true }, { "name": "updatedAt", "type": "DateTime", "required": true } ] } }, { "tool": "define_table", "params": { "tableName": "Rental", "fields": [ { "name": "id", "type": "Int", "required": true, "unique": true }, { "name": "propertyId", "type": "Int", "required": true }, { "name": "tenantId", "type": "Int", "required": true }, { "name": "startDate", "type": "DateTime", "required": true }, { "name": "endDate", "type": "DateTime", "required": true }, { "name": "monthlyRent", "type": "Float", "required": true }, { "name": "deposit", "type": "Float", "required": true }, { "name": "status", "type": "String", "required": true, "defaultValue": "active" }, { "name": "createdAt", "type": "DateTime", "required": true }, { "name": "updatedAt", "type": "DateTime", "required": true } ], "relations": [ { "type": "oneToMany", "relatedTable": "Property", "foreignKey": "propertyId" }, { "type": "oneToMany", "relatedTable": "Tenant", "foreignKey": "tenantId" } ] } }, { "tool": "setup_auth", "params": { "strategy": "jwt", "providers": ["local"], "jwtConfig": { "secret": "rental_management_secret_key", "expiresIn": "24h", "algorithm": "HS256" }, "roles": ["admin", "landlord", "tenant"], "permissions": [ { "resource": "properties", "actions": ["create", "read", "update", "delete"], "roles": ["admin", "landlord"] }, { "resource": "rentals", "actions": ["create", "read", "update"], "roles": ["admin", "landlord"] }, { "resource": "tenants", "actions": ["read", "update"], "roles": ["tenant"] } ] } }, { "tool": "create_endpoint", "params": { "path": "/api/properties", "method": "GET", "description": "Obtener todas las propiedades disponibles", "auth": true, "roles": ["admin", "landlord", "tenant"], "validation": { "query": { "available": { "type": "boolean", "optional": true }, "minPrice": { "type": "number", "optional": true }, "maxPrice": { "type": "number", "optional": true }, "bedrooms": { "type": "number", "optional": true } } }, "response": { "type": "array", "items": "Property" } } }, { "tool": "create_endpoint", "params": { "path": "/api/rentals", "method": "POST", "description": "Crear un nuevo contrato de arriendo", "auth": true, "roles": ["admin", "landlord"], "validation": { "body": { "propertyId": { "type": "number", "required": true }, "tenantId": { "type": "number", "required": true }, "startDate": { "type": "string", "format": "date", "required": true }, "endDate": { "type": "string", "format": "date", "required": true }, "monthlyRent": { "type": "number", "required": true }, "deposit": { "type": "number", "required": true } } }, "response": { "type": "object", "model": "Rental" } } }, { "tool": "validate_config", "params": { "strict": true, "checkDependencies": true, "validateRelations": true } } ] }