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

  1. Add a non-empty `description` to the mongodb-delete-many tool config
  2. Add a config-generation assertion that description is non-empty
  3. 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

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


AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05). Data as JSON: /api/errors/9518d6e22c80cd38. Report an issue: GitHub.