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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| package mcpserver
import ( "context" "fmt"
"{{{ .Package }}}/app" "{{{ .Package }}}/app/util" )
var ( defaultServer *Server defaultTools Tools )
func AddDefaultTools(ts ...*Tool) { defaultTools = append(defaultTools, ts...) }
func ClearDefaultTools() { defaultTools = nil }
func GetDefaultServer(ctx context.Context, as *app.State, logger util.Logger) (*Server, error) { if defaultServer != nil { return defaultServer, nil } ret, err := NewServer(ctx, as, logger) if err != nil { return nil, err } defaultServer = ret return defaultServer, nil }
func CurrentDefaultServer() *Server { return defaultServer }
const usageCLI = `{ "mcpServers": { "%s": { "command": "%s", "args": ["mcp"] } } }`
func UsageCLI() string { return fmt.Sprintf(usageCLI, util.AppCmd, util.AppCmd) }
const usageHTTP = `{ "mcpServers": { "%s": { "command": "npx", "args": ["-y", "mcp-remote", "http://localhost:%d/mcp"] } } }`
func UsageHTTP() string { return fmt.Sprintf(usageHTTP, util.AppCmd, util.AppPort) }
func ResultString(r any, logger util.Logger) string { switch t := r.(type) { case string: return t case []byte: return string(t) default: logger.Debugf("unsupported type: %T", t) return util.ToJSON(t) } }
|