Skip to main content
Glama
helpers.go1.47 kB
package tools import ( "encoding/json" "fmt" "strconv" "strings" "github.com/containers/kubernetes-mcp-server/pkg/api" ) // getStringArgOrDefault returns the string argument value for the given key, // or the provided default if the argument is absent or empty (after trimming). func getStringArgOrDefault(params api.ToolHandlerParams, key, defaultVal string) (string, error) { if raw, ok := params.GetArguments()[key]; ok { // Special handling for time-like keys that can be specified with suffixes switch v := raw.(type) { case string: s := strings.TrimSpace(v) if s != "" { return s, nil } case float64: // JSON numbers decode to float64 in maps; use -1 precision to trim trailing zeros return strconv.FormatFloat(v, 'f', -1, 64), nil case int: return strconv.Itoa(v), nil case int64: return strconv.FormatInt(v, 10), nil case json.Number: return v.String(), nil default: s := strings.TrimSpace(fmt.Sprint(v)) if s != "" { return s, nil } } } return defaultVal, nil } // setQueryParam sets queryParams[key] from tool arguments (with default handling). // It uses getStringArgOrDefault and wraps errors with a useful message. func setQueryParam(params api.ToolHandlerParams, queryParams map[string]string, key, defaultVal string) error { v, err := getStringArgOrDefault(params, key, defaultVal) if err != nil { return fmt.Errorf("invalid %s: %v", key, err) } queryParams[key] = v return nil }

Latest Blog Posts

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/containers/kubernetes-mcp-server'

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