diff --git a/.release-manifest.json b/.release-manifest.json
index e5e2f3f..fc5d2cf 100644
--- a/.release-manifest.json
+++ b/.release-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.1.7"
+ ".": "0.1.8"
}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c993a87..b8f7f37 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [0.1.8](https://github.com/rust-mcp-stack/rust-mcp-filesystem/compare/v0.1.7...v0.1.8) (2025-05-25)
+
+
+### 🐛 Bug Fixes
+
+* Support clients with older versions of mcp protocol ([#17](https://github.com/rust-mcp-stack/rust-mcp-filesystem/issues/17)) ([4c14bde](https://github.com/rust-mcp-stack/rust-mcp-filesystem/commit/4c14bde9f9233535cdf0cb17127ed15a24d2650a))
+
## [0.1.7](https://github.com/rust-mcp-stack/rust-mcp-filesystem/compare/v0.1.6...v0.1.7) (2025-05-25)
diff --git a/Cargo.lock b/Cargo.lock
index bbc7fdb..f5d9215 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -822,7 +822,7 @@ dependencies = [
[[package]]
name = "rust-mcp-filesystem"
-version = "0.1.7"
+version = "0.1.8"
dependencies = [
"async-trait",
"async_zip",
diff --git a/Cargo.toml b/Cargo.toml
index fd9758e..d41061f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "rust-mcp-filesystem"
-version = "0.1.7"
+version = "0.1.8"
edition = "2021"
repository = "https://github.com/rust-mcp-stack/rust-mcp-filesystem"
authors = ["Ali Hashemi"]
diff --git a/docs/_coverpage.md b/docs/_coverpage.md
index b146010..0ee33c6 100644
--- a/docs/_coverpage.md
+++ b/docs/_coverpage.md
@@ -6,7 +6,7 @@
-# Rust MCP FileSystem (v0.1.7)
+# Rust MCP FileSystem (v0.1.8)
diff --git a/docs/capabilities.md b/docs/capabilities.md
index f040646..0d922b8 100644
--- a/docs/capabilities.md
+++ b/docs/capabilities.md
@@ -1,7 +1,7 @@
# Capabilities
-## rust-mcp-filesystem 0.1.7
+## rust-mcp-filesystem 0.1.8
| 🟢 Tools (14) | 🔴 Prompts | 🔴 Resources | 🔴 Logging | 🔴 Experimental |
| --- | --- | --- | --- | --- |
## 🛠️ Tools (14)
diff --git a/docs/guide/install.md b/docs/guide/install.md
index 2058483..3f365a6 100644
--- a/docs/guide/install.md
+++ b/docs/guide/install.md
@@ -7,13 +7,13 @@
```sh
-curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.7/rust-mcp-filesystem-installer.sh | sh
+curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.8/rust-mcp-filesystem-installer.sh | sh
```
#### **PowerShell script**
```sh
-powershell -ExecutionPolicy Bypass -c "irm https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.7/rust-mcp-filesystem-installer.ps1 | iex"
+powershell -ExecutionPolicy Bypass -c "irm https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.8/rust-mcp-filesystem-installer.ps1 | iex"
```
@@ -38,78 +38,78 @@ brew install rust-mcp-stack/tap/rust-mcp-filesystem
|
- rust-mcp-filesystem-aarch64-apple-darwin.tar.gz
+ rust-mcp-filesystem-aarch64-apple-darwin.tar.gz
|
Apple Silicon macOS |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-apple-darwin.tar.gz
+ rust-mcp-filesystem-x86_64-apple-darwin.tar.gz
|
Intel macOS |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-pc-windows-msvc.zip
+ rust-mcp-filesystem-x86_64-pc-windows-msvc.zip
|
x64 Windows (zip) |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-pc-windows-msvc.msi
+ rust-mcp-filesystem-x86_64-pc-windows-msvc.msi
|
x64 Windows (msi) |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-aarch64-unknown-linux-gnu.tar.gz
+ rust-mcp-filesystem-aarch64-unknown-linux-gnu.tar.gz
|
ARM64 Linux |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-unknown-linux-gnu.tar.gz
+ rust-mcp-filesystem-x86_64-unknown-linux-gnu.tar.gz
|
x64 Linux |
- checksum
+ checksum
|
diff --git a/docs/quickstart.md b/docs/quickstart.md
index 78f1c33..890a3ca 100644
--- a/docs/quickstart.md
+++ b/docs/quickstart.md
@@ -7,13 +7,13 @@
```sh
-curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.7/rust-mcp-filesystem-installer.sh | sh
+curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.8/rust-mcp-filesystem-installer.sh | sh
```
#### **PowerShell script**
```sh
-powershell -ExecutionPolicy Bypass -c "irm https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.7/rust-mcp-filesystem-installer.ps1 | iex"
+powershell -ExecutionPolicy Bypass -c "irm https://github.com/rust-mcp-stack/rust-mcp-filesystem/releases/download/v0.1.8/rust-mcp-filesystem-installer.ps1 | iex"
```
@@ -38,78 +38,78 @@ brew install rust-mcp-stack/tap/rust-mcp-filesystem
|
- rust-mcp-filesystem-aarch64-apple-darwin.tar.gz
+ rust-mcp-filesystem-aarch64-apple-darwin.tar.gz
|
Apple Silicon macOS |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-apple-darwin.tar.gz
+ rust-mcp-filesystem-x86_64-apple-darwin.tar.gz
|
Intel macOS |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-pc-windows-msvc.zip
+ rust-mcp-filesystem-x86_64-pc-windows-msvc.zip
|
x64 Windows (zip) |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-pc-windows-msvc.msi
+ rust-mcp-filesystem-x86_64-pc-windows-msvc.msi
|
x64 Windows (msi) |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-aarch64-unknown-linux-gnu.tar.gz
+ rust-mcp-filesystem-aarch64-unknown-linux-gnu.tar.gz
|
ARM64 Linux |
- checksum
+ checksum
|
|
- rust-mcp-filesystem-x86_64-unknown-linux-gnu.tar.gz
+ rust-mcp-filesystem-x86_64-unknown-linux-gnu.tar.gz
|
x64 Linux |
- checksum
+ checksum
|
diff --git a/src/handler.rs b/src/handler.rs
index 5e6b4e2..53c831c 100644
--- a/src/handler.rs
+++ b/src/handler.rs
@@ -1,3 +1,5 @@
+use std::cmp::Ordering;
+
use crate::cli::CommandArguments;
use crate::error::ServiceError;
use crate::{error::ServiceResult, fs_service::FileSystemService, tools::*};
@@ -6,6 +8,7 @@ use rust_mcp_schema::{
schema_utils::CallToolError, CallToolRequest, CallToolResult, ListToolsRequest,
ListToolsResult, RpcError,
};
+use rust_mcp_schema::{InitializeRequest, InitializeResult};
use rust_mcp_sdk::mcp_server::ServerHandler;
use rust_mcp_sdk::McpServer;
@@ -68,6 +71,27 @@ impl ServerHandler for MyServerHandler {
})
}
+ async fn handle_initialize_request(
+ &self,
+ initialize_request: InitializeRequest,
+ runtime: &dyn McpServer,
+ ) -> std::result::Result {
+ runtime
+ .set_client_details(initialize_request.params.clone())
+ .map_err(|err| RpcError::internal_error().with_message(format!("{}", err)))?;
+
+ let mut server_info = runtime.server_info().to_owned();
+ // Provide compatibility for clients using older MCP protocol versions.
+ if server_info
+ .protocol_version
+ .cmp(&initialize_request.params.protocol_version)
+ == Ordering::Greater
+ {
+ server_info.protocol_version = initialize_request.params.protocol_version;
+ }
+ Ok(server_info)
+ }
+
async fn handle_call_tool_request(
&self,
request: CallToolRequest,