googleapis/mcp-toolbox · error

toolset ' ' not found in prebuilt configuration ' '…

Error message

toolset '%s' not found in prebuilt configuration '%s'. Available toolsets: %s

What it means

Prebuilt configs are organized as '<source>/<toolset>'. After parsing, LoadConfig looks up the requested toolset in the config's tool groups; if absent, it lists all available toolsets so you can pick a valid one.

Solutions

  1. Use one of the toolsets listed in 'Available toolsets' in the error message
  2. Check the toolset spelling and case against the source's docs (e.g. postgres/postgres-sql)
  3. Upgrade the toolbox binary if the toolset was added in a newer release

Example fix

// before
--prebuilt postgres/postgres
// after
--prebuilt postgres/postgres-sql
Defensive patterns

Strategy: validation

Validate before calling

// confirm the toolset exists before invoking
curl -sf http://127.0.0.1:5000/api/toolset | jq 'keys'  # lists available toolsets on a running instance

Prevention

When it happens

Trigger: Requesting a toolset name that does not exist in the parsed prebuilt config's groups (case mismatch, old toolset name removed, or inventing a name).

Common situations: Using 'postgres/postgres' instead of 'postgres/postgres-sql', or referencing a toolset renamed across toolbox versions.

Related errors


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

Appendix: source

Thrown at cmd/internal/options.go:243

				errMsg := fmt.Errorf("unable to parse prebuilt tool configuration for '%s': %w", configName, err)
				logger.ErrorContext(ctx, errMsg.Error())
				return isCustomConfigured, errMsg
			}

			if toolsetName != "" {
				// Legacy toolsets are folded into groups at unmarshal, so the named
				// toolset resolves as a group.
				targetGroup, exists := parsed.Groups[toolsetName]
				if !exists {
					var available []string
					for k := range parsed.Groups {
						if k == "" {
							continue
						}
						available = append(available, k)
					}
					slices.Sort(available)
					errMsg := fmt.Errorf("toolset '%s' not found in prebuilt configuration '%s'. Available toolsets: %s", toolsetName, sourceName, strings.Join(available, ", "))
					logger.ErrorContext(ctx, errMsg.Error())
					return isCustomConfigured, errMsg
				}

				// Filter tools to only include those in the target group
				filteredTools := make(server.ToolConfigs)
				for _, tName := range targetGroup.ToolNames {
					if tCfg, tExists := parsed.Tools[tName]; tExists {
						filteredTools[tName] = tCfg
					}
				}
				parsed.Tools = filteredTools

				// Filter groups to only include the target group
				filteredGroups := make(server.GroupConfigs)
				filteredGroups[toolsetName] = targetGroup
				parsed.Groups = filteredGroups
			}

View on GitHub (pinned to 8cc6e09de2)