From 4536d45a9e18def8d88a41b95b4fa17bc5e574d6 Mon Sep 17 00:00:00 2001 From: hkr04 Date: Thu, 20 Mar 2025 01:10:34 +0800 Subject: [PATCH] sse_client: fix bug with json --- src/mcp_sse_client.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/mcp_sse_client.cpp b/src/mcp_sse_client.cpp index 95efa4e..669a33e 100644 --- a/src/mcp_sse_client.cpp +++ b/src/mcp_sse_client.cpp @@ -542,11 +542,14 @@ json sse_client::send_jsonrpc(const request& req) { if (status == std::future_status::ready) { json response = response_future.get(); - if (response.contains("isError") && response["isError"].get()) { - int code = response["error"]["code"]; - std::string message = response["error"]["message"]; - - throw mcp_exception(static_cast(code), message); + if (response.contains("isError") && response["isError"].is_boolean() && response["isError"].get()) { + if (response.contains("error") && response["error"].is_object()) { + const auto& err_obj = response["error"]; + int code = err_obj.contains("code") ? err_obj["code"].get() : static_cast(error_code::internal_error); + std::string message = err_obj.value("message", ""); + // Handle error + throw mcp_exception(static_cast(code), message); + } } return response;