googleapis/mcp-toolbox · error
description is required for tool %q
Error message
description is required for tool %q
What it means
During tool initialization, the looker-health-vuum Config requires a non-empty description. The library throws this when a tool of kind looker-health-vacuum is declared without a description field, because the description is mandatory metadata for the MCP tool manifest. Initialization aborts and the toolbox fails to start (or fails to build that tool).
Source
Thrown at internal/tools/looker/lookerhealthvacuum/lookerhealthvacuum.go:76
}
type Config struct {
tools.ConfigBase `yaml:",inline"`
Type string `yaml:"type" validate:"required"`
Source string `yaml:"source" validate:"required"`
Parameters map[string]any `yaml:"parameters"`
Annotations *tools.ToolAnnotations `yaml:"annotations,omitempty"`
}
var _ tools.ToolConfig = Config{}
func (cfg Config) ToolConfigType() string {
return resourceType
}
func (cfg Config) Initialize(context.Context) (tools.Tool, error) {
if cfg.Description == "" {
return nil, fmt.Errorf("description is required for tool %q", cfg.Name)
}
actionParameter := parameters.NewStringParameter("action", "The vacuum action to run. Can be 'models', or 'explores'.", parameters.WithStringRequired(true))
projectParameter := parameters.NewStringParameter("project", "The Looker project to vacuum (optional).", parameters.WithStringDefault(""))
modelParameter := parameters.NewStringParameter("model", "The Looker model to vacuum (optional).", parameters.WithStringDefault(""))
exploreParameter := parameters.NewStringParameter("explore", "The Looker explore to vacuum (optional).", parameters.WithStringDefault(""))
timeframeParameter := parameters.NewIntParameter("timeframe", "The timeframe in days to analyze.", parameters.WithIntDefault(90))
minQueriesParameter := parameters.NewIntParameter("min_queries", "The minimum number of queries for a model or explore to be considered used.", parameters.WithIntDefault(1))
allParameters := parameters.Parameters{
actionParameter,
projectParameter,
modelParameter,
exploreParameter,
timeframeParameter,
minQueriesParameter,
}
View on GitHub (pinned to 8cc6e09de2)
Solutions
- Add a non-empty description field to the looker-health-vacuum tool definition in your config
- If generating config programmatically, validate that description is set before calling Initialize
- Restart/rebuild the toolbox after fixing the YAML and check startup logs for the next validation error
Example fix
// before (toolbox.yaml)
tools:
vacuum:
kind: looker-health-vacuum
source: my-looker
// after
tools:
vacuum:
kind: looker-health-vacuum
source: my-looker
description: Runs vacuum cleanup actions on Looker models or explores Defensive patterns
Strategy: validation
Validate before calling
// pre-validate config before Initialize
if cfg.Description == "" {
return errors.New("looker-health-vacuum tool requires a description")
}
if err := yaml.Unmarshal(raw, &cfg); err != nil {
return err
} Try / catch
tool, err := cfg.Initialize(ctx)
if err != nil && strings.Contains(err.Error(), "description is required") {
return fmt.Errorf("config error: add 'description' to tool %q: %w", cfg.Name, err)
} Prevention
- Include a description for every tool in toolbox.yaml
- Run a config linter or dry-run startup in CI to catch missing fields
- Template configs should emit non-empty descriptions or fail fast
When it happens
Trigger: cfg.Description == "" when Config.Initialize runs — the tool YAML omits the description field or sets it to an empty string.
Common situations: Hand-written toolbox.yaml missing the description key for the looker-health-vacuum tool; templating/config generation that drops empty fields; copy-pasting a tool definition without filling in the description.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- error parsing argument: %w
- invalid role %q: must be 'user' or 'assistant'
- description is required for tool %q
- description is required for tool %q
- description is required for tool %q
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/b7ad1a1b9a85f27e.
Report an issue: GitHub.