diff --git a/Cargo.lock b/Cargo.lock index 22b1be3..7ba7519 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2477,6 +2477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ "getrandom 0.3.2", + "serde", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 73c2f06..fb828e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ jsonrpc-core = "18" warp = "0.3" jsonrpc-derive = "18" futures = "0.3" -uuid = { version = "1", features = ["v4"] } +uuid = { version = "1", features = ["v4", "v7", "serde"] } url = "2" base64 = "0.22" async-stream = "0.3" diff --git a/bin/client.rs b/bin/client.rs index 6a01db4..75625fb 100644 --- a/bin/client.rs +++ b/bin/client.rs @@ -6,6 +6,7 @@ use mcp_rs::{ transport::{sse::SseTransport, stdio::StdioTransport, ws::WebSocketTransport}, }; use serde_json::json; +use uuid::Uuid; #[derive(Parser, Debug)] #[command(name = "mcp-client", version, about = "MCP Client CLI")] @@ -255,6 +256,7 @@ async fn main() -> Result<(), McpError> { CallToolArgs::builder() .session_id(session_id) .tool_id(tool_id) + .agent_id(Uuid::new_v4()) .build(), ), ) diff --git a/src/tools/mod.rs b/src/tools/mod.rs index e79b437..c3f3bf0 100644 --- a/src/tools/mod.rs +++ b/src/tools/mod.rs @@ -5,6 +5,7 @@ use std::{collections::HashMap, sync::Arc}; use test_tool::{PingTool, TestTool}; use tokio::sync::{mpsc, RwLock}; use typed_builder::TypedBuilder; +use uuid::Uuid; pub mod calculator; pub mod file_system; @@ -117,6 +118,8 @@ pub struct CallToolArgs { #[serde(skip_serializing_if = "Option::is_none")] #[builder(default, setter(into))] pub session_id: Option, + + pub agent_id: Uuid, } // Tool Provider trait