Skip to main content

Validación de entrada

Cuando defines un esquema input, 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 de z.object():

Coerción en peticiones GET

Para peticiones GET, los query parameters son strings. Usa z.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 esquema output, 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.
Si el handler retorna { 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 array details contiene: