# `T3.Client`
[🔗](https://github.com/dl-alexandre/t3-elixir/blob/main/lib/t3/client.ex#L1)

A connection to one T3 `/mcp` endpoint, backed by ConduitMCP.

`connect/1` starts a linked supervised connection; `close/1` stops it.
Keep the returned client for subsequent calls. Token values may be strings
or `ConduitMcp.Client.Secret` values. No credentials are persisted by T3.Client.

# `t`

```elixir
@type t() :: %T3.Client{
  connected?: term(),
  name: term(),
  protocol_version: term(),
  supervisor: term(),
  timeout: term(),
  token: term(),
  url: term()
}
```

# `call_tool`

Call an advertised tool and return its MCP result envelope.

# `close`

Stop this connection and terminate its MCP session. Safe to call repeatedly.

# `connect`

```elixir
@spec connect(t()) :: {:ok, t()} | {:error, T3.Error.t()}
```

# `list_tools`

List a page of tools; pass nextCursor back as the string-keyed cursor argument.

# `new`

```elixir
@spec new(keyword()) :: t()
```

---

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