googleapis/mcp-toolbox · error
parameter is missing 'type' field
Error message
parameter is missing 'type' field
What it means
parseParamFromDelayedUnmarshaler looks for the discriminating 'type' key in each raw parameter map. This sentinel-style guard fires during config parsing when a parameter entry in tools.yaml lacks the 'type' field entirely, so the parser cannot dispatch to the correct parameter type.
Source
Thrown at internal/util/parameters/parameters.go:393
return err
}
(*c) = append((*c), p)
}
return nil
}
// parseParamFromDelayedUnmarshaler is a helper function that is required to parse
// parameters because there are multiple different types
func parseParamFromDelayedUnmarshaler(ctx context.Context, u *util.DelayedUnmarshaler) (Parameter, error) {
var p map[string]any
err := u.Unmarshal(&p)
if err != nil {
return nil, fmt.Errorf("error parsing parameters: %w", err)
}
t, ok := p["type"]
if !ok {
return nil, fmt.Errorf("parameter is missing 'type' field")
}
typeStr, ok := t.(string)
if !ok {
return nil, fmt.Errorf("parameter 'type' field must be a string, got %T", t)
}
param, err := ParseParameter(ctx, p, typeStr)
if err != nil {
return nil, err
}
if err := validateParameter(param); err != nil {
return nil, err
}
return param, nil
}View on GitHub (pinned to 8cc6e09de2)
Solutions
- Add a 'type' field (e.g. string, int, array, map) to the offending parameter in tools.yaml
- Check the parameter block indentation so the entry is parsed as a parameter map
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/util/parameters/parameters.go:393 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/b551918f34fdcb10.
Report an issue: GitHub.