Skip to content

Commit 320873b

Browse files
committed
feat!: add SEP-2322 MRTR model types
1 parent 4fd4986 commit 320873b

20 files changed

Lines changed: 995 additions & 18 deletions

conformance/src/bin/server.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,8 @@ impl ServerHandler for ConformanceServer {
204204
),
205205
];
206206
Ok(ListToolsResult {
207-
meta: None,
208207
tools,
209-
next_cursor: None,
208+
..Default::default()
210209
})
211210
}
212211

@@ -543,7 +542,6 @@ impl ServerHandler for ConformanceServer {
543542
_cx: RequestContext<RoleServer>,
544543
) -> Result<ListResourcesResult, ErrorData> {
545544
Ok(ListResourcesResult {
546-
meta: None,
547545
resources: vec![
548546
RawResource {
549547
uri: "test://static-text".into(),
@@ -568,7 +566,7 @@ impl ServerHandler for ConformanceServer {
568566
}
569567
.no_annotation(),
570568
],
571-
next_cursor: None,
569+
..Default::default()
572570
})
573571
}
574572

@@ -628,7 +626,6 @@ impl ServerHandler for ConformanceServer {
628626
_cx: RequestContext<RoleServer>,
629627
) -> Result<ListResourceTemplatesResult, ErrorData> {
630628
Ok(ListResourceTemplatesResult {
631-
meta: None,
632629
resource_templates: vec![
633630
RawResourceTemplate {
634631
uri_template: "test://template/{id}/data".into(),
@@ -640,7 +637,7 @@ impl ServerHandler for ConformanceServer {
640637
}
641638
.no_annotation(),
642639
],
643-
next_cursor: None,
640+
..Default::default()
644641
})
645642
}
646643

@@ -670,7 +667,6 @@ impl ServerHandler for ConformanceServer {
670667
_cx: RequestContext<RoleServer>,
671668
) -> Result<ListPromptsResult, ErrorData> {
672669
Ok(ListPromptsResult {
673-
meta: None,
674670
prompts: vec![
675671
Prompt::new(
676672
"test_simple_prompt",
@@ -700,7 +696,7 @@ impl ServerHandler for ConformanceServer {
700696
None,
701697
),
702698
],
703-
next_cursor: None,
699+
..Default::default()
704700
})
705701
}
706702

crates/rmcp-macros/src/prompt_handler.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ pub fn prompt_handler(attr: TokenStream, input: TokenStream) -> syn::Result<Toke
6161
) -> Result<ListPromptsResult, rmcp::ErrorData> {
6262
let prompts = #router_expr.list_all();
6363
Ok(ListPromptsResult {
64+
result_type: Default::default(),
6465
prompts,
6566
meta: #meta,
6667
next_cursor: None,

crates/rmcp-macros/src/tool_handler.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ pub fn tool_handler(attr: TokenStream, input: TokenStream) -> syn::Result<TokenS
6969
_context: rmcp::service::RequestContext<rmcp::RoleServer>,
7070
) -> Result<rmcp::model::ListToolsResult, rmcp::ErrorData> {
7171
Ok(rmcp::model::ListToolsResult{
72+
result_type: Default::default(),
7273
tools: #router.list_all(),
7374
meta: #result_meta,
7475
next_cursor: None,

crates/rmcp/src/handler/client.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ impl<H: ClientHandler> Service<RoleClient> for H {
6464
ServerNotification::PromptListChangedNotification(_notification_no_param) => {
6565
self.on_prompt_list_changed(context).await
6666
}
67-
ServerNotification::ElicitationCompletionNotification(notification) => {
67+
ServerNotification::ElicitationCompletionNotification(notification) =>
68+
{
69+
#[allow(deprecated)]
6870
self.on_url_elicitation_notification_complete(notification.params, context)
6971
.await
7072
}
@@ -238,6 +240,10 @@ pub trait ClientHandler: Sized + Send + Sync + 'static {
238240
std::future::ready(())
239241
}
240242

243+
#[deprecated(
244+
since = "2.0.0",
245+
note = "URL elicitation is removed by SEP-2322 (Multi Round-Trip Requests). Use InputRequiredResult-based MRTR flow instead."
246+
)]
241247
fn on_url_elicitation_notification_complete(
242248
&self,
243249
params: ElicitationResponseNotificationParam,

crates/rmcp/src/handler/server/prompt.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ impl IntoGetPromptResult for GetPromptResult {
103103
impl IntoGetPromptResult for Vec<PromptMessage> {
104104
fn into_get_prompt_result(self) -> Result<GetPromptResult, crate::ErrorData> {
105105
Ok(GetPromptResult {
106+
result_type: Default::default(),
106107
description: None,
107108
messages: self,
108109
})

crates/rmcp/src/handler/server/router/tool.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,8 @@ mod tests {
667667
name: Cow::Borrowed("requires_params"),
668668
arguments: Some(Default::default()),
669669
task: None,
670+
input_responses: None,
671+
request_state: None,
670672
},
671673
RequestContext::new(NumberOrString::Number(1), peer),
672674
);
@@ -706,6 +708,8 @@ mod tests {
706708
name: Cow::Borrowed("test_tool"),
707709
arguments: None,
708710
task: None,
711+
input_responses: None,
712+
request_state: None,
709713
},
710714
RequestContext::new(NumberOrString::Number(1), peer),
711715
);

crates/rmcp/src/handler/server/tool.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ impl<'s, S> ToolCallContext<'s, S> {
4646
name,
4747
arguments,
4848
task,
49+
..
4950
}: CallToolRequestParams,
5051
request_context: RequestContext<RoleServer>,
5152
) -> Self {

0 commit comments

Comments
 (0)