Skip to main content

Crate fastmcp_protocol

Crate fastmcp_protocol 

Source
Expand description

MCP protocol types and JSON-RPC implementation.

This crate provides:

  • JSON-RPC 2.0 message types
  • MCP-specific method types (tools, resources, prompts)
  • Protocol version negotiation
  • Message serialization/deserialization

MCP 2026-07-28 support is under implementation and remains unverified. Its core vocabulary is always available. Optional legacy, Tasks, and Apps wire surfaces require their matching crate features and are not aggregate conformance or release evidence.

§MCP Protocol Overview

MCP (Model Context Protocol) uses JSON-RPC 2.0 over various transports. The protocol defines:

  • Tools: Executable functions the client can invoke
  • Resources: Data sources the client can read
  • Prompts: Template prompts for the client to use

§Wire Format

Protocol values serialize as JSON-RPC. Framing is transport-specific; the stdio transport uses newline-delimited JSON (NDJSON).

§Role in the System

fastmcp-protocol is the shared vocabulary for FastMCP:

  • The server uses these types to validate and serialize responses.
  • The client uses the same types to construct requests and parse replies.
  • Transports carry these messages without needing to know business logic.

If you are integrating FastMCP with a custom runtime or embedding it into another system, depend on this crate to use FastMCP’s current JSON-RPC and MCP data models. The modernization disclaimer above still applies.

Re-exports§

