From 66219c7cadead13c90923dc5811b7b12b4f4af8d Mon Sep 17 00:00:00 2001 From: Ali Hashemi Date: Sun, 20 Apr 2025 14:51:51 -0300 Subject: [PATCH 1/4] docs: add projects list to readme --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 3f5a90f..d3e7f6a 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,14 @@ Leveraging the [rust-mcp-schema](https://github.com/rust-mcp-stack/rust-mcp-sche **⚠️WARNING**: This project only supports Standard Input/Output (stdio) transport at this time, with support for SSE (Server-Sent Events) transport still in progress and not yet available. Project is currently under development and should be used at your own risk. +## Projects using `rust-mcp-sdk` + +Below is a list of projects that utilize the `rust-mcp-sdk`, showcasing their name, description, and links to their repositories or project pages. + +| Icon | Name | Description | Link | +|------|------|-------------|------| +| | Rust MCP Filesystem | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | + ## Usage Examples ### MCP Server From 441694f12a57187425e781467f22714d66eb8cb3 Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sun, 20 Apr 2025 15:05:05 -0300 Subject: [PATCH 2/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3e7f6a..5e35db0 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Below is a list of projects that utilize the `rust-mcp-sdk`, showcasing their na | Icon | Name | Description | Link | |------|------|-------------|------| -| | Rust MCP Filesystem | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | +| | **Rust MCP Filesystem** | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | ## Usage Examples From c5b26b36be9c4aedc7ba5b3c3b53139dd5843387 Mon Sep 17 00:00:00 2001 From: Ali Hashemi <14126952+hashemix@users.noreply.github.com> Date: Sun, 20 Apr 2025 15:07:06 -0300 Subject: [PATCH 3/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e35db0..83382f9 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Below is a list of projects that utilize the `rust-mcp-sdk`, showcasing their na | Icon | Name | Description | Link | |------|------|-------------|------| -| | **Rust MCP Filesystem** | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | +| | [Rust MCP Filesystem](https://rust-mcp-stack.github.io/rust-mcp-filesystem) | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | ## Usage Examples From 71bb285c6033f0f786ad3153cd16690f4b07a022 Mon Sep 17 00:00:00 2001 From: Ali Hashemi Date: Sun, 20 Apr 2025 15:20:22 -0300 Subject: [PATCH 4/4] docs: update readme --- crates/rust-mcp-sdk/README.md | 44 +++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/crates/rust-mcp-sdk/README.md b/crates/rust-mcp-sdk/README.md index 32537e9..83382f9 100644 --- a/crates/rust-mcp-sdk/README.md +++ b/crates/rust-mcp-sdk/README.md @@ -4,14 +4,29 @@ # Rust MCP SDK -A high-performance, asynchronous toolkit for building MCP servers and clients. +[crates.io](https://crates.io/crates/rust-mcp-sdk) +[docs.rs](https://docs.rs/rust-mcp-sdk) +[build status +](https://github.com/rust-mcp-stack/rust-mcp-sdk/actions/workflows/ci.yml) +[Hello World MCP Server +](examples/hello-world-mcp-server) + +A high-performance, asynchronous toolkit for building MCP servers and clients. Focus on your app's logic while **rust-mcp-sdk** takes care of the rest! -**rust-mcp-sdk** provides the necessary components for developing both servers and clients in the MCP ecosystem. -Leveraging the [rust-mcp-schema](https://github.com/rust-mcp-stack/rust-mcp-schema) crate for type safe MCP schema objects and MCP type utilities simplifies the process of building robust and reliable MCP servers and clients, ensuring consistency and minimizing errors in data handling and message processing. +**rust-mcp-sdk** provides the necessary components for developing both servers and clients in the MCP ecosystem. +Leveraging the [rust-mcp-schema](https://github.com/rust-mcp-stack/rust-mcp-schema) crate simplifies the process of building robust and reliable MCP servers and clients, ensuring consistency and minimizing errors in data handling and message processing. **⚠️WARNING**: This project only supports Standard Input/Output (stdio) transport at this time, with support for SSE (Server-Sent Events) transport still in progress and not yet available. Project is currently under development and should be used at your own risk. +## Projects using `rust-mcp-sdk` + +Below is a list of projects that utilize the `rust-mcp-sdk`, showcasing their name, description, and links to their repositories or project pages. + +| Icon | Name | Description | Link | +|------|------|-------------|------| +| | [Rust MCP Filesystem](https://rust-mcp-stack.github.io/rust-mcp-filesystem) | Fast, asynchronous MCP server for seamless filesystem operations offering enhanced capabilities, improved performance, and a robust feature set tailored for modern filesystem interactions. | [GitHub](https://github.com/rust-mcp-stack/rust-mcp-filesystem) | + ## Usage Examples ### MCP Server @@ -195,10 +210,10 @@ If you are looking for a step-by-step tutorial on how to get started with `rust- [rust-mcp-sdk](https://github.com/rust-mcp-stack/rust-mcp-sdk) provides two type of handler traits that you can chose from: -- **mcp_server_handler**: This is the recommended trait for your MCP project, offering a default implementation for all types of MCP messages. It includes predefined implementations within the trait, such as handling initialization or responding to ping requests, so you only need to override and customize the handler functions relevant to your specific needs. +- **mcp_server_handler**: This is the recommended trait for your MCP project, offering a default implementation for all types of MCP messages. It includes predefined implementations within the trait, such as handling initialization or responding to ping requests, so you only need to override and customize the handler functions relevant to your specific needs. Refer to [examples/hello-world-mcp-server/src/handler.rs](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/examples/hello-world-mcp-server/src/handler.rs) for an example. -- **mcp_server_handler_core**: If you need more control over MCP messages, consider using `mcp_server_handler_core`. It offers three primary methods to manage the three MCP message types: `request`, `notification`, and `error`. While still providing type-safe objects in these methods, it allows you to determine how to handle each message based on its type and parameters. +- **mcp_server_handler_core**: If you need more control over MCP messages, consider using `mcp_server_handler_core`. It offers three primary methods to manage the three MCP message types: `request`, `notification`, and `error`. While still providing type-safe objects in these methods, it allows you to determine how to handle each message based on its type and parameters. Refer to [examples/hello-world-mcp-server-core/src/handler.rs](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/examples/hello-world-mcp-server-core/src/handler.rs) for an example. --- @@ -209,10 +224,25 @@ If you are looking for a step-by-step tutorial on how to get started with `rust- ### Choosing Between `mcp_client_handler` and `mcp_client_handler_core` -The same principles outlined above apply to the client-side handlers, `mcp_client_handler` and `mcp_client_handler_core`. -Use `client_runtime::create_client()` or `client_runtime_core::create_client()` , respectively. +The same principles outlined above apply to the client-side handlers, `mcp_client_handler` and `mcp_client_handler_core`. +Use `client_runtime::create_client()` or `client_runtime_core::create_client()` , respectively. Check out the corresponding examples at: [examples/simple-mcp-client](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/examples/simple-mcp-client) and [examples/simple-mcp-client-core](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/examples/simple-mcp-client-core). +## Contributing + +We welcome everyone who wishes to contribute! Please refer to the [contributing](CONTRIBUTING.md) guidelines for more details. + +Check out our [development guide](development.md) for instructions on setting up, building, testing, formatting, and trying out example projects. + +All contributions, including issues and pull requests, must follow +Rust's Code of Conduct. + +Unless explicitly stated otherwise, any contribution you submit for inclusion in rust-mcp-sdk is provided under the terms of the MIT License, without any additional conditions or restrictions. + +## Development + +Check out our [development guide](development.md) for instructions on setting up, building, testing, formatting, and trying out example projects. + ## License This project is licensed under the MIT License. see the [LICENSE](LICENSE) file for details.