package main import ( _ "dm" // 达梦数据库驱动 "fmt" "github.com/mark3labs/mcp-go/server" "log" "mcp-go-db/vConfig" "mcp-go-db/vService" "mcp-go-db/vTool" "os" ) func main() { // 开发 // name := "dm://HY_ZGGL_FRAME:HY_ZGGL_FRAME@10.200.21.19:5296/DAMENG?schema=HY_ZGGL_FRAME" // 部署 fmt.Println("程序名称:") dsn := os.Args[1] fmt.Printf("启动数据库服务...\n") // 加载配置 config, err := vConfig.LoadConfig(dsn) if err != nil { log.Fatalf("配置文件加载失败: %v", err) } // 初始化数据库连接 dbSvc, err := vService.NewDMDBService(config.Database.DmDsn) if err != nil { fmt.Printf("数据库连接失败: %v\n", err) return } defer func(dbSvc *vService.DMDBService) { err := dbSvc.Close() if err != nil { log.Fatalf("发生异常: %v", err) } }(dbSvc) fmt.Printf("数据库连接成功: %v\n", config.Database.DmDsn) // 创建MCP服务器 s := server.NewMCPServer( "数据库服务", "1.0.0", server.WithResourceCapabilities(true, true), server.WithLogging(), server.WithRecovery(), ) // 添加数据库工具 vTool.Run(s, dbSvc, config) // 启动MCP服务器 if err := server.ServeStdio(s); err != nil { fmt.Printf("服务器错误: %v\n", err) } fmt.Printf("服务已停止\n") }