From 77e6f8b745bae247fa88ed2cc2f69350338e949d Mon Sep 17 00:00:00 2001 From: wenhaozhao Date: Tue, 6 May 2025 17:28:08 +0800 Subject: [PATCH] align message endpoint with sse --- crates/rmcp/src/transport/sse.rs | 6 ++++++ crates/rmcp/src/transport/sse_auth.rs | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/rmcp/src/transport/sse.rs b/crates/rmcp/src/transport/sse.rs index 201f138bd..0dbb4c670 100644 --- a/crates/rmcp/src/transport/sse.rs +++ b/crates/rmcp/src/transport/sse.rs @@ -167,6 +167,12 @@ impl SseClient for ReqwestSseClient { let sse_url = self.sse_url.clone(); let session_id = session_id.to_string(); Box::pin(async move { + // align message endpoint with sse + let session_id = if session_id.starts_with("/") { + &session_id[1..] + } else { + &session_id + }; let uri = sse_url.join(&session_id).map_err(SseTransportError::from)?; let request_builder = client.post(uri.as_ref()).json(&message); request_builder diff --git a/crates/rmcp/src/transport/sse_auth.rs b/crates/rmcp/src/transport/sse_auth.rs index 82a11da61..28f08a1bc 100644 --- a/crates/rmcp/src/transport/sse_auth.rs +++ b/crates/rmcp/src/transport/sse_auth.rs @@ -132,7 +132,12 @@ impl SseClient for AuthorizedSseClient { .get_access_token() .await .map_err(SseTransportError::::from)?; - + // align message endpoint with sse + let session_id = if session_id.starts_with("/") { + &session_id[1..] + } else { + &session_id + }; let uri = sse_url.join(&session_id).map_err(SseTransportError::from)?; let request_builder = client .post(uri.as_ref())