googleapis/mcp-toolbox · error
description is required for tool %q
Error message
description is required for tool %q
What it means
Config.Initialize for mongodb-delete-many requires a non-empty description because it is published to MCP clients as tool metadata. Empty description causes tool construction to fail at config load time.
Source
Thrown at internal/tools/mongodb/mongodbdeletemany/mongodbdeletemany.go:74
Source string `yaml:"source" validate:"required"`
Database string `yaml:"database" validate:"required"`
Collection string `yaml:"collection"`
CollectionAllowedValues []string `yaml:"collectionAllowedValues"`
FilterPayload string `yaml:"filterPayload" validate:"required"`
FilterParams parameters.Parameters `yaml:"filterParams"`
Annotations *tools.ToolAnnotations `yaml:"annotations,omitempty"`
}
// validate interface
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)
}
allParameters := slices.Concat(cfg.FilterParams)
if err := mongodbcommon.ValidateCollectionConfig(cfg.Collection, cfg.CollectionAllowedValues); err != nil {
return nil, err
}
allParameters = mongodbcommon.WithRuntimeCollectionParam(cfg.Collection, cfg.CollectionAllowedValues, allParameters)
if err := parameters.CheckDuplicateParameters(allParameters); err != nil {
return nil, err
}
paramManifest := allParameters.Manifest()
if paramManifest == nil {
paramManifest = make([]parameters.ParameterManifest, 0)
}
View on GitHub (pinned to 8cc6e09de2)
Solutions
- Add a non-empty `description` to the mongodb-delete-many tool config
- Add a config-generation assertion that description is non-empty
- Validate locally with a toolbox dry start
Example fix
// before delete-many: kind: mongodb-delete-many source: my-mongo // after delete-many: kind: mongodb-delete-many source: my-mongo description: Delete multiple documents matching a filter from a MongoDB collection.
Defensive patterns
Strategy: validation
Validate before calling
if cfg.Description == "" {
return errors.New("mongodb-delete-many: description is required")
} Prevention
- Require description in tool definition templates
- Schema-lint tools.yaml in CI for empty required fields
- Test config load in CI before merge
When it happens
Trigger: Defining a `mongodb-delete-many` tool without a `description` (or with an empty string) in tools.yaml.
Common situations: Hand-editing YAML and skipping the field; generated configs with blank descriptions; accidental deletion during refactors.
Related errors
- description is required for tool %q
- description is required for tool %q
- 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/9518d6e22c80cd38.
Report an issue: GitHub.