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 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

All messages are 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 get the canonical JSON-RPC and MCP data models.

Re-exports§

pub use schema::ValidationError;
pub use schema::ValidationResult;
pub use schema::validate;
pub use schema::validate_strict;

Modules§

schema
JSON Schema validation for MCP tool inputs.

Structs§

CallToolParams
tools/call request params.
CallToolResult
tools/call response result.
CancelTaskParams
tasks/cancel request params.
CancelTaskResult
tasks/cancel response result.
CancelledParams
Cancelled notification params.
ClientCapabilities
Client capabilities.
ClientInfo
Client information.
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.
FormElicitationCapability
Capability for form mode elicitation.
GetPromptParams
prompts/get request params.
GetPromptResult
prompts/get response result.
GetTaskParams
tasks/get request params.
GetTaskResult
tasks/get response result.
Icon
Icon metadata for visual representation of components.
InitializeParams
Initialize request params.
InitializeResult
Initialize response result.
JsonRpcError
JSON-RPC 2.0 error object.
JsonRpcRequest
JSON-RPC 2.0 request.
JsonRpcResponse
JSON-RPC 2.0 response.
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.
ListTasksParams
tasks/list request params.
ListTasksResult
tasks/list response result.
ListToolsParams
tools/list request params.
ListToolsResult
tools/list response result.
LogMessageParams
Log message notification params.
LoggingCapability
Logging capability.
ModelHint
A hint for model selection.
ModelPreferences
Model preferences for sampling requests.
ProgressParams
Progress notification params.
Prompt
Prompt definition.
PromptArgument
Prompt argument definition.
PromptMessage
A message in a prompt.
PromptsCapability
Prompt capabilities.
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.
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.
SubmitTaskParams
tasks/submit request params.
SubmitTaskResult
tasks/submit response result.
SubscribeResourceParams
resources/subscribe request params.
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.
UnsubscribeResourceParams
resources/unsubscribe request params.
UrlElicitationCapability
Capability for URL mode elicitation.

Enums§

Content
Content types in MCP messages.
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).
IncludeContext
Context inclusion mode for sampling.
JsonRpcMessage
A JSON-RPC message (request, response, or notification).
LogLevel
Log level.
ProgressMarker
Progress marker used to correlate progress notifications with requests.
RequestId
JSON-RPC request ID.
Role
Role in prompt messages.
SamplingContent
Message content for sampling requests.
StopReason
Stop reason for sampling responses.
TaskStatus
Status of a background task.

Constants§

JSONRPC_VERSION
The JSON-RPC version string. Used as a static reference to avoid allocations.
PROTOCOL_VERSION
MCP protocol version.

Type Aliases§

ElicitRequestedSchema
JSON Schema for elicitation requests.