File size: 1,099 Bytes
6a7089a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | package main
import (
"fmt"
"os"
"strings"
"github.com/pinchtab/pinchtab/internal/config"
"github.com/pinchtab/pinchtab/internal/mcp"
"github.com/spf13/cobra"
)
var mcpCmd = &cobra.Command{
Use: "mcp",
Short: "Start the MCP stdio server",
Long: "Start the Model Context Protocol stdio server and proxy browser actions to a running PinchTab instance.",
Run: func(cmd *cobra.Command, args []string) {
cfg := config.Load()
runMCP(cfg)
},
}
func init() {
mcpCmd.GroupID = "primary"
rootCmd.AddCommand(mcpCmd)
}
func runMCP(cfg *config.RuntimeConfig) {
// Default: http://127.0.0.1:{port}
port := cfg.Port
if port == "" {
port = "9867"
}
baseURL := "http://127.0.0.1:" + port
// --server flag overrides
if serverURL != "" {
baseURL = strings.TrimRight(serverURL, "/")
}
// Token from config, env var overrides
token := cfg.Token
if envToken := os.Getenv("PINCHTAB_TOKEN"); envToken != "" {
token = envToken
}
mcp.Version = version
if err := mcp.Serve(baseURL, token); err != nil {
fmt.Fprintf(os.Stderr, "mcp server error: %v\n", err)
os.Exit(1)
}
}
|