turbomcp_server/handlers/traits/
sampling.rs1use async_trait::async_trait;
4use turbomcp_protocol::RequestContext;
5use turbomcp_protocol::types::{CreateMessageRequest, CreateMessageResult, SamplingCapabilities};
6
7use crate::ServerResult;
8
9#[async_trait]
11pub trait SamplingHandler: Send + Sync {
12 async fn handle(
14 &self,
15 request: CreateMessageRequest,
16 ctx: RequestContext,
17 ) -> ServerResult<CreateMessageResult>;
18
19 fn sampling_capabilities(&self) -> SamplingCapabilities {
21 SamplingCapabilities
22 }
23}