package main import ( "RenewCMS/internal/infrastructure/mcpserver" "context" "flag" "fmt" "log" "os" "os/signal" "syscall" "github.com/modelcontextprotocol/go-sdk/mcp" ) var version = "dev" func main() { allowDestructive := flag.Bool("allow-destructive", false, "also expose delete_article and delete_media") showVersion := flag.Bool("version", false, "print the version and exit") flag.Parse() if *showVersion { fmt.Println(version) return } baseURL := os.Getenv("RENEWCMS_URL") apiKey := os.Getenv("RENEWCMS_API_KEY") if baseURL == "" || apiKey == "" { log.Fatal("RENEWCMS_URL and RENEWCMS_API_KEY must be set") } ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() server := mcpserver.New(mcpserver.NewClient(baseURL, apiKey, nil), mcpserver.Options{ Version: version, AllowDestructive: *allowDestructive, }) if err := server.Run(ctx, &mcp.StdioTransport{}); err != nil { log.Fatal(err) } }