Backplane.McpProtocol.Transport.RequestContext (backplane_mcp_protocol v0.6.0)

Copy Markdown

Immutable protocol context captured for one outbound transport send.

The context belongs to the request, not the connection. This lets one HTTP transport carry a modern discovery probe followed by a legacy initialize request without retaining a transport-global protocol era.

Summary

Functions

Encodes one primitive request parameter for safe HTTP header transport.

Returns true when this individual request uses the stateless modern protocol.

Normalizes and encodes the request's declared Mcp-Param-* mirrors.

Types

t()

@type t() :: %Backplane.McpProtocol.Transport.RequestContext{
  era: Backplane.McpProtocol.Protocol.Profile.era(),
  lifecycle: Backplane.McpProtocol.Protocol.Profile.lifecycle(),
  method: String.t(),
  parameter_headers: map(),
  params: map(),
  profile: Backplane.McpProtocol.Protocol.Profile.t(),
  protocol_version: String.t()
}

Functions

mirrored_value(value)

@spec mirrored_value(term()) :: {:ok, String.t()} | :omit | {:error, atom()}

Encodes one primitive request parameter for safe HTTP header transport.

modern?(request_context)

@spec modern?(t()) :: boolean()

Returns true when this individual request uses the stateless modern protocol.

new(method, params, state, opts \\ [])

@spec new(
  String.t(),
  map(),
  Backplane.McpProtocol.Client.State.t() | map(),
  keyword()
) :: t()

parameter_headers(headers)

@spec parameter_headers(t() | map()) :: {:ok, map()} | {:error, term()}

Normalizes and encodes the request's declared Mcp-Param-* mirrors.