# `Anubis.Server.Context`

Read-only session and request context, set by the SDK before each callback.

The Session process builds a fresh Context before every user callback invocation.
Mutations have no lasting effect — the Session always overwrites it.

For STDIO transport, `headers` is empty and `remote_ip` is nil.
For HTTP transport, headers are normalized to lowercase string keys.

# `t`

```elixir
@type t() :: %Anubis.Server.Context{
  client_info: map() | nil,
  headers: %{required(String.t()) =&gt; String.t()},
  remote_ip: :inet.ip_address() | nil,
  session_id: String.t() | nil
}
```

---

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