package helper import ( "encoding/json" "fmt" "github.com/mark3labs/mcp-go/mcp" ) // JSONResult 将任意数据序列化为 JSON 文本返回 func JSONResult(data any) *mcp.CallToolResult { bytes, err := json.MarshalIndent(data, "", " ") if err != nil { return mcp.NewToolResultError(fmt.Sprintf("序列化失败: %v", err)) } return mcp.NewToolResultText(string(bytes)) } // 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) }