Validación de entrada
Cuando defines un esquemainput, cada petición se valida antes de ejecutar el handler. Si la validación falla, el handler no se ejecuta y se retorna un 400:
Ejemplo con esquema completo
index.ts
Tipos soportados
Puedes usar cualquier tipo de Zod dentro dez.object():
Coerción en peticiones GET
Para peticiones GET, los query parameters son strings. Usaz.coerce para convertir tipos automáticamente:
index.ts
Anotaciones .describe()
Usa .describe() en cada campo para documentar los parámetros. Estas descripciones aparecen automáticamente en el esquema MCP, lo que ayuda a los agentes IA a entender cómo usar tu función:
Validación de salida
Cuando defines un esquemaoutput, el valor retornado por el handler se valida después de la ejecución. Si no coincide:
- Se registra una advertencia en los logs
- La respuesta se envía normalmente con status
200
La validación de output nunca bloquea la respuesta. Es una herramienta de desarrollo para detectar inconsistencias.
{ nombre: "María", saldo: "150" } (saldo como string), verás una advertencia en los logs pero el cliente recibe la respuesta sin cambios.
Formato de errores de validación
Cada error en el arraydetails contiene:
| Campo | Tipo | Descripción |
|---|---|---|
path | string[] | Ruta al campo con error, ej: ["email"] o ["direccion", "ciudad"] |
message | string | Mensaje legible del error |
code | string | Código de error de Zod (ej: invalid_string, too_small, invalid_enum_value) |