use crate::McpServer;
use serde_json::{json, Value};
pub(crate) fn test_server() -> McpServer {
McpServer::for_testing()
}
pub(crate) fn store_memory(
server: &McpServer,
content: &str,
memory_type: &str,
tags: &[&str],
) -> Value {
let store_params = json!({
"name": "store_memory",
"arguments": {
"content": content,
"memory_type": memory_type,
"tags": tags,
}
});
let resp = server.handle_request("tools/call", Some(&store_params), json!(1));
let result = resp.result.unwrap();
let text = result["content"][0]["text"].as_str().unwrap();
serde_json::from_str(text).unwrap()
}
pub(crate) fn recall_memories(
server: &McpServer,
query: &str,
memory_type: Option<&str>,
) -> String {
let mut arguments = json!({"query": query});
if let Some(mt) = memory_type {
arguments["memory_type"] = json!(mt);
}
let params = json!({"name": "recall_memory", "arguments": arguments});
let resp = server.handle_request("tools/call", Some(¶ms), json!(2));
let result = resp.result.unwrap();
result["content"][0]["text"].as_str().unwrap().to_string()
}