use serde_json::Value;
use super::JsonRpcError;
pub async fn handle(_params: Value) -> Result<Value, JsonRpcError> {
Ok(serde_json::json!({
"protocolVersion": "2025-11-05",
"capabilities": {
"tools": {
"listChanged": false
}
},
"serverInfo": {
"name": "quelch-mcp",
"version": env!("CARGO_PKG_VERSION")
}
}))
}
#[cfg(test)]
mod tests {
use super::*;
use serde_json::json;
#[tokio::test]
async fn initialize_returns_server_info() {
let result = handle(json!({})).await.unwrap();
assert!(result["serverInfo"]["name"].as_str() == Some("quelch-mcp"));
assert!(result["serverInfo"]["version"].is_string());
assert!(result["protocolVersion"].is_string());
assert!(result["capabilities"]["tools"].is_object());
}
}