pub use common_types::JsonInteger;
pub use extensions::ClientExtensionDiscovery;
pub use extensions::ExtensionDescriptor;
pub use extensions::ExtensionDescriptorRegistry;
pub use extensions::ExtensionDirection;
pub use extensions::ExtensionDiscovery;
pub use extensions::ExtensionFallbackPolicy;
pub use extensions::ExtensionHttpEraDisposition;
pub use extensions::ExtensionId;
pub use extensions::ExtensionMethodDescriptor;
pub use extensions::ExtensionNegotiationResolver;
pub use extensions::ExtensionNotificationDescriptor;
pub use extensions::ExtensionRegistryError;
pub use extensions::ExtensionRegistryReceipt;
pub use extensions::ExtensionRoutingHeaderDescriptor;
pub use extensions::ExtensionSettings;
pub use extensions::ExtensionSettingsCompatibilityResolver;
pub use extensions::ExtensionSettingsResolution;
pub use extensions::ExtensionSettingsSchema;
pub use extensions::MAX_EXTENSION_DESCRIPTORS;
pub use extensions::MAX_EXTENSION_ID_BYTES;
pub use extensions::MAX_EXTENSION_REGISTRY_CANONICAL_BYTES;
pub use extensions::MAX_EXTENSION_SETTINGS_ENTRIES;
pub use extensions::MAX_EXTENSION_SETTINGS_KEY_BYTES;
pub use extensions::MAX_EXTENSION_SETTINGS_NESTING;
pub use extensions::MAX_EXTENSION_SETTINGS_VALUE_BYTES;
pub use extensions::MAX_MCP_APPS_MIME_TYPE_BYTES;
pub use extensions::MAX_MCP_APPS_MIME_TYPES;
pub use extensions::MCP_APPS_ACTIVATION_PREDICATE_ID;
pub use extensions::MCP_APPS_CLIENT_SETTINGS_SCHEMA_ID;
pub use extensions::MCP_APPS_DOWNLOAD_FILE_METHOD;
pub use extensions::MCP_APPS_HOST_CONTEXT_CHANGED_NOTIFICATION;
pub use extensions::MCP_APPS_HTML_MIME_TYPE;
pub use extensions::MCP_APPS_INITIALIZE_METHOD;
pub use extensions::MCP_APPS_INITIALIZED_NOTIFICATION;
pub use extensions::MCP_APPS_MESSAGE_METHOD;
pub use extensions::MCP_APPS_NEGOTIATION_RESOLVER_ID;
pub use extensions::MCP_APPS_REQUEST_DISPLAY_MODE_METHOD;
pub use extensions::MCP_APPS_REQUEST_TEARDOWN_NOTIFICATION;
pub use extensions::MCP_APPS_RESOURCE_TEARDOWN_METHOD;
pub use extensions::MCP_APPS_SANDBOX_PROXY_READY_NOTIFICATION;
pub use extensions::MCP_APPS_SANDBOX_RESOURCE_READY_NOTIFICATION;
pub use extensions::MCP_APPS_SERVER_SETTINGS_SCHEMA_ID;
pub use extensions::MCP_APPS_SIZE_CHANGED_NOTIFICATION;
pub use extensions::MCP_APPS_TOOL_CANCELLED_NOTIFICATION;
pub use extensions::MCP_APPS_TOOL_INPUT_NOTIFICATION;
pub use extensions::MCP_APPS_TOOL_INPUT_PARTIAL_NOTIFICATION;
pub use extensions::MCP_APPS_TOOL_RESULT_NOTIFICATION;
pub use extensions::MCP_APPS_UPDATE_MODEL_CONTEXT_METHOD;
pub use extensions::McpAppsClientSettings;
pub use extensions::McpAppsNegotiationResolver;
pub use extensions::OFFICIAL_MCP_APPS_EXTENSION_ID;
pub use extensions::RejectingExtensionNegotiationResolver;
pub use extensions::ServerExtensionDiscovery;
pub use extensions::StdioCorrelationDescriptor;
pub use extensions::official_mcp_apps_descriptor;
pub use extensions::official_mcp_apps_empty_server_settings;
pub use extensions::official_mcp_apps_extension_id;
pub use extensions::official_mcp_apps_negotiation_resolver;
pub use extensions::register_official_mcp_apps_extension;
pub use extensions::resolve_official_mcp_apps_settings;
pub use methods::SERVER_DISCOVER;
pub use protocol_version::FINAL_PROTOCOL_VERSION;
pub use protocol_version::FinalHttpRequestMetadata;
pub use protocol_version::FinalProtocolVersion;
pub use protocol_version::FinalRequestAdmission;
pub use protocol_version::HEADER_MISMATCH_ERROR_CODE;
pub use protocol_version::HeaderMismatchError;
pub use protocol_version::HeaderMismatchReason;
pub use protocol_version::MAX_REQUIRED_CAPABILITIES_ERROR_DATA_BYTES;
pub use protocol_version::MCP_METHOD_HEADER;
pub use protocol_version::MCP_NAME_HEADER;
pub use protocol_version::MCP_PROTOCOL_VERSION_HEADER;
pub use protocol_version::MISSING_REQUIRED_CLIENT_CAPABILITY_ERROR_CODE;
pub use protocol_version::MissingRequiredClientCapabilityError;
pub use protocol_version::ProtocolVersionError;
pub use protocol_version::RequestAdmissionError;
pub use protocol_version::RequestVersionMetadata;
pub use protocol_version::RequiredCapabilitiesError;
pub use protocol_version::SUPPORTED_FINAL_PROTOCOL_VERSIONS;
pub use protocol_version::UNSUPPORTED_PROTOCOL_VERSION_ERROR_CODE;
pub use protocol_version::UnsupportedProtocolVersionError;
pub use protocol_version::admit_final_http_request;
pub use protocol_version::admit_final_request;
pub use protocol_version::validate_final_protocol_version;
pub use schema::AdmittedFinalFormSchema;
pub use schema::AdmittedSchema;
pub use schema::FinalCoreResultType;
pub use schema::SchemaAdmissionError;
pub use schema::ValidationError;
pub use schema::ValidationResult;
pub use schema::admit_final_form_schema;
pub use schema::admit_final_schema;
pub use schema::validate;
pub use schema::validate_final_core_result;
pub use schema::validate_strict;
pub use server_discovery::DiscoveryCacheHints;
pub use server_discovery::MAX_SERVER_INSTRUCTIONS_BYTES;
pub use server_discovery::SERVER_DISCOVER_METHOD;
pub use server_discovery::SERVER_DISCOVER_SERVER_INFO_META_KEY;
pub use server_discovery::SERVER_DISCOVER_SUPPORTED_VERSIONS;
pub use server_discovery::ServerBehavior;
pub use server_discovery::ServerBehaviorRegistry;
pub use server_discovery::ServerDiscoverCapabilities;
pub use server_discovery::ServerDiscoverRequest;
pub use server_discovery::ServerDiscoverResult;
pub use server_discovery::ServerDiscoveryError;
pub use server_discovery::ServerInstructionError;
pub use server_discovery::ServerInstructions;
pub use uri_template::MAX_URI_TEMPLATE_BYTES;
pub use uri_template::MAX_URI_TEMPLATE_COMPOSITE_ITEMS;
pub use uri_template::MAX_URI_TEMPLATE_EXPANSION_OUTPUT_BYTES;
pub use uri_template::MAX_URI_TEMPLATE_EXPRESSIONS;
pub use uri_template::MAX_URI_TEMPLATE_PARTS;
pub use uri_template::MAX_URI_TEMPLATE_PREFIX_LENGTH;
pub use uri_template::MAX_URI_TEMPLATE_VALUE_BYTES;
pub use uri_template::MAX_URI_TEMPLATE_VARIABLE_NAME_BYTES;
pub use uri_template::MAX_URI_TEMPLATE_VARIABLES_PER_EXPRESSION;
pub use uri_template::ReversibleResourceTemplate;
pub use uri_template::TemplateValue;
pub use uri_template::TemplateValues;
pub use uri_template::UriTemplate;
pub use uri_template::UriTemplateError;
pub use uri_template::UriTemplateExpansionLimits;
pub use uri_template::UriTemplateExpression;
pub use uri_template::UriTemplateModifier;
pub use uri_template::UriTemplateOperator;
pub use uri_template::UriTemplatePart;

