From 0a9a0a0b1f234bd296459fc98b41fd6215c8e3a9 Mon Sep 17 00:00:00 2001 From: John Howard Date: Tue, 29 Jul 2025 20:08:31 -0700 Subject: [PATCH] fix(capabilities): do not serialize None as null for `list_changed` (#341) The old form violates the spec, and all other `Option` fields also behave this way. Concretely https://github.com/upstash/context7/ fails without this change. --- crates/rmcp/src/model/capabilities.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/rmcp/src/model/capabilities.rs b/crates/rmcp/src/model/capabilities.rs index 3b9863c..581b8d8 100644 --- a/crates/rmcp/src/model/capabilities.rs +++ b/crates/rmcp/src/model/capabilities.rs @@ -36,6 +36,7 @@ pub struct ToolsCapability { #[serde(rename_all = "camelCase")] #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] pub struct RootsCapabilities { + #[serde(skip_serializing_if = "Option::is_none")] pub list_changed: Option, }