googleapis/mcp-toolbox · error
tools is missing or not a list of strings: %v
Error message
tools is missing or not a list of strings: %v
What it means
Error "tools is missing or not a list of strings: %v" thrown in googleapis/mcp-toolbox.
Source
Thrown at internal/server/config.go:549
toolCfg, err := tools.DecodeConfig(ctx, resourceType, name, dec)
if err != nil {
if errors.Is(err, tools.ErrUnknownToolType) && util.IgnoreUnknownToolsFromContext(ctx) {
l, logErr := util.LoggerFromContext(ctx)
if logErr == nil {
l.WarnContext(ctx, fmt.Sprintf("Skipping unknown tool type %q for tool %q", resourceType, name))
}
return nil, nil
}
return nil, err
}
return toolCfg, nil
}
func UnmarshalYAMLToolsetConfig(ctx context.Context, name string, r map[string]any) (tools.ToolsetConfig, error) {
var toolsetConfig tools.ToolsetConfig
toolList, ok := r["tools"].([]any)
if !ok {
return toolsetConfig, fmt.Errorf("tools is missing or not a list of strings: %v", r)
}
justTools := map[string]any{"tools": toolList}
dec, err := util.NewStrictDecoder(justTools)
if err != nil {
return toolsetConfig, fmt.Errorf("error creating decoder: %s", err)
}
var raw map[string][]string
if err := dec.DecodeContext(ctx, &raw); err != nil {
return toolsetConfig, fmt.Errorf("unable to unmarshal tools: %s", err)
}
return tools.ToolsetConfig{Name: name, ToolNames: raw["tools"]}, nil
}
func UnmarshalYAMLGroupConfig(ctx context.Context, name string, r map[string]any) (group.GroupConfig, error) {
dec, err := util.NewStrictDecoder(r)
if err != nil {
return group.GroupConfig{}, fmt.Errorf("error creating decoder: %s", err)
}View on GitHub (pinned to 8cc6e09de2)
When it happens
Trigger: Thrown at internal/server/config.go:549 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/d0f511e513c4aab3.
Report an issue: GitHub.