Skip to main content
Glama

Paprika 3 MCP Server

by soggycactus
package main import ( "flag" "fmt" "log/slog" "os" "path/filepath" "runtime" "github.com/soggycactus/paprika-3-mcp/internal/mcpserver" "gopkg.in/natefinch/lumberjack.v2" ) var version = "dev" // set during build with -ldflags func getLogFilePath() string { switch runtime.GOOS { case "darwin": // macOS return filepath.Join(os.Getenv("HOME"), "Library", "Logs", "paprika-3-mcp", "server.log") case "linux": return "/var/log/paprika-3-mcp/server.log" case "windows": return filepath.Join(os.Getenv("APPDATA"), "paprika-3-mcp", "server.log") default: // fallback to /tmp for unknown OS return "/tmp/paprika-3-mcp/server.log" } } func main() { username := flag.String("username", "", "Paprika 3 username (email)") password := flag.String("password", "", "Paprika 3 password") showVersion := flag.Bool("version", false, "Print version and exit") flag.Parse() if *showVersion { fmt.Printf("paprika-3-mcp version %s\n", version) os.Exit(0) } if *username == "" || *password == "" { fmt.Fprintln(os.Stderr, "username and password are required") os.Exit(1) } logFile := getLogFilePath() writer := &lumberjack.Logger{ Filename: logFile, MaxSize: 100, // megabytes MaxBackups: 5, // keep 5 old log files MaxAge: 10, // days Compress: true, // gzip old logs } logger := slog.New(slog.NewTextHandler(writer, &slog.HandlerOptions{ Level: slog.LevelInfo, })) s, err := mcpserver.NewServer(mcpserver.NewServerOptions{ Version: version, Username: *username, Password: *password, Logger: logger, }) if err != nil { logger.Error("failed to start paprika-3-mcp server", "err", err) os.Exit(1) } logger.Info("starting mcp server", "version", version) s.Start() }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/soggycactus/paprika-3-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server