diff --git a/Cargo.lock b/Cargo.lock index e5a3330..fa43254 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -348,6 +348,7 @@ version = "0.1.1" dependencies = [ "async-trait", "futures", + "rust-mcp-macros", "rust-mcp-schema", "rust-mcp-transport", "serde", diff --git a/Cargo.toml b/Cargo.toml index 08d03b2..79d6192 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,9 +13,9 @@ members = [ [workspace.dependencies] # Workspace member crates -rust-mcp-transport = { version = "0.1.0", path = "crates/rust-mcp-transport" } -rust-mcp-sdk = { version = "0.1.0", path = "crates/rust-mcp-sdk" } -rust-mcp-macros = { version = "0.1.0", path = "crates/rust-mcp-macros" } +rust-mcp-transport = { path = "crates/rust-mcp-transport" } +rust-mcp-sdk = { path = "crates/rust-mcp-sdk" } +rust-mcp-macros = { path = "crates/rust-mcp-macros" } # External crates rust-mcp-schema = { version = "0.2.1" } diff --git a/README.md b/README.md index d61df38..3febb1a 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ async fn main() -> SdkResult<()> { Here is the output : -![rust-mcp-sdk-client-output](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/assets/sample/mcp-client-sample-code.jpg) +![rust-mcp-sdk-client-output](assets/examples/mcp-client-sample-code.jpg) > your results may vary slightly depending on the version of the MCP Server in use when you run it. diff --git a/assets/sample/mcp-client-sample-code.jpg b/assets/examples/mcp-client-sample-code.jpg similarity index 100% rename from assets/sample/mcp-client-sample-code.jpg rename to assets/examples/mcp-client-sample-code.jpg diff --git a/crates/rust-mcp-macros/Cargo.toml b/crates/rust-mcp-macros/Cargo.toml index ce28301..b26558a 100644 --- a/crates/rust-mcp-macros/Cargo.toml +++ b/crates/rust-mcp-macros/Cargo.toml @@ -15,14 +15,13 @@ description = "A procedural macro, part of the rust-mcp-sdk ecosystem, that deri [dependencies] serde_json = { workspace = true } +serde = { version = "1.0", features = ["derive"] } syn = "2.0" quote = "1.0" proc-macro2 = "1.0" [dev-dependencies] rust-mcp-schema = { version = "0.2.1" } -serde = { version = "1.0", features = ["derive"] } -serde_json = { version = "1.0" } [lints] workspace = true diff --git a/crates/rust-mcp-sdk/Cargo.toml b/crates/rust-mcp-sdk/Cargo.toml index 0752968..06d0383 100644 --- a/crates/rust-mcp-sdk/Cargo.toml +++ b/crates/rust-mcp-sdk/Cargo.toml @@ -13,6 +13,7 @@ edition = "2021" [dependencies] rust-mcp-schema = { workspace = true } rust-mcp-transport = { workspace = true } +rust-mcp-macros = { workspace = true, optional = true } tokio.workspace = true serde = { workspace = true } @@ -21,6 +22,9 @@ async-trait = { workspace = true } futures = { workspace = true } thiserror = { workspace = true } +[features] +default = ["macros"] # Default features +macros = ["rust-mcp-macros"] [lints] workspace = true diff --git a/crates/rust-mcp-sdk/README.md b/crates/rust-mcp-sdk/README.md index d61df38..3febb1a 100644 --- a/crates/rust-mcp-sdk/README.md +++ b/crates/rust-mcp-sdk/README.md @@ -183,7 +183,7 @@ async fn main() -> SdkResult<()> { Here is the output : -![rust-mcp-sdk-client-output](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/assets/sample/mcp-client-sample-code.jpg) +![rust-mcp-sdk-client-output](assets/examples/mcp-client-sample-code.jpg) > your results may vary slightly depending on the version of the MCP Server in use when you run it. diff --git a/crates/rust-mcp-sdk/assets/examples/mcp-client-sample-code.jpg b/crates/rust-mcp-sdk/assets/examples/mcp-client-sample-code.jpg new file mode 100644 index 0000000..fd188e9 Binary files /dev/null and b/crates/rust-mcp-sdk/assets/examples/mcp-client-sample-code.jpg differ diff --git a/crates/rust-mcp-sdk/src/lib.rs b/crates/rust-mcp-sdk/src/lib.rs index c51479c..96202ae 100644 --- a/crates/rust-mcp-sdk/src/lib.rs +++ b/crates/rust-mcp-sdk/src/lib.rs @@ -68,3 +68,10 @@ pub mod mcp_server { pub use mcp_traits::mcp_client::*; pub use mcp_traits::mcp_server::*; + +pub use rust_mcp_transport::*; + +#[cfg(feature = "macros")] +pub mod macros { + pub use rust_mcp_macros::*; +}