package tools import ( "context" "encoding/json" "fmt" "github.com/mark3labs/mcp-go/mcp" "github.com/mark3labs/mcp-go/server" "fwh-toolbox-server/services" ) func RegisterAlarmTools(s *server.MCPServer) { s.AddTool( mcp.NewTool("query_alarm_statistics", mcp.WithDescription("查询告警统计数据(按日期汇总各类告警数量)"), mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")), ), handleQueryAlarmStatistics, ) } func handleQueryAlarmStatistics(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { date := req.GetString("date", "") var datePtr *string if date != "" { datePtr = &date } data, err := services.GetAlarmStatistics(datePtr) if err != nil { return mcp.NewToolResultError(fmt.Sprintf("查询告警统计失败: %v", err)), nil } jsonBytes, _ := json.MarshalIndent(data, "", " ") return mcp.NewToolResultText(string(jsonBytes)), nil }