diff --git a/src/modes/server/mcp/tools.rs b/src/modes/server/mcp/tools.rs index e48d918..3efd25d 100644 --- a/src/modes/server/mcp/tools.rs +++ b/src/modes/server/mcp/tools.rs @@ -69,7 +69,7 @@ impl KeepTools { metadata.len() ); - let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone()); + let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone()); let item_with_meta = service .save_item_from_mcp(content.as_bytes().to_vec(), tags, metadata) .await @@ -90,7 +90,7 @@ impl KeepTools { .and_then(|v| v.as_i64()) .ok_or_else(|| ToolError::InvalidArguments("Missing or invalid 'id' field".to_string()))?; - let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone()); + let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone()); let item_with_content = match service.get_item_content(item_id).await { Ok(iwc) => iwc, @@ -124,7 +124,7 @@ impl KeepTools { .map(|arr| arr.iter().filter_map(|v| v.as_str().map(|s| s.to_string())).collect()) .unwrap_or_default(); - let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone()); + let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone()); let item_with_meta = match service.find_item(vec![], tags, HashMap::new()).await { Ok(iwm) => iwm, @@ -171,7 +171,7 @@ impl KeepTools { .and_then(|v| v.as_u64()) .unwrap_or(0) as usize; - let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone()); + let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone()); let mut items_with_meta = service.list_items(tags, HashMap::new()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?; // Sort by timestamp (newest first) and apply pagination @@ -224,7 +224,7 @@ impl KeepTools { }).collect()) .unwrap_or_default(); - let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone()); + let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone()); let mut items_with_meta = service.list_items(tags.clone(), metadata.clone()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?; // Sort by timestamp (newest first)