| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package service
- import (
- "context"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
- "fwh-toolbox-server/cmd/mcp/tools/helper"
- "fwh-toolbox-server/services"
- )
- func registerDashboardTools(s *server.MCPServer) {
- s.AddTool(
- mcp.NewTool("service_dashboard_shutdown_date",
- mcp.WithDescription("查询停机统计最新可用日期"),
- ),
- handleDashboardShutdownDate,
- )
- s.AddTool(
- mcp.NewTool("service_dashboard_shutdown_detail",
- mcp.WithDescription("查询指定日期的停机详情数据(含各站点停机信息)"),
- mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")),
- ),
- handleDashboardShutdownDetail,
- )
- s.AddTool(
- mcp.NewTool("service_dashboard_alarm_detail",
- mcp.WithDescription("查询指定日期的告警详情数据(含各站点告警码统计)"),
- mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")),
- ),
- handleDashboardAlarmDetail,
- )
- }
- func handleDashboardShutdownDate(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
- date, err := services.GetShutdownStatisticsDate()
- if err != nil {
- return helper.ServiceError("查询停机统计日期", err), nil
- }
- if date == nil {
- return helper.EmptyResult("暂无停机统计数据"), nil
- }
- return helper.TextResult(*date), nil
- }
- func handleDashboardShutdownDetail(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
- date := req.GetString("date", "")
- var datePtr *string
- if date != "" {
- datePtr = &date
- }
- data, err := services.GetShutdownInfoMap(datePtr)
- if err != nil {
- return helper.ServiceError("查询停机详情", err), nil
- }
- return helper.JSONResultOrFileAuto(data), nil
- }
- func handleDashboardAlarmDetail(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
- date := req.GetString("date", "")
- var datePtr *string
- if date != "" {
- datePtr = &date
- }
- data, err := services.GetAlarmStatisticsInfoMap(datePtr)
- if err != nil {
- return helper.ServiceError("查询告警详情", err), nil
- }
- return helper.JSONResultOrFileAuto(data), nil
- }
|