diff --git a/crates/rmcp-macros/src/prompt.rs b/crates/rmcp-macros/src/prompt.rs index 20492a66..f8e1e886 100644 --- a/crates/rmcp-macros/src/prompt.rs +++ b/crates/rmcp-macros/src/prompt.rs @@ -138,10 +138,18 @@ pub fn prompt(attr: TokenStream, input: TokenStream) -> syn::Result } match &fn_item.sig.output { syn::ReturnType::Default => { - quote! { -> ::std::pin::Pin + Send + #lt>> } + if omit_send { + quote! { -> ::std::pin::Pin + #lt>> } + } else { + quote! { -> ::std::pin::Pin + Send + #lt>> } + } } syn::ReturnType::Type(_, ty) => { - quote! { -> ::std::pin::Pin + Send + #lt>> } + if omit_send { + quote! { -> ::std::pin::Pin + #lt>> } + } else { + quote! { -> ::std::pin::Pin + Send + #lt>> } + } } } })?;