44 lines
994 B
Go
44 lines
994 B
Go
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)
|
|
}
|
|
}
|