Expand description
MCP (Model Context Protocol) message types and JSON-RPC structures.
This module provides complete type definitions for all MCP messages according to the MCP specification. All message types are designed to be:
- Spec-compliant: Exact adherence to MCP JSON-RPC 2.0 protocol
- Type-safe: Leverage Rust’s type system to prevent protocol violations
- Serializable: Full serde support for JSON serialization/deserialization
- Extensible: Support for custom extensions and future protocol versions
- Debuggable: Rich Debug implementations for development and debugging
§Message Categories
- Core Messages: Basic JSON-RPC request/response/notification structures
- Initialization: Protocol version negotiation and capability discovery
- Tools: Tool discovery, schema definition, and execution
- Resources: Resource listing, reading, and subscription
- Prompts: Prompt templates and completion requests
- Sampling: LLM completion requests from server to client
- Logging: Server-to-client logging messages
§Examples
use mcp_probe_core::messages::{JsonRpcRequest, InitializeRequest, ProtocolVersion, Implementation};
use serde_json::json;
// Create an initialization request
let init_request = InitializeRequest {
protocol_version: ProtocolVersion::V2024_11_05,
capabilities: Default::default(),
client_info: Implementation {
name: "mcp-probe".to_string(),
version: "0.1.0".to_string(),
metadata: std::collections::HashMap::new(),
},
};
// Wrap in JSON-RPC request
let request = JsonRpcRequest::new(
"1".to_string(),
"initialize".to_string(),
serde_json::to_value(init_request).unwrap(),
);Re-exports§
pub use logging::LogLevel;pub use logging::LoggingNotification;pub use logging::ProgressNotification;pub use logging::PromptListChangedNotification as LoggingPromptListChangedNotification;pub use logging::ResourceListChangedNotification as LoggingResourceListChangedNotification;pub use logging::ResourceUpdatedNotification as LoggingResourceUpdatedNotification;pub use logging::SetLevelRequest;pub use logging::ToolListChangedNotification as LoggingToolListChangedNotification;pub use prompts::GetPromptRequest;pub use prompts::GetPromptResponse;pub use prompts::ListPromptsRequest;pub use prompts::ListPromptsResponse;pub use prompts::MessageRole as PromptMessageRole;pub use prompts::Prompt;pub use prompts::PromptContent;pub use prompts::PromptListChangedNotification;pub use prompts::PromptMessage;pub use prompts::ResourceReference as PromptResourceReference;pub use resources::ListResourcesRequest;pub use resources::ListResourcesResponse;pub use resources::ReadResourceRequest;pub use resources::ReadResourceResponse;pub use resources::Resource;pub use resources::ResourceContent;pub use resources::ResourceListChangedNotification;pub use resources::ResourceUpdatedNotification;pub use resources::SubscribeRequest;pub use resources::UnsubscribeRequest;pub use sampling::CompleteRequest;pub use sampling::CompleteResponse;pub use sampling::CompletionArgument;pub use sampling::CompletionResult;pub use sampling::CostPriority;pub use sampling::IntelligencePriority;pub use sampling::MessageRole;pub use sampling::ModelPreferences;pub use sampling::SamplingContent;pub use sampling::SamplingMessage;pub use sampling::SpeedPriority;pub use sampling::StopReason;pub use tools::CallToolRequest;pub use tools::CallToolResponse;pub use tools::ListToolsRequest;pub use tools::ListToolsResponse;pub use tools::ResourceReference as ToolResourceReference;pub use tools::Tool;pub use tools::ToolListChangedNotification;pub use tools::ToolResult;pub use core::*;pub use initialization::*;
Modules§
- core
- Core JSON-RPC 2.0 message structures for MCP communication.
- initialization
- MCP initialization and protocol negotiation message types.
- logging
- Logging-related message types for MCP server-to-client logging and progress.
- prompts
- Prompt-related message types for MCP prompt templates and completion.
- resources
- Resource-related message types for MCP resource discovery and access.
- sampling
- Sampling-related message types for MCP LLM completion requests.
- tools
- Tool-related message types for MCP tool discovery and execution.
Structs§
- Capabilities
- Generic capability structure for extensible capability negotiation.
- Implementation
- Implementation information for client or server.
- Logging
Capabilities - Logging-related capabilities.
- Pagination
Cursor - Pagination cursor for list operations.
- Prompt
Capabilities - Prompt-related capabilities.
- Resource
Capabilities - Resource-related capabilities.
- Roots
Capabilities - Roots-related capabilities (client-side).
- Sampling
Capabilities - Sampling-related capabilities (client-side).
- Standard
Capabilities - Standard MCP capabilities as defined in the specification.
- Tool
Capabilities - Tool-related capabilities.
Enums§
- Progress
Token - Progress token for long-running operations.
- Protocol
Version - MCP protocol version identifier.