29 lines
614 B
Go
29 lines
614 B
Go
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,
|
|
}
|
|
}
|