Skip to main content
Glama

Refresh the app recipe

refresh_recipe

Re-reads mushi.recipe.json and design tokens from the connected repo to store a fresh recipe snapshot on demand after edits, without waiting for the daily refresh.

Instructions

Read mushi.recipe.json and the design-token files from the connected repo again and store a new recipe snapshot, instead of waiting for the daily refresh. At most once per project every 5 minutes (429 RATE_LIMITED otherwise). Optional projectId. Returns { ok, state, reason, snapshotId, tokensHash, manifestPresent, tokenCount, issues } where state is ok | drift | unknown | not_connected | error and issues lists manifest problems with their path. Write: it stores a snapshot; nothing in the repo changes. Use after editing mushi.recipe.json or the tokens; then read get_app_recipe or get_design_tokens.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdNoProject UUID — defaults to the server-configured project when omitted (`project_id` is accepted too.)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.14

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnly=false, destructive=false, idempotent=false); the description adds the rate limit ('at most once per project every 5 minutes (429 RATE_LIMITED otherwise)') and the crucial side-effect clarification that it stores a snapshot while 'nothing in the repo changes'. That is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the action and rate limit come first, then the return shape, then usage routing. Every sentence earns its place, though the return-field enumeration makes it a single long paragraph with no visual structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on the burden of describing the return payload (state enum, issues list, tokensHash, manifestPresent, tokenCount) and does so fully. Rate limits, side effects, and next steps are all covered for a tool with one optional parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single projectId parameter is already documented, including the `project_id` alias. The description only notes it is optional, which the schema's empty required list already conveys – baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Read mushi.recipe.json and the design-token files ... and store a new recipe snapshot') and explicitly contrasts with the daily refresh. An agent can distinguish it from get_app_recipe and get_design_tokens without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives both the trigger ('Use after editing mushi.recipe.json or the tokens') and the follow-up ('then read get_app_recipe or get_design_tokens'), plus the alternative it replaces ('instead of waiting for the daily refresh'). Nothing about when to invoke it is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.