Modules§

common_types
Final MCP common wire types kept separate while the legacy type surface is migrated.
extensions
Frozen, runtime-neutral extension negotiation and request admission.
methods
Canonical MCP JSON-RPC method names.
protocol_policy
Exact MCP protocol-version identity and immutable era-policy selection.
protocol_version
Final MCP protocol-version header validation.
schema
JSON Schema validation for MCP tool inputs.
server_discovery
Typed server/discover vocabulary for the final MCP discovery surface.
uri_template
Bounded RFC 6570 Level 4 URI-template parsing and expansion.

Structs§

CacheTtl
A nonnegative final cache TTL that retains its exact JSON-integer spelling.
CacheableResult
A complete-result composition with strict cache hints.
CallToolParams
tools/call request params.
CallToolResult
tools/call response result.
CancelledParams
Cancelled notification params.
ClientCapabilities
Client capabilities.
ClientInfo
Client information.
CompleteResult
A typed core complete result with inert open siblings.
CompletionValues
Completion candidates returned by the legacy protocol era.
CompletionsCapability
Empty object advertised when completion/complete is installed.
CoreResultDiscriminatorPolicy
The default policy: only core discriminators are accepted locally.
CreateMessageParams
sampling/createMessage request params.
CreateMessageResult
sampling/createMessage response result.
ElicitCompleteNotificationParams
Elicitation complete notification params.
ElicitRequestFormParams
Parameters for form mode elicitation requests.
ElicitRequestUrlParams
Parameters for URL mode elicitation requests.
ElicitResult
elicitation/create response result.
ElicitationCapability
Elicitation capability.
ElicitationRequiredErrorData
Error data for URL elicitation required errors.
ExactJsonMember
One JSON object member.
ExactJsonObject
An ordered JSON object.
FinalBaseMetadata
Shared final component identity fields.
FinalCallToolParams
Final tools/call request parameters.
FinalCallToolResult
Final tools/call result payload using final common content blocks.
FinalCancelledNotificationParams
Exact final notifications/cancelled parameters.
FinalCompletionArgument
Final completion argument selector.
FinalCompletionContext
Optional final completion context.
FinalCompletionParams
Final completion/complete request parameters.
FinalCompletionResult
Final completion/complete result payload.
FinalCompletionValues
Completion candidates returned by the final protocol era.
FinalCreateMessageInputRequiredResult
Exact final sampling/createMessage input-required result.
FinalCreateMessageParams
Exact final sampling/createMessage parameters.
FinalCreateMessageResult
Exact final sampling/createMessage complete payload.
FinalEmbeddedCreateMessageParams
Exact final parameters for an embedded sampling descriptor.
FinalEmbeddedElicitationResult
Exact elicitation response payload embedded in a Task input response map.
FinalEmbeddedFormElicitationParams
Form elicitation request parameters without an outer request envelope.
FinalEmbeddedRootsListParams
Bounded generic metadata permitted on an embedded roots descriptor.
FinalEmbeddedRootsListResult
Exact roots-list result payload embedded in a Task input response map.
FinalEmbeddedUrlElicitationParams
URL elicitation request parameters without legacy elicitation identity.
FinalEmptyNotificationParams
Exact optional parameter object for final catalog-change notifications.
FinalEmptyParams
Final empty request parameters, used by server/discover.
FinalEmptyResult
Empty final complete-result payload used by acknowledgement methods.
FinalGetPromptParams
Final prompts/get request parameters.
FinalGetPromptResult
Final prompts/get result payload.
FinalInputResponses
Typed, order-preserving client replies to server-issued final MRTR input requests.
FinalListParams
Final pagination parameters shared by the core catalog methods.
FinalListPromptsResult
Final prompts/list result payload.
FinalListResourceTemplatesResult
Final resources/templates/list result payload.
FinalListResourcesResult
Final resources/list result payload.
FinalListToolsResult
Final tools/list result payload.
FinalLogMessageParams
Exact final notifications/message parameters.
FinalProgressNotificationParams
Exact final notifications/progress parameters.
FinalPrompt
Exact final Prompt model.
FinalPromptArgument
Exact final prompt-argument model.
FinalPromptMessage
One final prompt message using a final common content block.
FinalReadResourceParams
Final resources/read request parameters.
FinalReadResourceResult
Final resources/read result payload using final common resource content.
FinalRequestMeta
Required final metadata carried in the _meta object of every request.
FinalResource
Exact final Resource model.
FinalResourceTemplate
Exact final ResourceTemplate model.
FinalResourceUpdatedNotificationParams
Exact final notifications/resources/updated parameters.
FinalResultMetadataSeal
Server-owned final metadata retained across response middleware.
FinalSamplingMessage
A final sampling conversation message.
FinalSubscriptionsAcknowledgedNotificationParams
Final notifications/subscriptions/acknowledged parameters.
FinalSubscriptionsListenParams
Final subscriptions/listen request parameters.
FinalSubscriptionsListenResult
Empty final subscriptions/listen result body.
FinalTool
Exact final Tool model.
FinalToolAnnotations
Final tool annotations, including the final display-title hint.
FinalToolChoice
Tool-selection controls for final sampling.
FormElicitationCapability
Capability for form mode elicitation.
GetPromptParams
prompts/get request params.
GetPromptResult
prompts/get response result.
Icon
Icon metadata for visual representation of components.
InitializeParams
Initialize request params.
InitializeResult
Initialize response result.
InputRequiredResult
A typed core input_required result with inert open siblings.
JsonRpcError
JSON-RPC 2.0 error object.
JsonRpcRequest
JSON-RPC 2.0 request.
JsonRpcResponse
JSON-RPC 2.0 response.
JsonRpcResponseAdmission
One strictly admitted JSON-RPC response paired with the exact source JSON of its result member.
LegacyCompletionArgument
Exact legacy completion argument selector.
LegacyCompletionParams
Exact 2024-11-05 completion/complete request parameters.
LegacyCompletionResult
Exact legacy completion/complete result payload.
LegacyEmptyResult
Empty exact-legacy result payload used by acknowledgement methods.
LegacyOpaqueMetadata
Ordered opaque legacy metadata.
LegacyPromptMessage
Exact 2024-11-05 prompt messages carried in legacy results.
ListPromptsParams
prompts/list request params.
ListPromptsResult
prompts/list response result.
ListResourceTemplatesParams
resources/templates/list request params.
ListResourceTemplatesResult
resources/templates/list response result.
ListResourcesParams
resources/list request params.
ListResourcesResult
resources/list response result.
ListRootsParams
roots/list request params.
ListRootsResult
roots/list response result.
ListToolsParams
tools/list request params.
ListToolsResult
tools/list response result.
LogMessageParams
Log message notification params.
LoggingCapability
Logging capability.
McpAppsResourceBinding
A validated association between a tool’s nested Apps metadata and an HTML UI resource in the final catalog.
McpAppsResourceCsp
Bounded CSP origins declared by an Apps resource.
McpAppsResourceMetadata
Closed Apps rendering metadata attached to a Resource under _meta.ui.
McpAppsResourcePermission
An empty-object Apps sandbox permission marker.
McpAppsResourcePermissions
Optional sandbox permissions requested by an Apps resource.
McpAppsToolMetadata
Closed Apps metadata attached to a final Tool under _meta.ui.
McpAppsToolResult
One validated Apps-side projection of a complete final tools/call result.
MetadataView
Read-only view of optional result metadata.
ModelHint
A hint for model selection.
ModelPreferences
Model preferences for sampling requests.
PaginatedResult
A complete-result composition with a pagination cursor.
ProgressParams
Progress notification params.
Prompt
Prompt definition.
PromptArgument
Prompt argument definition.
PromptMessage
A message in a prompt.
PromptsCapability
Prompt capabilities.
RawResultEnvelope
A raw result envelope for a non-core discriminator. It is diagnostic data, not an activated extension result.
ReadResourceParams
resources/read request params.
ReadResourceResult
resources/read response result.
RequestMeta
Request metadata containing optional progress marker.
Resource
Resource definition.
ResourceContent
Resource content in a message.
ResourceTemplate
Resource template definition.
ResourceUpdatedNotificationParams
Resource updated notification params.
ResourcesCapability
Resource capabilities.
ResultDecodeError
An error raised while admitting or decoding a result envelope.
ResultMeta
Result metadata common to complete and input-required results.
Root
A root definition representing a filesystem location.
RootsCapability
Roots capability.
RootsListChangedNotificationParams
Notification params for roots/list_changed.
SamplingCapability
Sampling capability.
SamplingMessage
A message in a sampling conversation.
ServerCapabilities
Server capabilities advertised during initialization.
ServerInfo
Server information.
SetLogLevelParams
logging/setLevel request params.
SubscribeResourceParams
resources/subscribe request params.
SubscriptionFilter
Final notification categories selected for a subscription stream.
TaskId
Task identifier.
TaskInfo
Information about a background task.
TaskResult
Task result payload.
TaskStatusNotificationParams
Task status change notification params.
TasksCapability
Task capability for server capabilities.
Tool
Tool definition.
ToolAnnotations
Tool annotations for additional metadata.
ToolsCapability
Tool capabilities.
TypedCompleteMembers
Guarded access to one selected complete composition’s declared members.
UncorrelatedJsonRpcErrorResponse
An error response that is deliberately uncorrelated and omits id.
UnknownResultMembers
Bounded, inert open members retained after known-field consumption.
UnsubscribeResourceParams
resources/unsubscribe request params.
UrlElicitationCapability
Capability for URL mode elicitation.

