Skip to content

Commit fb60fc4

Browse files
committed
feat: revision-2025-03-26 without streamable http
1. Suppot revision 2025-03-26 data types 2. Support meta, progress tokne, and extensions in request/notification, 3. Remove `Message`, use `JsonRpcMessage` directly
1 parent c30d806 commit fb60fc4

File tree

15 files changed

+1280
-229
lines changed

15 files changed

+1280
-229
lines changed

Diff for: crates/rmcp-macros/src/tool.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ pub(crate) fn tool_fn_item(attr: TokenStream, mut input_fn: ItemFn) -> syn::Resu
349349
name: #name.into(),
350350
description: Some(#description.into()),
351351
input_schema: #schema.into(),
352+
annotations: None
352353
}
353354
}
354355
}
@@ -413,10 +414,10 @@ pub(crate) fn tool_fn_item(attr: TokenStream, mut input_fn: ItemFn) -> syn::Resu
413414
Some(line)
414415
}
415416
});
416-
let trivial_argrextraction_part = quote! {
417+
let trivial_arg_extraction_part = quote! {
417418
#(#trivial_args)*
418419
};
419-
let processed_argrextraction_part = match &mut tool_macro_attrs.params {
420+
let processed_arg_extraction_part = match &mut tool_macro_attrs.params {
420421
ToolParams::Aggregated { rust_type } => {
421422
let PatType { pat, ty, .. } = rust_type;
422423
quote! {
@@ -487,8 +488,8 @@ pub(crate) fn tool_fn_item(attr: TokenStream, mut input_fn: ItemFn) -> syn::Resu
487488
#raw_fn_vis async fn #tool_call_fn_ident(context: rmcp::handler::server::tool::ToolCallContext<'_, Self>)
488489
-> std::result::Result<rmcp::model::CallToolResult, rmcp::Error> {
489490
use rmcp::handler::server::tool::*;
490-
#trivial_argrextraction_part
491-
#processed_argrextraction_part
491+
#trivial_arg_extraction_part
492+
#processed_arg_extraction_part
492493
#call
493494
}
494495
}

Diff for: crates/rmcp/src/handler/server.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -141,21 +141,21 @@ pub trait ServerHandler: Sized + Send + Sync + 'static {
141141
}
142142
fn list_prompts(
143143
&self,
144-
request: PaginatedRequestParam,
144+
request: Option<PaginatedRequestParam>,
145145
context: RequestContext<RoleServer>,
146146
) -> impl Future<Output = Result<ListPromptsResult, McpError>> + Send + '_ {
147147
std::future::ready(Ok(ListPromptsResult::default()))
148148
}
149149
fn list_resources(
150150
&self,
151-
request: PaginatedRequestParam,
151+
request: Option<PaginatedRequestParam>,
152152
context: RequestContext<RoleServer>,
153153
) -> impl Future<Output = Result<ListResourcesResult, McpError>> + Send + '_ {
154154
std::future::ready(Ok(ListResourcesResult::default()))
155155
}
156156
fn list_resource_templates(
157157
&self,
158-
request: PaginatedRequestParam,
158+
request: Option<PaginatedRequestParam>,
159159
context: RequestContext<RoleServer>,
160160
) -> impl Future<Output = Result<ListResourceTemplatesResult, McpError>> + Send + '_ {
161161
std::future::ready(Ok(ListResourceTemplatesResult::default()))
@@ -192,7 +192,7 @@ pub trait ServerHandler: Sized + Send + Sync + 'static {
192192
}
193193
fn list_tools(
194194
&self,
195-
request: PaginatedRequestParam,
195+
request: Option<PaginatedRequestParam>,
196196
context: RequestContext<RoleServer>,
197197
) -> impl Future<Output = Result<ListToolsResult, McpError>> + Send + '_ {
198198
std::future::ready(Ok(ListToolsResult::default()))

Diff for: crates/rmcp/src/handler/server/tool.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ macro_rules! tool_box {
453453
(@derive $tool_box:ident) => {
454454
async fn list_tools(
455455
&self,
456-
_: $crate::model::PaginatedRequestParam,
456+
_: Option<$crate::model::PaginatedRequestParam>,
457457
_: $crate::service::RequestContext<$crate::service::RoleServer>,
458458
) -> Result<$crate::model::ListToolsResult, $crate::Error> {
459459
Ok($crate::model::ListToolsResult {

0 commit comments

Comments
 (0)