package helper import ( "fmt" "github.com/mark3labs/mcp-go/mcp" ) // JSONResult 将任意数据序列化为 JSON 文本返回,序列化前完成 PII 脱敏(A+B)。 // 脱敏失败时返回错误,拒绝输出(fail-closed)。 func JSONResult(data any) *mcp.CallToolResult { b, err := marshalSanitized(data) if err != nil { return mcp.NewToolResultError(err.Error()) } return mcp.NewToolResultText(string(b)) } // TextResult 直接返回文本 func TextResult(text string) *mcp.CallToolResult { return mcp.NewToolResultText(text) } // ParamError 参数缺失错误 func ParamError(name string) *mcp.CallToolResult { return mcp.NewToolResultError(fmt.Sprintf("参数 %s 必填", name)) } // ParamInvalidError 参数格式错误 func ParamInvalidError(name string, detail string) *mcp.CallToolResult { return mcp.NewToolResultError(fmt.Sprintf("参数 %s 格式错误: %s", name, detail)) } // ServiceError 业务调用错误 func ServiceError(action string, err error) *mcp.CallToolResult { return mcp.NewToolResultError(fmt.Sprintf("%s失败: %v", action, err)) } // EmptyResult 空结果 func EmptyResult(msg string) *mcp.CallToolResult { return mcp.NewToolResultText(msg) }