Enums§

CacheScope
Peer cache scope. Public is a wire value, not an authority grant.
CacheTtlConversionError
Failure while validating or converting a final cache TTL.
CancellationSender
Peer that originates a cancellation notification.
CancellationWireCodecError
Stable refusal classes for CancellationWireMessage codec operations.
CancellationWireMessage
An era-selected notifications/cancelled JSON-RPC notification.
ClientIngressFailureScope
Transport ownership for a client-ingress raw protocol failure.
ClientNotification
The one notification a final client may originate.
Content
Content types used by the broader server and 2026 adapter surfaces.
CoreDispatchError
Stable errors raised while selecting a typed core request or result.
CoreRequest
Public, era-aware dispatch for the currently supported core request set.
CoreResult
Public, era-aware dispatch for core results.
CorrelationKey
Canonical map/registry key for a JSON-RPC request ID.
DecodedResult
Core or deferred result decoded from a peer envelope.
ElicitAction
User action in response to an elicitation request.
ElicitContentValue
Content type for elicitation responses.
ElicitMode
Elicitation mode.
ElicitRequestParams
Parameters for elicitation requests (either form or URL mode).
ExactJsonValue
A recursively bounded JSON value which preserves each number’s source lexeme. This is the result codec’s exact-value boundary; it never uses an f64 or a fixed-width integer for an admitted JSON number.
FinalArguments
Wire presence of an optional final request arguments member.
FinalCompletionPeerDiagnostic
Bounded peer conformance diagnostics specific to final completion values.
FinalCompletionReference
Final reference accepted by completion/complete.
FinalCoreRequest
Final core requests use final metadata and common vocabulary throughout.
FinalCoreResult
Final result dispatch for the currently supported core methods.
FinalEmbeddedElicitationParams
Exact final parameters for an embedded elicitation descriptor.
FinalEmbeddedInputKind
The selected final MRTR response kind for one Task map key.
FinalEmbeddedInputRequest
A final MRTR descriptor embedded in a Task, without a JSON-RPC envelope.
FinalEmbeddedInputResponse
A final MRTR result payload embedded in a Task, without a JSON-RPC envelope.
FinalInputRequiredResultType
Final input-required discriminator.
FinalInputResponseCorrelationError
Why a retry response map could not be correlated to a prior MRTR request.
FinalNotificationError
Typed admission error for an MCP 2026-07-28 notification union.
FinalSamplingMessageContent
Exact final sampling-message content, preserving one block versus an array of blocks.
FinalToolChoiceMode
Tool-selection mode for final sampling.
IncludeContext
Context inclusion mode for sampling.
JsonRpcAdmissionError
Admission failure for a complete strict JSON-RPC document.
JsonRpcEndpointRole
Immutable local endpoint role for raw JSON-RPC ingress disposition.
JsonRpcMessage
A JSON-RPC message (request, response, or notification).
JsonRpcMessageDirection
The direction attached by the local transport to a decoded message.
LegacyCompletionReference
Exact legacy reference accepted by completion/complete.
LegacyContent
Exact 2024-11-05 content blocks carried in legacy results.
LegacyCoreRequest
Legacy core requests remain exact uses of the existing message structs. They are never reinterpreted as final requests.
LegacyCoreResult
Exact legacy response payloads, intentionally disjoint from final results.
LegacyResourceContent
Exact 2024-11-05 resource contents carried by legacy results.
LogLevel
Log level.
McpAppsDisplayMode
A Host-selected way to present an App View.
McpAppsLifecycleError
Illegal transition in the pure Apps View lifecycle state machine.
McpAppsMetadataError
Metadata validation failures specific to the closed Apps ui member.
McpAppsResourceBindingError
A catalog resource did not satisfy one validated Apps binding.
McpAppsResultProjectionError
Apps result projection failures.
McpAppsToolVisibility
A tool audience declared in nested MCP Apps metadata.
McpAppsViewLifecycle
A View lifecycle phase. This pure protocol state machine does not send or receive any ui/* RPC message; a future bridge runtime owns that work.
ProgressMarker
Progress marker used to correlate progress notifications with requests.
RawJsonAdmissionError
A stable reason why raw JSON was rejected before typed decoding.
RawJsonRpcDisposition
Role-aware disposition of a raw malformed JSON-RPC document.
RequestId
JSON-RPC request ID.
ResultDecodeErrorKind
Stable result-decoding failure categories.
ResultDiscriminatorDecision
Result-discriminator decision made after raw structural admission.
ResultPeerDiagnostic
Bounded diagnostics reserved for peer-result compatibility handling.
ResultPeerEra
Protocol era used only for peer-ingress compatibility diagnostics.
Role
Role in prompt messages.
SamplingContent
Message content for sampling requests.
ServerNotification
The eight notifications a final server may originate.
StopReason
Stop reason for sampling responses.
TaskStatus
Status of a background task.

Constants§

FINAL_CLIENT_CAPABILITIES_META_KEY
_meta key carrying the client capabilities on every final request.
FINAL_CLIENT_INFO_META_KEY
_meta key carrying optional client identity on a final request.
FINAL_LOG_LEVEL_META_KEY
_meta key carrying the client-selected logging floor on a final request.
FINAL_PROTOCOL_VERSION_META_KEY
_meta key carrying the protocol version on every final request.
FINAL_SERVER_INFO_META_KEY
_meta key carrying optional server identity on a final response.
FINAL_SUBSCRIPTION_ID_META_KEY
_meta key correlating an event-stream subscription with its listen request.
JSONRPC_VERSION
The JSON-RPC version string. Used as a static reference to avoid allocations.
MAX_CANCELLATION_REASON_BYTES
Historical cancellation-reason size used by earlier bounded profiles.
MAX_COMPLETION_CONTEXT_ARGUMENTS
Maximum number of previously resolved variables in one final completion context.
MAX_COMPLETION_CONTEXT_ARGUMENT_BYTES
Maximum encoded JSON bytes occupied by one final completion-context argument map.
MAX_COMPLETION_CONTEXT_ARGUMENT_KEY_BYTES
Maximum UTF-8 bytes in one final completion-context variable name.
MAX_COMPLETION_CONTEXT_ARGUMENT_VALUE_BYTES
Maximum UTF-8 bytes in one final completion-context variable value.
MAX_COMPLETION_VALUES
Maximum completion candidates allowed on the wire by either supported era.
MAX_FINAL_COMPLETION_VALUES_BYTES
Maximum aggregate UTF-8 bytes in final completion candidates.
MAX_FINAL_COMPLETION_VALUE_BYTES
Maximum UTF-8 bytes in one final completion candidate.
MAX_JSONRPC_STRING_ID_ENCODED_BYTES
Maximum encoded bytes in one JSON-RPC string ID, including quotes.
MAX_MCP_APPS_CSP_DOMAINS_PER_DIRECTIVE
Maximum origins retained by one Apps CSP directive.
MAX_MCP_APPS_CSP_DOMAIN_BYTES
Maximum UTF-8 bytes retained for one Apps CSP origin or host-selected domain.
MAX_MCP_APPS_TOOL_VISIBILITY_ENTRIES
Maximum audience entries retained by one Apps tool visibility declaration.
MAX_MCP_APPS_UI_METADATA_MEMBERS
Maximum members in a closed nested MCP Apps tool ui metadata object.
MAX_RAW_JSON_AGGREGATE_NUMBER_BYTES
Maximum aggregate encoded number bytes in one admitted JSON document.
MAX_RAW_JSON_CONTAINER_ENTRIES
Default maximum aggregate object members and array elements for raw JSON admission.
MAX_RAW_JSON_EXPONENT
Maximum absolute decimal exponent accepted by raw JSON admission.
MAX_RAW_JSON_NESTING_DEPTH
Default maximum nesting depth for raw JSON admission.
MAX_RAW_JSON_NUMBER_BYTES
Maximum encoded bytes in one JSON number token before typed decoding.
MAX_RESULT_CONTAINER_MEMBERS
Maximum members/elements accepted by one JSON object or array.
MAX_RESULT_DEPTH
Maximum nesting depth accepted by the result codec.
MAX_RESULT_ENCODED_BYTES
Maximum encoded bytes accepted by the result codec.
MAX_RESULT_NUMBER_BYTES
Maximum source bytes in one JSON number lexeme.
MAX_RESULT_STRING_BYTES
Maximum decoded bytes in one JSON string or object key.
MCP_APPS_DEPRECATED_RESOURCE_URI_METADATA_KEY
Deprecated flat metadata member that this final-only surface rejects.
MCP_APPS_UI_METADATA_KEY
Nested _meta member reserved by the MCP Apps protocol.
PROTOCOL_VERSION
MCP protocol version.

Traits§

CompleteResultPayload
Method-specific decoder for a selected core complete result composition.
ResultDiscriminatorPolicy
Registry-agnostic policy seam for already-admitted non-core result types. No policy in this module owns a descriptor registry or activates extensions.

Functions§

admit_raw_jsonrpc_document
Admit one complete raw JSON-RPC document before any typed decoding.
decode_peer_result
Decodes one peer result through the public result codec.
decode_peer_result_for_era
Decodes one peer result using the protocol era selected for its request.
decode_strict_jsonrpc_message
Decode a complete JSON-RPC message only after raw-document admission.
decode_strict_jsonrpc_response
Strictly decodes one JSON-RPC response while retaining its exact result member source for the final result algebra.
decode_typed_complete
Decodes a selected method-specific complete composition.
dispose_raw_jsonrpc_failure
Convert a raw admission failure into an endpoint-safe disposition.
encode_complete_result
Encodes one selected typed complete result through the final result algebra. Method dispatch supplies exactly the members it owns; every other admitted member remains an inert UnknownResultMembers sibling.
encode_result
Re-emits a result without discarding or semantically rewriting any retained open member. Safe complete and input-required variants always emit their explicit core discriminator.
exact_json_from_serde
Converts an ordinary serde value into the result algebra’s bounded exact representation before it is attached to a locally authored result.
exact_json_to_serde
Converts one exact result value into a serde value for a selected typed method payload. Open result siblings remain exact and are never converted unless that payload explicitly owns their member name.
parse_exact_json
Parses one bounded exact JSON value.
project_final_core_tools_call_result
Projects the complete tools/call branch while rejecting deferred Tasks and MRTR branches before any Apps result is produced.

Type Aliases§

ElicitRequestedSchema
JSON Schema for elicitation requests.
FinalSamplingMessageContentBlock
Final sampling-specific content block.
LegacyMetadata
Legacy 2024 metadata, retained exactly as an open JSON object.