Skip to content

Commit 2a2b65e

Browse files
committed
fix: gate request metadata on inline lifecycle only
1 parent be98a64 commit 2a2b65e

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

crates/rmcp/src/handler/server.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,15 @@ impl<H: ServerHandler> Service<RoleServer> for H {
4141
));
4242
}
4343
}
44+
// Self-contained metadata is required only when the request itself uses
45+
// the inline lifecycle: a discover opener, a session that started without
46+
// `initialize`, or a request that declares 2026-07-28+ in its own _meta.
47+
// Sessions that negotiated via `initialize` (or `serve_directly`) keep the
48+
// session model and may omit per-request metadata.
4449
let requires_request_metadata = uses_inline_negotiation
4550
&& (matches!(&request, ClientRequest::DiscoverRequest(_))
4651
|| context.peer.request_metadata_required()
47-
|| protocol_version.as_ref().is_some_and(|version| {
52+
|| requested_version.as_ref().is_some_and(|version| {
4853
version.as_str() >= ProtocolVersion::V_2026_07_28.as_str()
4954
}));
5055
if requires_request_metadata {

0 commit comments

Comments
 (0)