Docs

recipe MCP tool

Reusable playbooks.

View as Markdown

MCP name recipe dispatches to renderer recipe.

Does not use hosted quota. Local editor operation.

Reusable playbooks. action search finds recipes by query. action get loads one recipeId. action create writes a private recipe. action update patches an existing private recipe. Editor must be open. Does not use hosted quota. Local editor operation.

Advertised MCP input

This tool is registered with passthrough. The fields below are what listTools advertises. The renderer still validates the child fields for the chosen action or kind. Extra advertised-only values are documented under Reachable behavior.

FieldTypeRequiredConstraintsDefaultDescription
actionenum("search", "get", "create", "update")yes——action for recipe
resultStartintegernomin 0; max 90071992547409910First character offset to return. Use 0 for the first call.
resultEndintegernomin 1; max 90071992547409918000Exclusive end offset. resultEnd - resultStart must be at most 8000. Increment resultStart by 8000 to page through large results.

Reachable behavior

Advertised action values match the renderer children: search, get, create, update.

Renderer child fields

These are the authoritative fields for each action. Send them on the same MCP call. Grouped MCP tools use passthrough, so these fields are not all listed in the advertised schema.

action=search

Renderer tool: searchRecipes.

Search semantic document playbooks that can raise output quality. Requires AI Search to be ready (embedding model + recipe index). In Agent Mode, try this before tackling substantive user tasks so existing recipes can guide the work. If unavailable because AI Search is still warming up, continue without recipes — do not retry until ready.

FieldTypeRequiredConstraintsDefaultDescription
querystringyesminLength 1—Natural language description of the needed reusable playbook.
visibilityenum("all", "private", "public")no—"all"—
limitnumbernomin 1; max 205—

action=get

Renderer tool: getRecipe.

Retrieve one recipe playbook as structured context and record basic usage. Use before applying a recipe.

FieldTypeRequiredConstraintsDefaultDescription
recipeIdstringyesminLength 1—Recipe ID returned by searchRecipes.
visibilityenum("all", "private", "public")no—"all"—

action=create

Renderer tool: createRecipe.

Create a private reusable recipe playbook. Requires AI Search to be ready (embedding model + recipe index). Before creating, searchRecipes should be used to avoid duplicates and updateRecipe should be used for a close match. If AI Search is still warming up, skip creating a recipe.

FieldTypeRequiredConstraintsDefaultDescription
titlestringyesminLength 1; maxLength 200——
summarystringyesminLength 1; maxLength 2000——
whenToUsestringyesminLength 1; maxLength 8000——
stepsobject[]yesminItems 1; maxItems 80——
steps[].titlestringyesminLength 1; maxLength 200——
steps[].detailstringyesminLength 1; maxLength 8000——
acceptanceCriteriastring[]yesminItems 1; maxItems 80——
tagsstring[]nomaxItems 40[]—
documentstringyesminLength 1; maxLength 80000——

action=update

Renderer tool: updateRecipe.

Update an existing private recipe when a new reusable pattern overlaps it. Requires AI Search to be ready (embedding model + recipe index). Use after searchRecipes finds a close match. If AI Search is still warming up, skip updating recipes.

FieldTypeRequiredConstraintsDefaultDescription
recipeIdstringyesminLength 1——
titlestringnominLength 1; maxLength 200——
summarystringnominLength 1; maxLength 2000——
whenToUsestringnominLength 1; maxLength 8000——
stepsobject[]nominItems 1; maxItems 80——
steps[].titlestringyesminLength 1; maxLength 200——
steps[].detailstringyesminLength 1; maxLength 8000——
acceptanceCriteriastring[]nominItems 1; maxItems 80——
tagsstring[]nomaxItems 40——
documentstringnominLength 1; maxLength 80000——

Result window

Every local MCP tool accepts resultStart and resultEnd so large payloads can be paged.

  • resultStart — first character offset. Default 0.
  • resultEnd — exclusive end offset. Default 8000.
  • resultEnd - resultStart must be at most 8000 characters.
  • Increment resultStart by 8000 to read the next window.