NitroStack Logo
/python
/sdk
/validation

Validation

Tool input_schema is a Pydantic v2 BaseModel. The app layer parses with parse_tool_input / get_pydantic_model before your handler runs.

Python
from pydantic import BaseModel, Field, field_validator

class SearchInput(BaseModel):
    query: str = Field(min_length=1, description="Search text")
    limit: int = Field(default=10, ge=1, le=100)

    @field_validator("query", mode="before")
    @classmethod
    def empty_to_default(cls, v):
        return v or ""

Optional output_schema is also a Pydantic model. Custom transforms belong in pipes, not Zod .transform().

Invalid input raises ValidationError from nitrostack.