> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcp-use.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Structured Output

> Get strongly-typed Pydantic models with intelligent retry logic

The MCPAgent supports structured output, allowing you to get strongly-typed Pydantic models instead of plain text responses. The agent becomes **schema-aware** and will intelligently retry to gather missing information until all required fields can be populated.

## How it Works

When you provide an `output_schema` parameter, the agent:

1. **Understands requirements** - The agent knows exactly what information it needs to collect
2. **Attempts structured output** - At completion points, tries to format the result into your schema
3. **Intelligently retries** - If required fields are missing, continues execution to gather the missing data
4. **Validates completeness** - Only finishes when all required fields can be populated

## Basic Example

<CodeGroup>
  ```python Python theme={null}
  import asyncio
  from pydantic import BaseModel, Field
  from langchain_openai import ChatOpenAI
  from mcp_use import MCPAgent, MCPClient

  class WeatherInfo(BaseModel):
      """Weather information for a location"""
      city: str = Field(description="City name")
      temperature: float = Field(description="Temperature in Celsius")
      condition: str = Field(description="Weather condition")
      humidity: int = Field(description="Humidity percentage")

  async def main():
      # Setup client and agent
      client = MCPClient(config={"mcpServers": {...}})
      llm = ChatOpenAI(model="gpt-5.5")
      agent = MCPAgent(llm=llm, client=client)

      # Get structured output
      weather: WeatherInfo = await agent.run(
          "Get the current weather in San Francisco",
          output_schema=WeatherInfo
      )

      print(f"Temperature in {weather.city}: {weather.temperature}°C")
      print(f"Condition: {weather.condition}")
      print(f"Humidity: {weather.humidity}%")

  asyncio.run(main())
  ```
</CodeGroup>

## Key Benefits

* **Type Safety**: Get Pydantic (Python) or Zod (TypeScript) models with full IDE support and validation
* **Intelligent Gathering**: Agent knows what information is required and won't stop until it has everything
* **Automatic Retry**: Missing fields trigger continued execution automatically
* **Field Validation**: Built-in validation for required fields, data types, and constraints

The agent will continue working until all required fields in your schema can be populated, ensuring you always get complete, structured data.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.