Expand description
Request context for MCP handlers.
The context provides access to the current request state and allows handlers to interact with the connection (sending notifications, progress updates, etc.).
§Key Features
- Borrowing-friendly: Uses lifetime references, NO
'staticrequirement - Progress reporting: Send progress updates for long-running operations
- Cancellation: Check if the request has been cancelled
- Notifications: Send notifications back to the client via Peer trait
§Example
use mcpkit_server::{Context, NoOpPeer, ContextData};
use mcpkit_core::capability::{ClientCapabilities, ServerCapabilities};
use mcpkit_core::protocol::RequestId;
use mcpkit_core::protocol_version::ProtocolVersion;
// Create test context data
let data = ContextData::new(
RequestId::Number(1),
ClientCapabilities::default(),
ServerCapabilities::default(),
ProtocolVersion::LATEST,
);
let peer = NoOpPeer;
// Create a context from the data
let ctx = Context::new(
&data.request_id,
data.progress_token.as_ref(),
&data.client_caps,
&data.server_caps,
data.protocol_version,
&peer,
);
// Check for cancellation and protocol version
assert!(!ctx.is_cancelled());
assert!(ctx.protocol_version.supports_tasks());Structs§
- Cancellation
Token - A cancellation token for tracking request cancellation.
- Cancelled
Future - A future that completes when cancellation is requested.
- Context
- Request context passed to handler methods.
- Context
Data - Owned data for creating contexts.
- NoOp
Peer - A no-op peer implementation for testing.
Traits§
- Peer
- Trait for sending messages to the peer (client or server).