package client import "fmt" // ToolError is a failed MCP tool call or a parse of its result. type ToolError struct { Name string // MCP tool name Message string Err error // transport/SDK/parse cause; may be nil } func (e *ToolError) Error() string { return "mcp " + e.Name + ": " + e.Message } func (e *ToolError) Unwrap() error { return e.Err } // ToolErrorf builds a ToolError. format may use %w so Unwrap works. func ToolErrorf(name, format string, args ...any) *ToolError { err := fmt.Errorf(format, args...) return &ToolError{ Name: name, Message: err.Error(), Err: err, } }