Code Mode
Cómo funciona el sandbox code-mode y cómo los clientes IA escriben TypeScript para consultar tus datos.
El Servidor MCP usa un enfoque code-mode en lugar de definiciones de herramientas tradicionales. En vez de exponer docenas de herramientas separadas, proporciona una única herramienta execute_code donde la IA escribe TypeScript contra el namespace brakinglab.*.
Cómo Funciona
La IA escribe TypeScript → esbuild transpila → isolated-vm ejecuta → resultados devueltos
- Generación de tipos: El servidor auto-genera definiciones TypeScript desde su catálogo de funciones
- La IA escribe código: Usando el namespace
brakinglab.*con hints de tipos completos - Transpilación: esbuild convierte TypeScript a JavaScript
- Ejecución en sandbox: isolated-vm ejecuta el código sin acceso a red ni filesystem
- Resultados: La salida de
console.log()y los valores de retorno se envían de vuelta a la IA
Ejemplo: Análisis de Coaching
Esto es lo que una IA podría escribir cuando preguntas “¿Dónde pierdo tiempo en Spa?”:
// Obtener sesiones recientes en Spa
const sessions = await brakinglab.getSessions({ trackName: "Spa", limit: 5 });
// Encontrar curvas más débiles
const weak = await brakinglab.getWeakCorners({ trackName: "Spa", limit: 5 });
// Obtener datos de frenado de la última sesión
const braking = await brakinglab.getBrakingZones({
sessionId: sessions[0].id,
});
// Registrar hallazgos
console.log("Curvas más débiles:", weak);
console.log("Zonas de frenado:", braking);
// Guardar informe de coaching
await brakinglab.saveCoachingReport({
sessionId: sessions[0].id,
overview: {
assessment: "needs_work",
summary: "Tres curvas en Spa están costando tiempo significativo...",
},
pace: {
bestLapMs: sessions[0].bestLapMs,
averageLapMs: 138500,
consistencyPct: 85,
improvementTrend: "improving",
},
corners: weak.map((c) => ({
cornerIndex: c.cornerIndex,
cornerName: c.cornerName,
verdict: "needs_work",
issue: c.topIssue,
detail: `Score de debilidad: ${c.weaknessScore}/100`,
})),
actionItems: [
{
priority: 1,
action: "Enfocarse en trail braking en La Source",
why: "Soltando freno demasiado rápido, perdiendo 0.3s",
},
],
});
Restricciones del Sandbox
El sandbox está diseñado para seguridad:
| Restricción | Valor |
|---|---|
| Timeout | 10 segundos por ejecución |
| Memoria | Límite de 32 MB |
| Llamadas API | Máximo 20 por bloque de código |
| Tamaño de código | Máximo 10 KB |
| Salida | Máximo 100 KB |
| Red | Ninguna (totalmente aislado) |
| Sistema de archivos | Ninguno (totalmente aislado) |
Seguridad de Tipos
Todas las funciones usan esquemas Zod para validación de entrada:
- Las funciones READ-ONLY aceptan parámetros flexibles
- Las funciones MUTATING y CREATIVE usan
.strict()— campos desconocidos causan errores - Las funciones pueden aceptar
_validateOnly: truepara validar sin escribir
Los errores de validación devuelven JSON estructurado con feedback a nivel de campo:
{
"error": "Validación fallida",
"issues": [
{ "path": ["corners", 0, "verdict"], "message": "Campo requerido" }
]
}
Qué Puede y No Puede Hacer la IA
Puede:
- Consultar cualquier dato de tu cuenta (sesiones, carreras, notas, etc.)
- Escribir informes de coaching y evaluaciones de preparación
- Crear y gestionar eventos de carrera, preparaciones y notas de circuito
- Comparar vueltas y generar estrategia de carrera
- Componer múltiples llamadas a funciones para análisis complejos
No puede:
- Acceder a datos de otros usuarios
- Hacer peticiones de red a servicios externos
- Acceder al sistema de archivos
- Ejecutarse por más de 10 segundos
- Eliminar tu cuenta o cambiar ajustes