googleapis/mcp-toolbox · error
error embedding parameters: %w
Error message
error embedding parameters: %w
What it means
Thrown by runInvoke (cmd/internal/invoke/command.go:133) when tool.EmbedParams fails while processing parameter templates such as {{authToken}}, {{.param}} references, or embedding-model-backed parameters (e.g. {{embedding(...)}}) that resolve against the PrimitiveManager. It indicates a parameter that depends on runtime context or another primitive could not be embedded.
Source
Thrown at cmd/internal/invoke/command.go:133
}
toolParams, err := tool.GetParameters(src)
if err != nil {
errMsg := fmt.Errorf("error getting parameters for tool: %w", err)
opts.Logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
parsedParams, err := parameters.ParseParams(toolParams, params, nil)
if err != nil {
errMsg := fmt.Errorf("invalid parameters: %w", err)
opts.Logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
parsedParams, err = tool.EmbedParams(ctx, parsedParams, primitiveMgr)
if err != nil {
errMsg := fmt.Errorf("error embedding parameters: %w", err)
opts.Logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
// Client Auth not supported for ephemeral CLI call
requiresAuth, err := tool.RequiresClientAuthorization(src)
if err != nil {
errMsg := fmt.Errorf("failed to check auth requirements: %w", err)
opts.Logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
if requiresAuth {
errMsg := fmt.Errorf("client authorization is not supported")
opts.Logger.ErrorContext(ctx, errMsg.Error())
return errMsg
}
result, err := tool.Invoke(ctx, src, parsedParams, "")View on GitHub (pinned to 8cc6e09de2)
Solutions
- Read the wrapped error to find which parameter/template failed to embed.
- Verify the auth service or embedding model referenced by the tool's config exists and initialized successfully (check server startup logs).
- Fix the tools YAML so template expressions reference defined primitives with correct syntax.
- Remove the templated parameter or supply the value directly if dynamic embedding is not needed.
Example fix
# before (embedding model not defined)
tools:
search:
kind: postgres-sql
parameters:
- name: q
type: string
description: '{{embedding(myEmbedder) question}}'
# after (define the model under embeddingModels)
embeddingModels:
myEmbedder:
provider: gemini
model: text-embedding-004 Defensive patterns
Strategy: validation
Validate before calling
// Before invoking, confirm referenced primitives initialized:
// 1) grep tools.yaml for template expressions: '{{'
// 2) confirm each referenced auth service / embedding model is defined in the same config
// 3) run toolbox serve and watch for 'failed to initialize resources' Try / catch
if err := runInvoke(...); err != nil {
if strings.Contains(err.Error(), "error embedding parameters") {
log.Fatalf("unresolvable template/auth/embedding reference: %v", err)
}
} Prevention
- Define every embedding model and auth service referenced by template expressions.
- Keep template syntax exactly as documented ({{...}}) — typos silently break embedding.
- Test templated tools via the MCP server first, where embedding errors surface at startup or call time with full context.
When it happens
Trigger: Invoking a tool whose parameters contain template expressions: an auth service reference ({{authToken}}) with no auth service configured for the tool, an embedding parameter referencing an embeddingModelsMap entry that is missing or misconfigured, or an invalid template syntax.
Common situations: Tool YAML declares `authRequired: [myAuth]` but the auth service failed to initialize; an embedding-based tool (e.g. vector search) points at an embedding model name not defined in the config; typos in template placeholders inside parameter descriptions.
Related errors
- error getting parameters for tool: %w
- invalid parameters: %w
- error executing template '%s': %w
- templateParameter only supports string arrays
- invalid parameter type, expected array of type string
AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05).
Data as JSON: /api/errors/414e3eb8270bdd66.
Report an issue: GitHub.