From f2f0afb542f6ff036a28cf01e102b27ce940665b Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Thu, 28 Aug 2025 06:39:19 -0300 Subject: [PATCH 1/6] fix: session ID access in handlers and add helper for listing active (#90) sessions --- crates/rust-mcp-sdk/src/hyper_servers/hyper_runtime.rs | 6 ++++++ .../src/hyper_servers/routes/hyper_utils.rs | 5 +---- crates/rust-mcp-sdk/src/mcp_runtimes/server_runtime.rs | 10 +++++----- crates/rust-mcp-sdk/src/mcp_traits/mcp_server.rs | 7 +++++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/crates/rust-mcp-sdk/src/hyper_servers/hyper_runtime.rs b/crates/rust-mcp-sdk/src/hyper_servers/hyper_runtime.rs index 109dde5..85cf791 100644 --- a/crates/rust-mcp-sdk/src/hyper_servers/hyper_runtime.rs +++ b/crates/rust-mcp-sdk/src/hyper_servers/hyper_runtime.rs @@ -70,6 +70,12 @@ impl HyperRuntime { result.map_err(|err| err.into()) } + /// Returns a list of active session IDs from the session store. + pub async fn sessions(&self) -> Vec { + self.state.session_store.keys().await + } + + /// Retrieves the runtime associated with the given session ID from the session store. pub async fn runtime_by_session( &self, session_id: &SessionId, diff --git a/crates/rust-mcp-sdk/src/hyper_servers/routes/hyper_utils.rs b/crates/rust-mcp-sdk/src/hyper_servers/routes/hyper_utils.rs index 79bf226..0a77913 100644 --- a/crates/rust-mcp-sdk/src/hyper_servers/routes/hyper_utils.rs +++ b/crates/rust-mcp-sdk/src/hyper_servers/routes/hyper_utils.rs @@ -172,10 +172,7 @@ pub async fn start_new_session( session_id.to_owned(), )); - tracing::info!( - "a new client joined : {}", - runtime.session_id().await.unwrap_or_default().to_owned() - ); + tracing::info!("a new client joined : {}", &session_id); let response = create_sse_stream( runtime.clone(), diff --git a/crates/rust-mcp-sdk/src/mcp_runtimes/server_runtime.rs b/crates/rust-mcp-sdk/src/mcp_runtimes/server_runtime.rs index 49b5c3c..44f3e53 100644 --- a/crates/rust-mcp-sdk/src/mcp_runtimes/server_runtime.rs +++ b/crates/rust-mcp-sdk/src/mcp_runtimes/server_runtime.rs @@ -197,6 +197,11 @@ impl McpServer for ServerRuntime { } Ok(()) } + + #[cfg(feature = "hyper-server")] + fn session_id(&self) -> Option { + self.session_id.to_owned() + } } impl ServerRuntime { @@ -435,11 +440,6 @@ impl ServerRuntime { } } - #[cfg(feature = "hyper-server")] - pub(crate) async fn session_id(&self) -> Option { - self.session_id.to_owned() - } - #[cfg(feature = "hyper-server")] pub(crate) fn new_instance( server_details: Arc, diff --git a/crates/rust-mcp-sdk/src/mcp_traits/mcp_server.rs b/crates/rust-mcp-sdk/src/mcp_traits/mcp_server.rs index 0130c33..2eab9db 100644 --- a/crates/rust-mcp-sdk/src/mcp_traits/mcp_server.rs +++ b/crates/rust-mcp-sdk/src/mcp_traits/mcp_server.rs @@ -1,5 +1,3 @@ -use std::time::Duration; - use crate::schema::{ schema_utils::{ ClientMessage, McpMessage, MessageFromServer, NotificationFromServer, RequestFromServer, @@ -16,6 +14,8 @@ use crate::schema::{ SetLevelRequest, ToolListChangedNotification, ToolListChangedNotificationParams, }; use async_trait::async_trait; +use rust_mcp_transport::SessionId; +use std::time::Duration; use crate::{error::SdkResult, utils::format_assertion_message}; @@ -405,4 +405,7 @@ pub trait McpServer: Sync + Send { } Ok(()) } + + #[cfg(feature = "hyper-server")] + fn session_id(&self) -> Option; } From a219c260a30806befe8628e691b51adaed5b0693 Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Thu, 28 Aug 2025 06:51:18 -0300 Subject: [PATCH 2/6] chore: release main (#91) --- .release-manifest.json | 18 +++++++++--------- Cargo.lock | 18 +++++++++--------- crates/rust-mcp-sdk/CHANGELOG.md | 7 +++++++ crates/rust-mcp-sdk/Cargo.toml | 2 +- .../hello-world-mcp-server-core/Cargo.toml | 2 +- examples/hello-world-mcp-server/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- examples/simple-mcp-client-core-sse/Cargo.toml | 2 +- examples/simple-mcp-client-core/Cargo.toml | 2 +- examples/simple-mcp-client-sse/Cargo.toml | 2 +- examples/simple-mcp-client/Cargo.toml | 2 +- 12 files changed, 34 insertions(+), 27 deletions(-) diff --git a/.release-manifest.json b/.release-manifest.json index 67502c7..6bac6a9 100644 --- a/.release-manifest.json +++ b/.release-manifest.json @@ -1,13 +1,13 @@ { - "crates/rust-mcp-sdk": "0.6.0", + "crates/rust-mcp-sdk": "0.6.1", "crates/rust-mcp-macros": "0.5.1", "crates/rust-mcp-transport": "0.5.0", - "examples/hello-world-mcp-server": "0.1.28", - "examples/hello-world-mcp-server-core": "0.1.19", - "examples/simple-mcp-client": "0.1.28", - "examples/simple-mcp-client-core": "0.1.28", - "examples/hello-world-server-core-streamable-http": "0.1.19", - "examples/hello-world-server-streamable-http": "0.1.28", - "examples/simple-mcp-client-core-sse": "0.1.19", - "examples/simple-mcp-client-sse": "0.1.19" + "examples/hello-world-mcp-server": "0.1.29", + "examples/hello-world-mcp-server-core": "0.1.20", + "examples/simple-mcp-client": "0.1.29", + "examples/simple-mcp-client-core": "0.1.29", + "examples/hello-world-server-core-streamable-http": "0.1.20", + "examples/hello-world-server-streamable-http": "0.1.29", + "examples/simple-mcp-client-core-sse": "0.1.20", + "examples/simple-mcp-client-sse": "0.1.20" } diff --git a/Cargo.lock b/Cargo.lock index 7554175..061edf9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -688,7 +688,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "hello-world-mcp-server" -version = "0.1.28" +version = "0.1.29" dependencies = [ "async-trait", "futures", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "hello-world-mcp-server-core" -version = "0.1.19" +version = "0.1.20" dependencies = [ "async-trait", "futures", @@ -714,7 +714,7 @@ dependencies = [ [[package]] name = "hello-world-server-core-streamable-http" -version = "0.1.19" +version = "0.1.20" dependencies = [ "async-trait", "futures", @@ -728,7 +728,7 @@ dependencies = [ [[package]] name = "hello-world-server-streamable-http" -version = "0.1.28" +version = "0.1.29" dependencies = [ "async-trait", "futures", @@ -1701,7 +1701,7 @@ dependencies = [ [[package]] name = "rust-mcp-sdk" -version = "0.6.0" +version = "0.6.1" dependencies = [ "async-trait", "axum", @@ -1926,7 +1926,7 @@ dependencies = [ [[package]] name = "simple-mcp-client" -version = "0.1.28" +version = "0.1.29" dependencies = [ "async-trait", "colored", @@ -1940,7 +1940,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core" -version = "0.1.28" +version = "0.1.29" dependencies = [ "async-trait", "colored", @@ -1954,7 +1954,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core-sse" -version = "0.1.19" +version = "0.1.20" dependencies = [ "async-trait", "colored", @@ -1970,7 +1970,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-sse" -version = "0.1.19" +version = "0.1.20" dependencies = [ "async-trait", "colored", diff --git a/crates/rust-mcp-sdk/CHANGELOG.md b/crates/rust-mcp-sdk/CHANGELOG.md index bd1c8a8..057dffd 100644 --- a/crates/rust-mcp-sdk/CHANGELOG.md +++ b/crates/rust-mcp-sdk/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.6.1](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.6.0...rust-mcp-sdk-v0.6.1) (2025-08-28) + + +### 🐛 Bug Fixes + +* Session ID access in handlers and add helper for listing active ([#90](https://github.com/rust-mcp-stack/rust-mcp-sdk/issues/90)) ([f2f0afb](https://github.com/rust-mcp-stack/rust-mcp-sdk/commit/f2f0afb542f6ff036a28cf01e102b27ce940665b)) + ## [0.6.0](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.5.3...rust-mcp-sdk-v0.6.0) (2025-08-19) diff --git a/crates/rust-mcp-sdk/Cargo.toml b/crates/rust-mcp-sdk/Cargo.toml index d0553c8..161d813 100644 --- a/crates/rust-mcp-sdk/Cargo.toml +++ b/crates/rust-mcp-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-mcp-sdk" -version = "0.6.0" +version = "0.6.1" authors = ["Ali Hashemi"] categories = ["data-structures", "parser-implementations", "parsing"] description = "An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects." diff --git a/examples/hello-world-mcp-server-core/Cargo.toml b/examples/hello-world-mcp-server-core/Cargo.toml index a725e37..c28b8c3 100644 --- a/examples/hello-world-mcp-server-core/Cargo.toml +++ b/examples/hello-world-mcp-server-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server-core" -version = "0.1.19" +version = "0.1.20" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-mcp-server/Cargo.toml b/examples/hello-world-mcp-server/Cargo.toml index 80faa71..cd8f63d 100644 --- a/examples/hello-world-mcp-server/Cargo.toml +++ b/examples/hello-world-mcp-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server" -version = "0.1.28" +version = "0.1.29" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-core-streamable-http/Cargo.toml b/examples/hello-world-server-core-streamable-http/Cargo.toml index 234e6fc..7ae24d4 100644 --- a/examples/hello-world-server-core-streamable-http/Cargo.toml +++ b/examples/hello-world-server-core-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-core-streamable-http" -version = "0.1.19" +version = "0.1.20" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-streamable-http/Cargo.toml b/examples/hello-world-server-streamable-http/Cargo.toml index 3a5ffd3..3e763c1 100644 --- a/examples/hello-world-server-streamable-http/Cargo.toml +++ b/examples/hello-world-server-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-streamable-http" -version = "0.1.28" +version = "0.1.29" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core-sse/Cargo.toml b/examples/simple-mcp-client-core-sse/Cargo.toml index 52322a7..704ae28 100644 --- a/examples/simple-mcp-client-core-sse/Cargo.toml +++ b/examples/simple-mcp-client-core-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core-sse" -version = "0.1.19" +version = "0.1.20" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core/Cargo.toml b/examples/simple-mcp-client-core/Cargo.toml index f1b4709..84552a1 100644 --- a/examples/simple-mcp-client-core/Cargo.toml +++ b/examples/simple-mcp-client-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core" -version = "0.1.28" +version = "0.1.29" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-sse/Cargo.toml b/examples/simple-mcp-client-sse/Cargo.toml index 1bde25c..9782db9 100644 --- a/examples/simple-mcp-client-sse/Cargo.toml +++ b/examples/simple-mcp-client-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-sse" -version = "0.1.19" +version = "0.1.20" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client/Cargo.toml b/examples/simple-mcp-client/Cargo.toml index 5b81f02..bae4943 100644 --- a/examples/simple-mcp-client/Cargo.toml +++ b/examples/simple-mcp-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client" -version = "0.1.28" +version = "0.1.29" edition = "2021" publish = false license = "MIT" From 54cc8edb55c41455dd9211f296560e7a792a7b9c Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sat, 30 Aug 2025 11:52:08 -0300 Subject: [PATCH 3/6] fix: tool-box macro panic on invalid requests (#92) --- Cargo.lock | 185 +++++++----------- .../rust-mcp-sdk/src/mcp_macros/tool_box.rs | 16 +- 2 files changed, 83 insertions(+), 118 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 061edf9..371a94a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -239,9 +239,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "bumpalo" @@ -257,9 +257,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.33" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "jobserver", "libc", @@ -459,9 +459,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -626,7 +626,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", "wasm-bindgen", ] @@ -1020,9 +1020,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -1041,9 +1041,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", @@ -1066,9 +1066,9 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ "bitflags", "cfg-if", @@ -1108,9 +1108,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -1196,11 +1196,11 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -1269,12 +1269,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -1308,12 +1307,6 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "parking" version = "2.2.1" @@ -1345,9 +1338,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project-lite" @@ -1363,9 +1356,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -1422,9 +1415,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -1433,8 +1426,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.10", - "thiserror 2.0.15", + "socket2 0.6.0", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -1442,9 +1435,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", @@ -1455,7 +1448,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.15", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -1463,16 +1456,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.0", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1571,47 +1564,32 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "reqwest" @@ -1691,9 +1669,9 @@ dependencies = [ [[package]] name = "rust-mcp-schema" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0e71aee61257cd3d4a78fdc10c92c29e7a55c4f767119ffdafd837bb5e5cb9a" +checksum = "098436b06bfa4b88b110d12a5567cf37fd454735ee67cab7eb48bdbea0dd0e57" dependencies = [ "serde", "serde_json", @@ -1714,7 +1692,7 @@ dependencies = [ "rust-mcp-transport", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -1733,7 +1711,7 @@ dependencies = [ "rust-mcp-schema", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -1934,7 +1912,7 @@ dependencies = [ "rust-mcp-sdk", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", ] @@ -1948,7 +1926,7 @@ dependencies = [ "rust-mcp-sdk", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", ] @@ -1962,7 +1940,7 @@ dependencies = [ "rust-mcp-sdk", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", "tracing-subscriber", @@ -1978,7 +1956,7 @@ dependencies = [ "rust-mcp-sdk", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", "tokio", "tracing", "tracing-subscriber", @@ -2070,11 +2048,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.15", + "thiserror-impl 2.0.16", ] [[package]] @@ -2090,9 +2068,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", @@ -2321,14 +2299,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -2363,9 +2341,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -2431,11 +2409,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -2563,28 +2541,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-link" version = "0.1.3" @@ -2770,13 +2726,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "writeable" diff --git a/crates/rust-mcp-sdk/src/mcp_macros/tool_box.rs b/crates/rust-mcp-sdk/src/mcp_macros/tool_box.rs index a5b75d5..3edb344 100644 --- a/crates/rust-mcp-sdk/src/mcp_macros/tool_box.rs +++ b/crates/rust-mcp-sdk/src/mcp_macros/tool_box.rs @@ -67,8 +67,20 @@ macro_rules! tool_box { /// Attempts to convert a tool request into the appropriate tool variant fn try_from(value: rust_mcp_sdk::schema::CallToolRequestParams) -> Result { - let v = serde_json::to_value(value.arguments.unwrap()) - .map_err(rust_mcp_sdk::schema::schema_utils::CallToolError::new)?; + let arguments = value + .arguments + .ok_or(rust_mcp_sdk::schema::schema_utils::CallToolError::invalid_arguments( + &value.name, + Some("Missing 'arguments' field in the request".to_string()) + ))?; + + let v = serde_json::to_value(arguments).map_err(|err| { + rust_mcp_sdk::schema::schema_utils::CallToolError::invalid_arguments( + &value.name, + Some(format!("{err}")), + ) + })?; + match value.name { $( name if name == $tool::tool_name().as_str() => { From 9770abc8f3818ad4039d580a3c05194942f14e18 Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sat, 30 Aug 2025 12:01:12 -0300 Subject: [PATCH 4/6] chore: release main (#93) --- .release-manifest.json | 18 +++++++++--------- Cargo.lock | 18 +++++++++--------- crates/rust-mcp-sdk/CHANGELOG.md | 7 +++++++ crates/rust-mcp-sdk/Cargo.toml | 2 +- .../hello-world-mcp-server-core/Cargo.toml | 2 +- examples/hello-world-mcp-server/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- examples/simple-mcp-client-core-sse/Cargo.toml | 2 +- examples/simple-mcp-client-core/Cargo.toml | 2 +- examples/simple-mcp-client-sse/Cargo.toml | 2 +- examples/simple-mcp-client/Cargo.toml | 2 +- 12 files changed, 34 insertions(+), 27 deletions(-) diff --git a/.release-manifest.json b/.release-manifest.json index 6bac6a9..716d65a 100644 --- a/.release-manifest.json +++ b/.release-manifest.json @@ -1,13 +1,13 @@ { - "crates/rust-mcp-sdk": "0.6.1", + "crates/rust-mcp-sdk": "0.6.2", "crates/rust-mcp-macros": "0.5.1", "crates/rust-mcp-transport": "0.5.0", - "examples/hello-world-mcp-server": "0.1.29", - "examples/hello-world-mcp-server-core": "0.1.20", - "examples/simple-mcp-client": "0.1.29", - "examples/simple-mcp-client-core": "0.1.29", - "examples/hello-world-server-core-streamable-http": "0.1.20", - "examples/hello-world-server-streamable-http": "0.1.29", - "examples/simple-mcp-client-core-sse": "0.1.20", - "examples/simple-mcp-client-sse": "0.1.20" + "examples/hello-world-mcp-server": "0.1.30", + "examples/hello-world-mcp-server-core": "0.1.21", + "examples/simple-mcp-client": "0.1.30", + "examples/simple-mcp-client-core": "0.1.30", + "examples/hello-world-server-core-streamable-http": "0.1.21", + "examples/hello-world-server-streamable-http": "0.1.30", + "examples/simple-mcp-client-core-sse": "0.1.21", + "examples/simple-mcp-client-sse": "0.1.21" } diff --git a/Cargo.lock b/Cargo.lock index 371a94a..6f86732 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -688,7 +688,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "hello-world-mcp-server" -version = "0.1.29" +version = "0.1.30" dependencies = [ "async-trait", "futures", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "hello-world-mcp-server-core" -version = "0.1.20" +version = "0.1.21" dependencies = [ "async-trait", "futures", @@ -714,7 +714,7 @@ dependencies = [ [[package]] name = "hello-world-server-core-streamable-http" -version = "0.1.20" +version = "0.1.21" dependencies = [ "async-trait", "futures", @@ -728,7 +728,7 @@ dependencies = [ [[package]] name = "hello-world-server-streamable-http" -version = "0.1.29" +version = "0.1.30" dependencies = [ "async-trait", "futures", @@ -1679,7 +1679,7 @@ dependencies = [ [[package]] name = "rust-mcp-sdk" -version = "0.6.1" +version = "0.6.2" dependencies = [ "async-trait", "axum", @@ -1904,7 +1904,7 @@ dependencies = [ [[package]] name = "simple-mcp-client" -version = "0.1.29" +version = "0.1.30" dependencies = [ "async-trait", "colored", @@ -1918,7 +1918,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core" -version = "0.1.29" +version = "0.1.30" dependencies = [ "async-trait", "colored", @@ -1932,7 +1932,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core-sse" -version = "0.1.20" +version = "0.1.21" dependencies = [ "async-trait", "colored", @@ -1948,7 +1948,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-sse" -version = "0.1.20" +version = "0.1.21" dependencies = [ "async-trait", "colored", diff --git a/crates/rust-mcp-sdk/CHANGELOG.md b/crates/rust-mcp-sdk/CHANGELOG.md index 057dffd..f3ffaf4 100644 --- a/crates/rust-mcp-sdk/CHANGELOG.md +++ b/crates/rust-mcp-sdk/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.6.2](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.6.1...rust-mcp-sdk-v0.6.2) (2025-08-30) + + +### 🐛 Bug Fixes + +* Tool-box macro panic on invalid requests ([#92](https://github.com/rust-mcp-stack/rust-mcp-sdk/issues/92)) ([54cc8ed](https://github.com/rust-mcp-stack/rust-mcp-sdk/commit/54cc8edb55c41455dd9211f296560e7a792a7b9c)) + ## [0.6.1](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.6.0...rust-mcp-sdk-v0.6.1) (2025-08-28) diff --git a/crates/rust-mcp-sdk/Cargo.toml b/crates/rust-mcp-sdk/Cargo.toml index 161d813..9261df7 100644 --- a/crates/rust-mcp-sdk/Cargo.toml +++ b/crates/rust-mcp-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-mcp-sdk" -version = "0.6.1" +version = "0.6.2" authors = ["Ali Hashemi"] categories = ["data-structures", "parser-implementations", "parsing"] description = "An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects." diff --git a/examples/hello-world-mcp-server-core/Cargo.toml b/examples/hello-world-mcp-server-core/Cargo.toml index c28b8c3..1a9a684 100644 --- a/examples/hello-world-mcp-server-core/Cargo.toml +++ b/examples/hello-world-mcp-server-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server-core" -version = "0.1.20" +version = "0.1.21" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-mcp-server/Cargo.toml b/examples/hello-world-mcp-server/Cargo.toml index cd8f63d..73a6585 100644 --- a/examples/hello-world-mcp-server/Cargo.toml +++ b/examples/hello-world-mcp-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server" -version = "0.1.29" +version = "0.1.30" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-core-streamable-http/Cargo.toml b/examples/hello-world-server-core-streamable-http/Cargo.toml index 7ae24d4..08bd089 100644 --- a/examples/hello-world-server-core-streamable-http/Cargo.toml +++ b/examples/hello-world-server-core-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-core-streamable-http" -version = "0.1.20" +version = "0.1.21" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-streamable-http/Cargo.toml b/examples/hello-world-server-streamable-http/Cargo.toml index 3e763c1..fd0cc60 100644 --- a/examples/hello-world-server-streamable-http/Cargo.toml +++ b/examples/hello-world-server-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-streamable-http" -version = "0.1.29" +version = "0.1.30" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core-sse/Cargo.toml b/examples/simple-mcp-client-core-sse/Cargo.toml index 704ae28..fdf119e 100644 --- a/examples/simple-mcp-client-core-sse/Cargo.toml +++ b/examples/simple-mcp-client-core-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core-sse" -version = "0.1.20" +version = "0.1.21" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core/Cargo.toml b/examples/simple-mcp-client-core/Cargo.toml index 84552a1..6fa16a2 100644 --- a/examples/simple-mcp-client-core/Cargo.toml +++ b/examples/simple-mcp-client-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core" -version = "0.1.29" +version = "0.1.30" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-sse/Cargo.toml b/examples/simple-mcp-client-sse/Cargo.toml index 9782db9..e529bb2 100644 --- a/examples/simple-mcp-client-sse/Cargo.toml +++ b/examples/simple-mcp-client-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-sse" -version = "0.1.20" +version = "0.1.21" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client/Cargo.toml b/examples/simple-mcp-client/Cargo.toml index bae4943..d524259 100644 --- a/examples/simple-mcp-client/Cargo.toml +++ b/examples/simple-mcp-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client" -version = "0.1.29" +version = "0.1.30" edition = "2021" publish = false license = "MIT" From 9d8c1fbdf3ddb7c67ce1fb7dcb8e50b8ba2e1202 Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sun, 31 Aug 2025 20:13:34 -0300 Subject: [PATCH 5/6] fix: correct pending_requests instance (#94) --- crates/rust-mcp-transport/src/stdio.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/crates/rust-mcp-transport/src/stdio.rs b/crates/rust-mcp-transport/src/stdio.rs index 06931d2..582af5d 100644 --- a/crates/rust-mcp-transport/src/stdio.rs +++ b/crates/rust-mcp-transport/src/stdio.rs @@ -237,13 +237,11 @@ where Ok(stream) } else { - let pending_requests: Arc>>> = - Arc::new(Mutex::new(HashMap::new())); let (stream, sender, error_stream) = MCPStream::create( Box::pin(tokio::io::stdin()), Mutex::new(Box::pin(tokio::io::stdout())), IoStream::Writable(Box::pin(tokio::io::stderr())), - pending_requests, + self.pending_requests.clone(), self.options.timeout, cancellation_token, ); From 3508e1e619bfd448bd02b3f7266ffd7d17c61f4e Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sun, 31 Aug 2025 20:23:28 -0300 Subject: [PATCH 6/6] chore: release main (#95) * chore: release main * chore: update Cargo.toml for release --------- Co-authored-by: github-actions[bot] --- .release-manifest.json | 20 +++++++++---------- Cargo.lock | 20 +++++++++---------- Cargo.toml | 2 +- crates/rust-mcp-sdk/CHANGELOG.md | 2 ++ crates/rust-mcp-sdk/Cargo.toml | 2 +- crates/rust-mcp-transport/CHANGELOG.md | 7 +++++++ crates/rust-mcp-transport/Cargo.toml | 2 +- .../hello-world-mcp-server-core/Cargo.toml | 2 +- examples/hello-world-mcp-server/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../simple-mcp-client-core-sse/Cargo.toml | 2 +- examples/simple-mcp-client-core/Cargo.toml | 2 +- examples/simple-mcp-client-sse/Cargo.toml | 2 +- examples/simple-mcp-client/Cargo.toml | 2 +- 15 files changed, 40 insertions(+), 31 deletions(-) diff --git a/.release-manifest.json b/.release-manifest.json index 716d65a..97a0f63 100644 --- a/.release-manifest.json +++ b/.release-manifest.json @@ -1,13 +1,13 @@ { - "crates/rust-mcp-sdk": "0.6.2", + "crates/rust-mcp-sdk": "0.6.3", "crates/rust-mcp-macros": "0.5.1", - "crates/rust-mcp-transport": "0.5.0", - "examples/hello-world-mcp-server": "0.1.30", - "examples/hello-world-mcp-server-core": "0.1.21", - "examples/simple-mcp-client": "0.1.30", - "examples/simple-mcp-client-core": "0.1.30", - "examples/hello-world-server-core-streamable-http": "0.1.21", - "examples/hello-world-server-streamable-http": "0.1.30", - "examples/simple-mcp-client-core-sse": "0.1.21", - "examples/simple-mcp-client-sse": "0.1.21" + "crates/rust-mcp-transport": "0.5.1", + "examples/hello-world-mcp-server": "0.1.31", + "examples/hello-world-mcp-server-core": "0.1.22", + "examples/simple-mcp-client": "0.1.31", + "examples/simple-mcp-client-core": "0.1.31", + "examples/hello-world-server-core-streamable-http": "0.1.22", + "examples/hello-world-server-streamable-http": "0.1.31", + "examples/simple-mcp-client-core-sse": "0.1.22", + "examples/simple-mcp-client-sse": "0.1.22" } diff --git a/Cargo.lock b/Cargo.lock index 6f86732..c10e354 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -688,7 +688,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "hello-world-mcp-server" -version = "0.1.30" +version = "0.1.31" dependencies = [ "async-trait", "futures", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "hello-world-mcp-server-core" -version = "0.1.21" +version = "0.1.22" dependencies = [ "async-trait", "futures", @@ -714,7 +714,7 @@ dependencies = [ [[package]] name = "hello-world-server-core-streamable-http" -version = "0.1.21" +version = "0.1.22" dependencies = [ "async-trait", "futures", @@ -728,7 +728,7 @@ dependencies = [ [[package]] name = "hello-world-server-streamable-http" -version = "0.1.30" +version = "0.1.31" dependencies = [ "async-trait", "futures", @@ -1679,7 +1679,7 @@ dependencies = [ [[package]] name = "rust-mcp-sdk" -version = "0.6.2" +version = "0.6.3" dependencies = [ "async-trait", "axum", @@ -1702,7 +1702,7 @@ dependencies = [ [[package]] name = "rust-mcp-transport" -version = "0.5.0" +version = "0.5.1" dependencies = [ "async-trait", "bytes", @@ -1904,7 +1904,7 @@ dependencies = [ [[package]] name = "simple-mcp-client" -version = "0.1.30" +version = "0.1.31" dependencies = [ "async-trait", "colored", @@ -1918,7 +1918,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core" -version = "0.1.30" +version = "0.1.31" dependencies = [ "async-trait", "colored", @@ -1932,7 +1932,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-core-sse" -version = "0.1.21" +version = "0.1.22" dependencies = [ "async-trait", "colored", @@ -1948,7 +1948,7 @@ dependencies = [ [[package]] name = "simple-mcp-client-sse" -version = "0.1.21" +version = "0.1.22" dependencies = [ "async-trait", "colored", diff --git a/Cargo.toml b/Cargo.toml index 13d723c..b4f7cca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ members = [ [workspace.dependencies] # Workspace member crates -rust-mcp-transport = { version = "0.5.0", path = "crates/rust-mcp-transport", default-features = false } +rust-mcp-transport = { version = "0.5.1", path = "crates/rust-mcp-transport", default-features = false } rust-mcp-sdk = { path = "crates/rust-mcp-sdk", default-features = false } rust-mcp-macros = { version = "0.5.1", path = "crates/rust-mcp-macros", default-features = false } diff --git a/crates/rust-mcp-sdk/CHANGELOG.md b/crates/rust-mcp-sdk/CHANGELOG.md index f3ffaf4..db5a72b 100644 --- a/crates/rust-mcp-sdk/CHANGELOG.md +++ b/crates/rust-mcp-sdk/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## [0.6.3](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.6.2...rust-mcp-sdk-v0.6.3) (2025-08-31) + ## [0.6.2](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-sdk-v0.6.1...rust-mcp-sdk-v0.6.2) (2025-08-30) diff --git a/crates/rust-mcp-sdk/Cargo.toml b/crates/rust-mcp-sdk/Cargo.toml index 9261df7..48ea665 100644 --- a/crates/rust-mcp-sdk/Cargo.toml +++ b/crates/rust-mcp-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-mcp-sdk" -version = "0.6.2" +version = "0.6.3" authors = ["Ali Hashemi"] categories = ["data-structures", "parser-implementations", "parsing"] description = "An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects." diff --git a/crates/rust-mcp-transport/CHANGELOG.md b/crates/rust-mcp-transport/CHANGELOG.md index bfce3b5..9a0d2e1 100644 --- a/crates/rust-mcp-transport/CHANGELOG.md +++ b/crates/rust-mcp-transport/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.5.1](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-transport-v0.5.0...rust-mcp-transport-v0.5.1) (2025-08-31) + + +### 🐛 Bug Fixes + +* Correct pending_requests instance ([#94](https://github.com/rust-mcp-stack/rust-mcp-sdk/issues/94)) ([9d8c1fb](https://github.com/rust-mcp-stack/rust-mcp-sdk/commit/9d8c1fbdf3ddb7c67ce1fb7dcb8e50b8ba2e1202)) + ## [0.5.0](https://github.com/rust-mcp-stack/rust-mcp-sdk/compare/rust-mcp-transport-v0.4.1...rust-mcp-transport-v0.5.0) (2025-08-19) diff --git a/crates/rust-mcp-transport/Cargo.toml b/crates/rust-mcp-transport/Cargo.toml index 78c812b..ec061bb 100644 --- a/crates/rust-mcp-transport/Cargo.toml +++ b/crates/rust-mcp-transport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-mcp-transport" -version = "0.5.0" +version = "0.5.1" authors = ["Ali Hashemi"] categories = ["data-structures"] description = "Transport implementations for the MCP (Model Context Protocol) within the rust-mcp-sdk ecosystem, enabling asynchronous data exchange and efficient message handling between MCP clients and servers." diff --git a/examples/hello-world-mcp-server-core/Cargo.toml b/examples/hello-world-mcp-server-core/Cargo.toml index 1a9a684..bbab301 100644 --- a/examples/hello-world-mcp-server-core/Cargo.toml +++ b/examples/hello-world-mcp-server-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server-core" -version = "0.1.21" +version = "0.1.22" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-mcp-server/Cargo.toml b/examples/hello-world-mcp-server/Cargo.toml index 73a6585..63a54af 100644 --- a/examples/hello-world-mcp-server/Cargo.toml +++ b/examples/hello-world-mcp-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-mcp-server" -version = "0.1.30" +version = "0.1.31" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-core-streamable-http/Cargo.toml b/examples/hello-world-server-core-streamable-http/Cargo.toml index 08bd089..99d1011 100644 --- a/examples/hello-world-server-core-streamable-http/Cargo.toml +++ b/examples/hello-world-server-core-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-core-streamable-http" -version = "0.1.21" +version = "0.1.22" edition = "2021" publish = false license = "MIT" diff --git a/examples/hello-world-server-streamable-http/Cargo.toml b/examples/hello-world-server-streamable-http/Cargo.toml index fd0cc60..df4296d 100644 --- a/examples/hello-world-server-streamable-http/Cargo.toml +++ b/examples/hello-world-server-streamable-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hello-world-server-streamable-http" -version = "0.1.30" +version = "0.1.31" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core-sse/Cargo.toml b/examples/simple-mcp-client-core-sse/Cargo.toml index fdf119e..0e32790 100644 --- a/examples/simple-mcp-client-core-sse/Cargo.toml +++ b/examples/simple-mcp-client-core-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core-sse" -version = "0.1.21" +version = "0.1.22" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-core/Cargo.toml b/examples/simple-mcp-client-core/Cargo.toml index 6fa16a2..0dacc2d 100644 --- a/examples/simple-mcp-client-core/Cargo.toml +++ b/examples/simple-mcp-client-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-core" -version = "0.1.30" +version = "0.1.31" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client-sse/Cargo.toml b/examples/simple-mcp-client-sse/Cargo.toml index e529bb2..14fd96b 100644 --- a/examples/simple-mcp-client-sse/Cargo.toml +++ b/examples/simple-mcp-client-sse/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client-sse" -version = "0.1.21" +version = "0.1.22" edition = "2021" publish = false license = "MIT" diff --git a/examples/simple-mcp-client/Cargo.toml b/examples/simple-mcp-client/Cargo.toml index d524259..9599c46 100644 --- a/examples/simple-mcp-client/Cargo.toml +++ b/examples/simple-mcp-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-mcp-client" -version = "0.1.30" +version = "0.1.31" edition = "2021" publish = false license = "MIT"