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§
- Bidirectional
Context - Enhanced context for bidirectional MCP communication
- Client
Capabilities - Client capabilities for server-initiated requests
- Client
IdExtractor - Client identification extractor for various transport mechanisms
- Client
Session - Client session information for tracking and analytics
- Completion
Capabilities - Client capabilities for completion
- Completion
Context - Context for completion/autocompletion requests
- Completion
Option - Completion option with metadata
- Connection
Metrics - Connection quality metrics
- Elicitation
Context - Context for server-initiated elicitation (user input) requests
- Ping
Context - Context for ping/health monitoring requests
- Request
Context - Context information for request processing
- Request
Info - Request analytics information for monitoring and debugging
- Resource
Template Context - Context for resource template operations
- Response
Context - Context information for response processing
- Server
Initiated Context - Context for server-initiated requests (sampling, roots listing)
- Template
Parameter - Template parameter definition
Enums§
- Client
Id - Client identification methods for enhanced request routing and analytics
- Communication
Direction - Communication direction in MCP protocol
- Communication
Initiator - Communication initiator
- Completion
Reference - Reference type for completion context
- Elicitation
State - State of an elicitation request
- Ping
Origin - Ping origin identifier
- Response
Status - Response status information
- Server
Initiated Type - Type of server-initiated request
Traits§
- Request
Context Ext - Extension trait to add enhanced client management to
RequestContext
- Server
Capabilities - Trait for server-initiated requests (sampling, elicitation, roots) This provides a type-safe way for tools to make requests to clients