googleapis/mcp-toolbox · error

invalid source for %q tool: source %q is not a compatible ty

Error message

invalid source for %q tool: source %q is not a compatible type

What it means

ValidateSource type-asserts the resolved source against the tool's compatibleSource interface (Looker API access). The error fires when the tool is bound to a source that is not a Looker source, i.e. the tool kind and source kind in the YAML configuration are incompatible.

Source

Thrown at internal/tools/looker/lookerrundashboard/lookerrundashboard.go:112

// validate interface
var _ tools.Tool = Tool{}

type Tool struct {
	tools.BaseTool[Config]
}

func (t Tool) GetSourceName() string {
	return t.Cfg.Source
}

func (t Tool) ToConfig() tools.ToolConfig {
	return t.Cfg
}

func (t Tool) ValidateSource(source sources.Source) error {
	_, ok := source.(compatibleSource)
	if !ok {
		return fmt.Errorf("invalid source for %q tool: source %q is not a compatible type", t.Cfg.Type, t.Cfg.Source)
	}
	return nil
}

func (t Tool) Invoke(ctx context.Context, s sources.Source, params parameters.ParamValues, accessToken tools.AccessToken) (any, util.ToolboxError) {
	source, ok := s.(compatibleSource)
	if !ok {
		return nil, util.NewClientServerError("source used is not compatible with the tool", http.StatusInternalServerError, nil)
	}
	logger, err := util.LoggerFromContext(ctx)
	if err != nil {
		return nil, util.NewClientServerError("unable to get logger from ctx", http.StatusInternalServerError, err)
	}
	logger.DebugContext(ctx, "params = ", params)
	paramsMap := params.AsMap()

	dashboard_id := paramsMap["dashboard_id"].(string)

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Point the tool's 'source' field at a Looker source defined in tools.yaml
  2. Ensure the source's kind is 'looker' rather than an incompatible source type
  3. Correct any typo in the source name that resolved to the wrong source
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/tools/looker/lookerrundashboard/lookerrundashboard.go:112 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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