# `Backplane.McpProtocol.Protocol.Profile`

Describes the lifecycle and wire surface of an MCP protocol version.

Profiles keep the session-oriented legacy revisions separate from the
stateless protocol introduced in `2026-07-28`.

# `era`

```elixir
@type era() :: :legacy | :modern
```

# `lifecycle`

```elixir
@type lifecycle() :: :initialize | :per_request
```

# `t`

```elixir
@type t() :: %Backplane.McpProtocol.Protocol.Profile{
  cacheable_methods: [String.t()],
  era: era(),
  extensions: %{optional(String.t()) =&gt; map()},
  features: [atom()],
  lifecycle: lifecycle(),
  named_methods: [String.t()],
  notification_methods: [String.t()],
  request_methods: [String.t()],
  version: String.t()
}
```

---

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