Module context

Module context 

Source
Expand description

Request and response context for rich metadata handling.

Enhanced with client identification, session management, and request analytics for comprehensive MCP application monitoring and management.

§Examples

§Creating a basic request context

use turbomcp_core::RequestContext;

let ctx = RequestContext::new();
println!("Request ID: {}", ctx.request_id);
assert!(!ctx.request_id.is_empty());

§Building a context with metadata

use turbomcp_core::RequestContext;

let ctx = RequestContext::new()
    .with_user_id("user123")
    .with_session_id("session456")
    .with_metadata("api_version", "2.0")
    .with_metadata("client", "web_app");

assert_eq!(ctx.user_id, Some("user123".to_string()));
assert_eq!(ctx.session_id, Some("session456".to_string()));
assert_eq!(ctx.get_metadata("api_version"), Some(&serde_json::json!("2.0")));

§Working with response contexts

use turbomcp_core::{RequestContext, ResponseContext};
use std::time::Duration;

let request_ctx = RequestContext::with_id("req-123");
let duration = Duration::from_millis(250);

// Successful response
let success_ctx = ResponseContext::success(&request_ctx.request_id, duration);

// Error response
let error_ctx = ResponseContext::error(&request_ctx.request_id, duration, -32600, "Invalid Request");

assert_eq!(success_ctx.request_id, "req-123");
assert_eq!(error_ctx.request_id, "req-123");

Structs§

BidirectionalContext
Enhanced context for bidirectional MCP communication
ClientCapabilities
Client capabilities for server-initiated requests
ClientIdExtractor
Client identification extractor for various transport mechanisms
ClientSession
Client session information for tracking and analytics
CompletionCapabilities
Client capabilities for completion
CompletionContext
Context for completion/autocompletion requests
CompletionOption
Completion option with metadata
ConnectionMetrics
Connection quality metrics
ElicitationContext
Context for server-initiated elicitation (user input) requests
PingContext
Context for ping/health monitoring requests
RequestContext
Context information for request processing
RequestInfo
Request analytics information for monitoring and debugging
ResourceTemplateContext
Context for resource template operations
ResponseContext
Context information for response processing
ServerInitiatedContext
Context for server-initiated requests (sampling, roots listing)
TemplateParameter
Template parameter definition

Enums§

ClientId
Client identification methods for enhanced request routing and analytics
CommunicationDirection
Communication direction in MCP protocol
CommunicationInitiator
Communication initiator
CompletionReference
Reference type for completion context
ElicitationState
State of an elicitation request
PingOrigin
Ping origin identifier
ResponseStatus
Response status information
ServerInitiatedType
Type of server-initiated request

Traits§

RequestContextExt
Extension trait to add enhanced client management to RequestContext
ServerCapabilities
Trait for server-initiated requests (sampling, elicitation, roots) This provides a type-safe way for tools to make requests to clients