package main import ( "fmt" "log" "os" "github.com/mark3labs/mcp-go/server" "fwh-toolbox-server/cache" "fwh-toolbox-server/config" "fwh-toolbox-server/database" "fwh-toolbox-server/logger" "fwh-toolbox-server/repositories" "fwh-toolbox-server/cmd/mcp/tools" ) func main() { // 加载配置(复用现有 config) cfg, err := config.LoadConfig() if err != nil { log.Fatalf("加载配置失败: %v", err) } // 初始化 logger logger.Init(cfg.App.AppEnv) defer logger.Log.Sync() // 初始化基础设施(与 HTTP Server 相同) if err := database.Init(&cfg.App); err != nil { log.Fatalf("数据库初始化失败: %v", err) } cache.Init(cfg.App.RedisAddr) repositories.PlaneWebHttpInit(&cfg.PlaneWebApi) // 创建 MCP Server s := server.NewMCPServer( "fwh-tools", "1.0.0", server.WithToolCapabilities(false), server.WithRecovery(), ) // 注册所有 Tools tools.RegisterSiteInfoTools(s) tools.RegisterSimCardTools(s) tools.RegisterPowerFlowTools(s) tools.RegisterAlarmTools(s) tools.RegisterShutdownTools(s) tools.RegisterPlaneTools(s) // 启动 stdio 通信 fmt.Fprintln(os.Stderr, "[fwh-mcp-server] started (stdio)") if err := server.ServeStdio(s); err != nil { log.Fatalf("[fwh-mcp-server] error: %v", err) } }