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
JSON
{
"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
}
}
]
}