diff --git a/own_mcp/src/mcp/chat.rs b/own_mcp/src/mcp/chat.rs index e36945e..57bdcd6 100644 --- a/own_mcp/src/mcp/chat.rs +++ b/own_mcp/src/mcp/chat.rs @@ -9,6 +9,7 @@ use rmcp::ServiceError; use rmcp::model::{CallToolRequestParams, CallToolResult}; use serde::Deserialize; use std::collections::HashMap; +use std::fmt::Formatter; use thiserror::Error; #[derive(Debug, Copy, Clone, Default, Deserialize, PartialEq)] @@ -111,6 +112,20 @@ pub struct ToolUsage { pub result: RestrictedToolCallResult, } +impl std::fmt::Display for ToolUsage { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}(", self.call.function.name)?; + + for (name, value) in self.call.function.arguments.as_object().expect("function.arguments is always an object").iter() { + write!(f, "{name}={value}, ")?; + } + + write!(f, ") = {:?}", self.result)?; + + Ok(()) + } +} + impl AgentChat { pub async fn new( ollama_client: Ollama,