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§
- Call
Tool Params - tools/call request params.
- Call
Tool Result - tools/call response result.
- Cancel
Task Params - tasks/cancel request params.
- Cancel
Task Result - tasks/cancel response result.
- Cancelled
Params - Cancelled notification params.
- Client
Capabilities - Client capabilities.
- Client
Info - Client information.
- Create
Message Params - sampling/createMessage request params.
- Create
Message Result - sampling/createMessage response result.
- Elicit
Complete Notification Params - Elicitation complete notification params.
- Elicit
Request Form Params - Parameters for form mode elicitation requests.
- Elicit
Request UrlParams - Parameters for URL mode elicitation requests.
- Elicit
Result - elicitation/create response result.
- Elicitation
Capability - Elicitation capability.
- Elicitation
Required Error Data - Error data for URL elicitation required errors.
- Form
Elicitation Capability - Capability for form mode elicitation.
- GetPrompt
Params - prompts/get request params.
- GetPrompt
Result - prompts/get response result.
- GetTask
Params - tasks/get request params.
- GetTask
Result - tasks/get response result.
- Icon
- Icon metadata for visual representation of components.
- Initialize
Params - Initialize request params.
- Initialize
Result - Initialize response result.
- Json
RpcError - JSON-RPC 2.0 error object.
- Json
RpcRequest - JSON-RPC 2.0 request.
- Json
RpcResponse - JSON-RPC 2.0 response.
- List
Prompts Params - prompts/list request params.
- List
Prompts Result - prompts/list response result.
- List
Resource Templates Params - resources/templates/list request params.
- List
Resource Templates Result - resources/templates/list response result.
- List
Resources Params - resources/list request params.
- List
Resources Result - resources/list response result.
- List
Roots Params - roots/list request params.
- List
Roots Result - roots/list response result.
- List
Tasks Params - tasks/list request params.
- List
Tasks Result - tasks/list response result.
- List
Tools Params - tools/list request params.
- List
Tools Result - tools/list response result.
- LogMessage
Params - Log message notification params.
- Logging
Capability - Logging capability.
- Model
Hint - A hint for model selection.
- Model
Preferences - Model preferences for sampling requests.
- Progress
Params - Progress notification params.
- Prompt
- Prompt definition.
- Prompt
Argument - Prompt argument definition.
- Prompt
Message - A message in a prompt.
- Prompts
Capability - Prompt capabilities.
- Read
Resource Params - resources/read request params.
- Read
Resource Result - resources/read response result.
- Request
Meta - Request metadata containing optional progress marker.
- Resource
- Resource definition.
- Resource
Content - Resource content in a message.
- Resource
Template - Resource template definition.
- Resource
Updated Notification Params - Resource updated notification params.
- Resources
Capability - Resource capabilities.
- Root
- A root definition representing a filesystem location.
- Roots
Capability - Roots capability.
- Roots
List Changed Notification Params - Notification params for roots/list_changed.
- Sampling
Capability - Sampling capability.
- Sampling
Message - A message in a sampling conversation.
- Server
Capabilities - Server capabilities advertised during initialization.
- Server
Info - Server information.
- SetLog
Level Params - logging/setLevel request params.
- Submit
Task Params - tasks/submit request params.
- Submit
Task Result - tasks/submit response result.
- Subscribe
Resource Params - resources/subscribe request params.
- TaskId
- Task identifier.
- Task
Info - Information about a background task.
- Task
Result - Task result payload.
- Task
Status Notification Params - Task status change notification params.
- Tasks
Capability - Task capability for server capabilities.
- Tool
- Tool definition.
- Tool
Annotations - Tool annotations for additional metadata.
- Tools
Capability - Tool capabilities.
- Unsubscribe
Resource Params - resources/unsubscribe request params.
- UrlElicitation
Capability - Capability for URL mode elicitation.
Enums§
- Content
- Content types in MCP messages.
- Elicit
Action - User action in response to an elicitation request.
- Elicit
Content Value - Content type for elicitation responses.
- Elicit
Mode - Elicitation mode.
- Elicit
Request Params - Parameters for elicitation requests (either form or URL mode).
- Include
Context - Context inclusion mode for sampling.
- Json
RpcMessage - A JSON-RPC message (request, response, or notification).
- LogLevel
- Log level.
- Progress
Marker - Progress marker used to correlate progress notifications with requests.
- Request
Id - JSON-RPC request ID.
- Role
- Role in prompt messages.
- Sampling
Content - Message content for sampling requests.
- Stop
Reason - Stop reason for sampling responses.
- Task
Status - 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§
- Elicit
Requested Schema - JSON Schema for elicitation requests.