Skip to content

Commit a64be23

Browse files
authored
feat: add 2025-11-25 protocol version support (#802)
1 parent 4628720 commit a64be23

2 files changed

Lines changed: 16 additions & 4 deletions

File tree

crates/rmcp/src/model.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,19 @@ impl std::fmt::Display for ProtocolVersion {
152152
}
153153

154154
impl ProtocolVersion {
155+
pub const V_2025_11_25: Self = Self(Cow::Borrowed("2025-11-25"));
155156
pub const V_2025_06_18: Self = Self(Cow::Borrowed("2025-06-18"));
156157
pub const V_2025_03_26: Self = Self(Cow::Borrowed("2025-03-26"));
157158
pub const V_2024_11_05: Self = Self(Cow::Borrowed("2024-11-05"));
158-
pub const LATEST: Self = Self::V_2025_06_18;
159+
pub const LATEST: Self = Self::V_2025_11_25;
159160

160161
/// All protocol versions known to this SDK.
161-
pub const KNOWN_VERSIONS: &[Self] =
162-
&[Self::V_2024_11_05, Self::V_2025_03_26, Self::V_2025_06_18];
162+
pub const KNOWN_VERSIONS: &[Self] = &[
163+
Self::V_2024_11_05,
164+
Self::V_2025_03_26,
165+
Self::V_2025_06_18,
166+
Self::V_2025_11_25,
167+
];
163168

164169
/// Returns the string representation of this protocol version.
165170
pub fn as_str(&self) -> &str {
@@ -187,6 +192,7 @@ impl<'de> Deserialize<'de> for ProtocolVersion {
187192
"2024-11-05" => return Ok(ProtocolVersion::V_2024_11_05),
188193
"2025-03-26" => return Ok(ProtocolVersion::V_2025_03_26),
189194
"2025-06-18" => return Ok(ProtocolVersion::V_2025_06_18),
195+
"2025-11-25" => return Ok(ProtocolVersion::V_2025_11_25),
190196
_ => {}
191197
}
192198
Ok(ProtocolVersion(Cow::Owned(s)))
@@ -3745,7 +3751,11 @@ mod tests {
37453751
fn test_protocol_version_order() {
37463752
let v1 = ProtocolVersion::V_2024_11_05;
37473753
let v2 = ProtocolVersion::V_2025_03_26;
3754+
let v3 = ProtocolVersion::V_2025_06_18;
3755+
let v4 = ProtocolVersion::V_2025_11_25;
37483756
assert!(v1 < v2);
3757+
assert!(v2 < v3);
3758+
assert!(v3 < v4);
37493759
}
37503760

37513761
#[test]

crates/rmcp/tests/test_custom_headers.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,16 @@ async fn test_server_rejects_unsupported_protocol_version() {
866866
fn test_protocol_version_utilities() {
867867
use rmcp::model::ProtocolVersion;
868868

869+
assert_eq!(ProtocolVersion::V_2025_11_25.as_str(), "2025-11-25");
869870
assert_eq!(ProtocolVersion::V_2025_06_18.as_str(), "2025-06-18");
870871
assert_eq!(ProtocolVersion::V_2025_03_26.as_str(), "2025-03-26");
871872
assert_eq!(ProtocolVersion::V_2024_11_05.as_str(), "2024-11-05");
872873

873-
assert_eq!(ProtocolVersion::KNOWN_VERSIONS.len(), 3);
874+
assert_eq!(ProtocolVersion::KNOWN_VERSIONS.len(), 4);
874875
assert!(ProtocolVersion::KNOWN_VERSIONS.contains(&ProtocolVersion::V_2024_11_05));
875876
assert!(ProtocolVersion::KNOWN_VERSIONS.contains(&ProtocolVersion::V_2025_03_26));
876877
assert!(ProtocolVersion::KNOWN_VERSIONS.contains(&ProtocolVersion::V_2025_06_18));
878+
assert!(ProtocolVersion::KNOWN_VERSIONS.contains(&ProtocolVersion::V_2025_11_25));
877879
}
878880

879881
/// Integration test: Verify server validates only the Host header for DNS rebinding protection

0 commit comments

Comments
 (0)