@@ -163,7 +163,7 @@ func main() {
163163            result = x * y
164164        case  " divide"  :
165165            if  y == 0  {
166-                 return  nil , errors. New ( " Cannot  divide by zero"  )
166+                 return  mcp. NewToolResultError ( " cannot  divide by zero"  ),  nil 
167167            }
168168            result = x / y
169169        }
@@ -325,7 +325,7 @@ s.AddTool(calculatorTool, func(ctx context.Context, request mcp.CallToolRequest)
325325        result = x * y
326326    case  " divide"  :
327327        if  y == 0  {
328-             return  nil , errors. New ( " Division  by zero is not allowed " ) 
328+             return  mcp. NewToolResultError ( " cannot divide  by zero" ),  nil 
329329        }
330330        result = x / y
331331    }
@@ -370,20 +370,20 @@ s.AddTool(httpTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp
370370        req, err = http.NewRequest (method, url, nil )
371371    }
372372    if  err != nil  {
373-         return  nil , fmt. Errorf ( " Failed  to create request:  %v "  , err)
373+         return  mcp. NewToolResultErrorFromErr ( " unable  to create request"  , err),  nil 
374374    }
375375
376376    client  :=  &http.Client {}
377377    resp , err  :=  client.Do (req)
378378    if  err != nil  {
379-         return  nil , fmt. Errorf ( " Request failed:  %v "  , err)
379+         return  mcp. NewToolResultErrorFromErr ( " unable to execute request "  , err),  nil 
380380    }
381381    defer  resp.Body .Close ()
382382
383383    //  Return response
384384    respBody , err  :=  io.ReadAll (resp.Body )
385385    if  err != nil  {
386-         return  nil , fmt. Errorf ( " Failed  to read response:  %v "  , err)
386+         return  mcp. NewToolResultErrorFromErr ( " unable  to read request response "  , err),  nil 
387387    }
388388
389389    return  mcp.NewToolResultText (fmt.Sprintf (" Status: %d \n Body: %s "  , resp.StatusCode , string (respBody))), nil 
0 commit comments