# `ExMCP.Reliability.Supervisor`
[🔗](https://github.com/azmaveth/ex_mcp/blob/v1.0.0/lib/ex_mcp/reliability/supervisor.ex#L1)

Supervisor for reliability components in ExMCP.

Manages circuit breakers, health checks, and provides
integrated reliability features for MCP clients and servers.

## Usage

    # Add to your supervision tree
    children = [
      {ExMCP.Reliability.Supervisor, name: MyApp.Reliability}
    ]

    # Or start manually
    {:ok, sup} = ExMCP.Reliability.Supervisor.start_link()

    # Create reliability-enhanced client
    {:ok, client} = ExMCP.Reliability.Supervisor.create_reliable_client(
      sup,
      transport: :stdio,
      circuit_breaker: [
        failure_threshold: 5,
        reset_timeout: 30_000
      ],
      retry: [
        max_attempts: 3,
        backoff_factor: 2
      ],
      health_check: [
        check_interval: 60_000,
        failure_threshold: 3
      ]
    )

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `create_reliable_client`

```elixir
@spec create_reliable_client(
  Supervisor.supervisor(),
  keyword()
) :: {:ok, pid()} | {:error, term()}
```

Creates a reliability-enhanced MCP client.

This wraps a standard MCP client with circuit breaker, retry logic,
and health monitoring.

## Options

- `:transport` - Transport configuration for the client
- `:circuit_breaker` - Circuit breaker options (optional)
- `:retry` - Retry configuration (optional)
- `:health_check` - Health check configuration (optional)
- `:max_concurrency` - Maximum concurrently executing requests through the
  wrapper (optional, default: 100)

# `start_link`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
