1// SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
2//
3// SPDX-License-Identifier: LicenseRef-MutuaL-1.2
4
5package main
6
7import (
8 "github.com/spf13/cobra"
9
10 "git.secluded.site/sb-mcp/internal/config"
11 "git.secluded.site/sb-mcp/internal/server"
12)
13
14func serveCmd() *cobra.Command {
15 var httpAddr string
16
17 cmd := &cobra.Command{
18 Use: "serve",
19 Short: "Start the MCP server",
20 Long: "Start the SilverBullet MCP server. Uses stdio transport by default, or streamable HTTP with --http.",
21 RunE: func(cmd *cobra.Command, args []string) error {
22 cfg, err := config.Load()
23 if err != nil {
24 return err
25 }
26 cfg.HTTPAddr = httpAddr
27
28 return server.Run(cmd.Context(), cfg)
29 },
30 }
31
32 cmd.Flags().StringVar(&httpAddr, "http", "", "listen address for streamable HTTP transport (e.g. :3001); default is stdio")
33
34 return cmd
35}