googleapis/mcp-toolbox · error
unsupported valueType %q for map parameter
Error message
unsupported valueType %q for map parameter
What it means
MapParameter supports a limited set of valueTypes (string, integer, boolean, float). When converting a generic map schema (MapParameterFromWire etc.) with an unknown valueType, initialization fails with this error before the tool ever runs.
Source
Thrown at internal/util/parameters/parameters.go:1300
p.Default = rawItem.Default
p.ValueType = rawItem.ValueType
return nil
}
// getPrototypeParameter is a helper factory to create a temporary parameter
// based on a type string for parsing and manifest generation.
func getPrototypeParameter(typeName string) (Parameter, error) {
switch typeName {
case "string":
return NewStringParameter("", ""), nil
case "integer":
return NewIntParameter("", ""), nil
case "boolean":
return NewBooleanParameter("", ""), nil
case "float":
return NewFloatParameter("", ""), nil
default:
return nil, fmt.Errorf("unsupported valueType %q for map parameter", typeName)
}
}
func (p *MapParameter) IsAllowedValues(v map[string]any) bool {
a := p.GetAllowedValues()
if len(a) == 0 {
return true
}
for _, av := range a {
if reflect.DeepEqual(v, av) {
return true
}
}
return false
}
func (p *MapParameter) IsExcludedValues(v map[string]any) bool {
a := p.GetExcludedValues()View on GitHub (pinned to 8cc6e09de2)
Solutions
- Change valueType in tools.yaml to one of: string, integer, boolean, float.
- Remove valueType entirely for a generic map (json.Number conversion applies).
- Check the toolbox version's supported valueType list if migrating configs.
Example fix
# before - name: attrs type: map valueType: int # after - name: attrs type: map valueType: integer
Defensive patterns
Strategy: validation
Validate before calling
const validValueTypes = ['string','integer','boolean','float'];
if (param.type === 'map' && param.valueType && !validValueTypes.includes(param.valueType)) {
throw new Error(`unsupported valueType: ${param.valueType}`);
} Prevention
- Only use string|integer|boolean|float as valueType.
- Omit valueType for generic maps.
- Validate tools.yaml with a JSON/YAML schema in CI.
When it happens
Trigger: Loading a tools.yaml where a map parameter declares valueType: 'int', 'number', 'str', or any string other than string|integer|boolean|float; or programmatic construction via the parameter factory with an unsupported typeName.
Common situations: Typos like 'Integer' or 'int' in YAML; using SQL-ish type names (varchar, numeric); older configs written for a version with different accepted valueType strings.
Related errors
- unable to parse 'items' field: %w
- nested items should not have auth services
- description is required for tool %q
- invalid source for %q tool: source %q is not a compatible ty
- description is required for tool %q
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/c907489864a309ec.
Report an issue: GitHub.