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.
349 lines (273 loc) • 10.5 kB
Markdown
# Autenticación JWT para Backend MCP
## Descripción General
Backend MCP utiliza un sistema de autenticación basado en JWT (JSON Web Tokens) para proteger el acceso a sus herramientas mientras mantiene el código fuente completamente abierto en NPM. Esta estrategia permite:
- **Transparencia**: El código es visible y auditable
- **Monetización**: El acceso funcional requiere suscripción
- **Escalabilidad**: Diferentes planes con distintas capacidades
- **Seguridad**: Tokens con expiración y validación remota
## Planes y Precios
### Plan Básico - $5 USD/mes
- ✅ Todas las herramientas básicas de generación
- ✅ Configuración de bases de datos
- ✅ Creación de endpoints y modelos
- ✅ Soporte por email
- 📊 1,000 llamadas/mes
- 📊 10 proyectos activos
- 📊 3 conexiones de BD
### Plan Premium - $15 USD/mes
- ✅ Todo lo del plan Básico
- ✅ Herramientas de Docker y CI/CD
- ✅ Optimización de rendimiento
- ✅ Configuración de caché y monitoreo
- ✅ Soporte prioritario
- 📊 5,000 llamadas/mes
- 📊 50 proyectos activos
- 📊 10 conexiones de BD
### Plan Enterprise - $50 USD/mes
- ✅ Todo lo del plan Premium
- ✅ Herramientas de microservicios
- ✅ Configuración de load balancers
- ✅ Service mesh y observabilidad
- ✅ Soporte 24/7 + consultoría
- 📊 Llamadas ilimitadas
- 📊 Proyectos ilimitados
- 📊 Conexiones ilimitadas
## Configuración
### 1. Obtener Token JWT
1. Visita [https://backend-mcp.com/pricing](https://backend-mcp.com/pricing)
2. Selecciona tu plan preferido
3. Completa el pago con Stripe
4. Recibe tu token JWT por email
5. Gestiona tus tokens en [https://backend-mcp.com/dashboard](https://backend-mcp.com/dashboard)
### 2. Configurar el Token
#### Opción A: Línea de Comandos
```bash
npx backend-mcp postgresql://localhost:5432/db --jwt "tu_token_aqui"
```
#### Opción B: Variable de Entorno
```bash
export BACKEND_MCP_JWT="tu_token_aqui"
npx backend-mcp postgresql://localhost:5432/db
```
#### Opción C: Configuración MCP (Recomendado para Agentes de IA)
Para agentes de IA que usan MCP (Model Context Protocol), esta es la forma más eficiente de configurar el token JWT:
```json
{
"mcpServers": {
"BackendGenerator": {
"command": "npx",
"args": ["-y", "backend-mcp", "postgresql://user:pass@localhost:5432/db"],
"env": {
"BACKEND_MCP_JWT": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJkZW1vLXVzZXIiLCJwbGFuIjoicHJlbWl1bSIsInBlcm1pc3Npb25zIjpbImJhc2ljIiwicHJlbWl1bSJdLCJpYXQiOjE3MzQ5NzQ0MDAsImV4cCI6MTczNzU2NjQwMCwiaXNzIjoiYmFja2VuZC1tY3AifQ.example_signature"
}
}
}
}
```
**Ventajas de esta configuración:**
- ✅ **Acceso inmediato**: La IA tiene acceso completo desde el primer uso
- ✅ **Sin interrupciones**: No necesita solicitar tokens durante la conversación
- ✅ **Máxima eficiencia**: Todas las herramientas disponibles según el plan
- ✅ **Experiencia fluida**: El usuario no necesita gestionar tokens manualmente
**Configuración por Plan:**
```json
// Plan Básico ($5/mes)
{
"mcpServers": {
"BackendGenerator": {
"command": "npx",
"args": ["-y", "backend-mcp", "postgresql://user:pass@localhost:5432/db"],
"env": {
"BACKEND_MCP_JWT": "tu_token_basico_aqui"
}
}
}
}
// Plan Premium ($15/mes) - Recomendado
{
"mcpServers": {
"BackendGenerator": {
"command": "npx",
"args": ["-y", "backend-mcp", "postgresql://user:pass@localhost:5432/db"],
"env": {
"BACKEND_MCP_JWT": "tu_token_premium_aqui"
}
}
}
}
// Plan Enterprise ($50/mes)
{
"mcpServers": {
"BackendGenerator": {
"command": "npx",
"args": ["-y", "backend-mcp", "postgresql://user:pass@localhost:5432/db"],
"env": {
"BACKEND_MCP_JWT": "tu_token_enterprise_aqui"
}
}
}
}
```
#### Opción D: Archivo .env
```env
BACKEND_MCP_JWT=tu_token_aqui
DATABASE_URL=postgresql://localhost:5432/db
```
## Herramientas por Plan
### Herramientas Básicas (Todos los planes)
- `configure_project` - Configuración inicial del proyecto
- `create_endpoint` - Creación de endpoints REST
- `configure_database` - Configuración de base de datos
- `setup_auth` - Configuración de autenticación
- `create_model` - Creación de modelos de datos
- `create_controller` - Creación de controladores
- `create_service` - Creación de servicios
- `create_middleware` - Creación de middleware
- `setup_validation` - Configuración de validaciones
- `create_migration` - Creación de migraciones
### Herramientas Premium (Premium y Enterprise)
- `setup_docker` - Configuración de Docker
- `setup_ci_cd` - Configuración de CI/CD
- `optimize_performance` - Optimización de rendimiento
- `setup_caching` - Configuración de caché
- `setup_monitoring` - Configuración de monitoreo
- `create_tests` - Generación de pruebas
- `setup_security` - Configuración de seguridad
- `analyze_code` - Análisis de código
### Herramientas Enterprise (Solo Enterprise)
- `setup_microservices` - Configuración de microservicios
- `setup_load_balancer` - Configuración de load balancer
- `setup_message_queue` - Configuración de colas de mensajes
- `setup_distributed_cache` - Configuración de caché distribuido
- `setup_api_gateway` - Configuración de API Gateway
- `setup_service_mesh` - Configuración de service mesh
- `setup_observability` - Configuración de observabilidad
- `setup_disaster_recovery` - Configuración de recuperación
## Desarrollo y Testing
### Tokens de Demostración
Para desarrollo y testing, puedes usar tokens de demostración:
```bash
# Generar tokens de demo
npm run auth:demo
# Usar token de demo
npx backend-mcp --jwt "demo_basic_token_2024" postgresql://localhost:5432/db
```
### Bypass de Autenticación (Solo Desarrollo)
```bash
# Activar bypass en desarrollo
export NODE_ENV=development
export BYPASS_AUTH=true
# Ahora funciona sin token
npx backend-mcp postgresql://localhost:5432/db
```
### Validar Token
```bash
# Validar un token específico
npm run auth:validate "tu_token_aqui"
```
## Arquitectura Técnica
### Flujo de Autenticación
1. **Extracción del Token**: El sistema busca el JWT en:
- Argumentos de línea de comandos (`--jwt`)
- Variables de entorno (`BACKEND_MCP_JWT`)
- Parámetros de mensaje MCP
- Headers HTTP (para APIs)
2. **Validación del Token**:
- Verificación de firma HMAC-SHA256
- Validación de expiración
- Verificación del emisor
- Consulta a API de validación remota
3. **Verificación de Permisos**:
- Mapeo de herramienta a plan requerido
- Verificación de permisos del usuario
- Validación de límites de uso
4. **Caché de Tokens**:
- Caché en memoria por 5 minutos
- Reducción de llamadas a API
- Invalidación automática
### Estructura del JWT
```json
{
"header": {
"alg": "HS256",
"typ": "JWT"
},
"payload": {
"iss": "backend-mcp-auth",
"sub": "user_id_123",
"email": "usuario@ejemplo.com",
"plan": "premium",
"permissions": ["basic", "premium"],
"iat": 1703980800,
"exp": 1706572800
}
}
```
### API de Validación
La API de validación está desplegada en Vercel y proporciona:
- `POST /api/auth/validate` - Validar token
- `POST /api/auth/refresh` - Renovar token
- `POST /api/auth/revoke` - Revocar token
- `GET /api/plans` - Información de planes
## Manejo de Errores
### Códigos de Error
- `AUTH_REQUIRED` - Token no proporcionado
- `INVALID_TOKEN` - Token inválido o expirado
- `INSUFFICIENT_PERMISSIONS` - Plan insuficiente para la herramienta
- `NETWORK_ERROR` - Error de conexión con API
- `RATE_LIMIT_EXCEEDED` - Límite de uso excedido
### Mensajes de Error
```bash
# Sin token
🔐 Autenticación requerida. Obtén tu token JWT en https://backend-mcp.com/pricing por solo $5 USD/mes.
# Token inválido
❌ Token JWT inválido o expirado. Verifica tu token o renuévalo en https://backend-mcp.com/dashboard
# Permisos insuficientes
🚫 Permisos insuficientes. Esta herramienta requiere un plan superior. Actualiza en https://backend-mcp.com/upgrade
# Error de red
🌐 Error de conexión con el servidor de autenticación. Verifica tu conexión a internet.
```
## Seguridad
### Mejores Prácticas
1. **Nunca hardcodees tokens** en el código fuente
2. **Usa variables de entorno** para tokens en producción
3. **Rota tokens regularmente** (cada 30 días)
4. **Monitorea el uso** desde el dashboard
5. **Revoca tokens comprometidos** inmediatamente
### Protección de Tokens
- Los tokens tienen expiración automática
- Validación de firma criptográfica
- Revocación instantánea desde dashboard
- Monitoreo de uso anómalo
- Rate limiting por plan
## Migración y Actualización
### Desde Versión Gratuita
1. Instala la nueva versión: `npm install -g backend-mcp@latest`
2. Obtén tu token JWT en el sitio web
3. Configura el token según las opciones anteriores
4. ¡Listo! Todas tus configuraciones existentes funcionarán
### Actualización de Plan
1. Ve a [https://backend-mcp.com/dashboard](https://backend-mcp.com/dashboard)
2. Selecciona "Actualizar Plan"
3. Elige tu nuevo plan
4. El token existente se actualiza automáticamente
5. Las nuevas herramientas estarán disponibles inmediatamente
## Soporte
### Recursos de Ayuda
- 📖 [Documentación Completa](https://backend-mcp.com/docs)
- 💬 [Soporte por Email](mailto:support@backend-mcp.com)
- 🐛 [Reportar Bugs](https://github.com/backend-mcp/issues)
- 💡 [Solicitar Features](https://backend-mcp.com/feature-requests)
### FAQ
**P: ¿Puedo usar Backend MCP sin pagar?**
R: El código es open source y visible, pero las herramientas funcionales requieren suscripción. Ofrecemos tokens de demostración para testing.
**P: ¿Qué pasa si mi token expira?**
R: Recibirás notificaciones por email antes del vencimiento. Puedes renovar desde el dashboard o configurar renovación automática.
**P: ¿Puedo cambiar de plan en cualquier momento?**
R: Sí, puedes actualizar o degradar tu plan desde el dashboard. Los cambios son efectivos inmediatamente.
**P: ¿Los tokens funcionan offline?**
R: Los tokens se validan online, pero hay un caché local de 5 minutos. Para uso completamente offline, considera el plan Enterprise con validación local.
**P: ¿Hay descuentos por pago anual?**
R: Sí, ofrecemos 20% de descuento en planes anuales. Contacta a ventas para más detalles.
---
*Backend MCP - Generación de backends profesionales con autenticación JWT segura*