Skip to main content
Glama

verify_recipe

Read-onlyIdempotent

Verify a candidate recipe against a Guardian master recipe.

Uses deterministic graph-based verification to check technique, temperature, timing, cooking medium, and required ingredients.

Verdict: verdict is strictly PASSED or FAILED and is policy-driven — any CRITICAL finding fails the recipe; more than 5 WARNINGs also fail. There is no score in the response (ADR-013): gate on verdict and explain failures from findings.

Field audience: issue is a machine-readable code for programmatic handling — never show it to end users. Use title and suggested_correction as the user-facing fields.

Returns structured JSON by default (machine-actionable findings and patches); response_format="text" renders a human-readable report. Both formats are transparent (ADR-009 / ADR-018): exact values and ingredient names included.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dishNoAlias for dish_name — for backward compatibility with production clients.
dish_nameNoName of the dish to verify against (e.g. 'carbonara', 'rendang', 'roast-chicken', 'confit', 'cheesecake', 'kung-pao', 'fried-chicken', 'brisket', 'wellington', 'cheese-souffle'). Use list_dishes() to see all available recipes and their aliases.
session_idNoOptional session ID to track an agent's improvement loop across multiple attempts.
master_jsonNoOptional user-supplied master SOP to verify against (BYO master, ADR-018), as a JSON string or object using the same schema as catalog masters (dish_name, steps[], required_ingredients[]; see get_master() for a live example). When provided, the bundled catalog is bypassed — the candidate is checked against YOUR spec — and dish_name may be omitted. The response pins the spec via master_hash (sha256) and master_source='user' so the verdict is replayable.
operator_idNoOptional audit identifier for the calling operator (letters, digits, hyphens; max 64 chars). Tags the verification in the tamper-evident log and compliance record. Defaults to 'anonymous'.
candidate_jsonNoThe full candidate recipe as a JSON string or object. Expected schema: {"title": "<string>", "cuisine": "<string>", "serves": <int>, "ingredients": [{"name": "<string>", "quantity": "<string>"}], "steps": [{"step_number": <int>, "title": "<string>", "instruction_english": "<string>", "technique": "<string>", "estimated_temperature_c": <number or [min, max]>, "duration_minutes": <number or [min, max]>, "cooking_medium": "<string>"}]}
original_promptNoRECOMMENDED for best results. Include the user's original cooking request. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian returns actionable findings with specific ingredient names and technique details — enough to fix most recipes. WITH this parameter: Guardian additionally activates safety context awareness (e.g., flagging honey for infants, raw egg for pregnant users) and personalised feedback matched to dietary needs and flavour preferences. Include it when the user's context matters for safety or personalisation.
response_formatNoResponse format: 'json' (default — machine-actionable verdict, findings, and patches) or 'text' (human-readable report).json

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / master_json
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional user-supplied master SOP to verify against (BYO master, ADR-018), as a JSON string or object using the same schema as catalog masters (dish_name, steps[], required_ingredients[]; see get_master() for a live example). When provided, the bundled catalog is bypassed — the candidate is checked against YOUR spec — and dish_name may be omitted. The response pins the spec via master_hash (sha256) and master_source='user' so the verdict is replayable."
      +}
    • changedInput schema / properties / response_format / default
      Previous value: -"text"New value: +"json"
    • changedInput schema / properties / response_format / description
      Previous value: -"Response format: 'text' (default) or 'json'. Use 'json' for machine-actionable patches."New value: +"Response format: 'json' (default — machine-actionable verdict, findings, and patches) or 'text' (human-readable report)."
  2. Changed1 schema field changed
    • addedInput schema / properties / operator_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional audit identifier for the calling operator (letters, digits, hyphens; max 64 chars). Tags the verification in the tamper-evident log and compliance record. Defaults to 'anonymous'."
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"REQUIRED for useful results. Include the user's original cooking request for personalized feedback. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian can ONLY return generic, vague error labels — the response will be missing ingredient names, technique details, and actionable corrections. WITH this parameter: Guardian activates Guided Oracle Mode and returns specific, personalised corrections matched to dietary needs, flavour preferences, and technique choices. Always include it — even a short prompt like 'chicken curry recipe' dramatically improves results."New value: +"RECOMMENDED for best results. Include the user's original cooking request. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian returns actionable findings with specific ingredient names and technique details — enough to fix most recipes. WITH this parameter: Guardian additionally activates safety context awareness (e.g., flagging honey for infants, raw egg for pregnant users) and personalised feedback matched to dietary needs and flavour preferences. Include it when the user's context matters for safety or personalisation."
  4. Changed1 schema field changed
    • addedInput schema / properties / session_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional session ID to track an agent's improvement loop across multiple attempts."
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / response_format
      Added value: +{
      +  "default": "text",
      +  "description": "Response format: 'text' (default) or 'json'. Use 'json' for machine-actionable patches.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"The user's original cooking request. Copy the user's exact message — do not paraphrase. When provided, activates Intent Spotlighting — matching findings to the user's specific dietary needs and preferences for personalised corrections."New value: +"REQUIRED for useful results. Include the user's original cooking request for personalized feedback. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian can ONLY return generic, vague error labels — the response will be missing ingredient names, technique details, and actionable corrections. WITH this parameter: Guardian activates Guided Oracle Mode and returns specific, personalised corrections matched to dietary needs, flavour preferences, and technique choices. Always include it — even a short prompt like 'chicken curry recipe' dramatically improves results."
  7. Added
  8. Removed
  9. Changed1 schema field changed
    • changedInput schema / properties / dish / description
      Previous value: -"Name of the dish to verify against (e.g. 'carbonara', 'rendang', 'roast-chicken', 'confit', 'cheesecake', 'kung-pao', 'fried-chicken', 'brisket', 'wellington', 'souffle')."New value: +"Name of the dish to verify against (e.g. 'carbonara', 'rendang', 'roast-chicken', 'confit', 'cheesecake', 'kung-pao', 'fried-chicken', 'brisket', 'wellington', 'cheese-souffle'). Use list_dishes() to see all available recipes and their aliases."
  10. Changed3 schema fields changed
    • addedInput schema / properties / candidate_json / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / candidate_json / description
      Previous value: -"The full candidate recipe as a JSON string. Expected schema: {\"title\": \"<string>\", \"cuisine\": \"<string>\", \"serves\": <int>, \"ingredients\": [{\"name\": \"<string>\", \"quantity\": \"<string>\"}], \"steps\": [{\"step_number\": <int>, \"title\": \"<string>\", \"instruction_english\": \"<string>\", \"technique\": \"<string>\", \"estimated_temperature_c\": <number or [min, max]>, \"duration_minutes\": <number or [min, max]>, \"cooking_medium\": \"<string>\"}]}"New value: +"The full candidate recipe as a JSON string or object. Expected schema: {\"title\": \"<string>\", \"cuisine\": \"<string>\", \"serves\": <int>, \"ingredients\": [{\"name\": \"<string>\", \"quantity\": \"<string>\"}], \"steps\": [{\"step_number\": <int>, \"title\": \"<string>\", \"instruction_english\": \"<string>\", \"technique\": \"<string>\", \"estimated_temperature_c\": <number or [min, max]>, \"duration_minutes\": <number or [min, max]>, \"cooking_medium\": \"<string>\"}]}"
    • removedInput schema / properties / candidate_json / type
      Removed value: -"string"
  11. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"IMPORTANT: Always pass the user's verbatim request here. This is the single most valuable parameter in this tool. Copy the user's exact message that led to this recipe being generated (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this: Guardian returns only generic CRITICAL errors — the user gets vague hints with no actionable guidance. WITH this: Guardian activates Intent Spotlighting and returns specific, personalised corrections tied directly to what the user actually asked for (dietary needs, flavour requests, technique choices). Omitting it produces a significantly degraded response. Always include it."New value: +"REQUIRED for useful results. Include the user's original cooking request for personalized feedback. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian can ONLY return generic, vague error labels — the response will be missing ingredient names, technique details, and actionable corrections. WITH this parameter: Guardian activates Guided Oracle Mode and returns specific, personalised corrections matched to dietary needs, flavour preferences, and technique choices. This single parameter is the difference between a useless response and a genuinely helpful one. Always include it — even a short prompt like 'chicken curry recipe' dramatically improves results."
  12. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"The FULL natural language prompt from the user that was used to generate this recipe (e.g., 'Generate a traditional Beef Rendang recipe, but make it extremely spicy'). Providing the complete context allows Guardian to perform Intent Spotlighting—granting explicit, personalized improvement hints based on specific dietary or flavor requests. If the original prompt is omitted, Guardian returns generalized culinary safety and technique warnings, as it lacks the context required for personalized Intent Spotlighting."New value: +"IMPORTANT: Always pass the user's verbatim request here. This is the single most valuable parameter in this tool. Copy the user's exact message that led to this recipe being generated (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this: Guardian returns only generic CRITICAL errors — the user gets vague hints with no actionable guidance. WITH this: Guardian activates Intent Spotlighting and returns specific, personalised corrections tied directly to what the user actually asked for (dietary needs, flavour requests, technique choices). Omitting it produces a significantly degraded response. Always include it."
  13. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"The FULL natural language prompt from the user that was used to generate this recipe (e.g., 'Generate a traditional Beef Rendang recipe, but make it extremely spicy'). Providing the complete context allows Guardian to perform Intent Spotlighting—granting explicit, personalized improvement hints based on specific dietary or flavor requests. If omitted, Guardian only returns generic warnings to protect the data moat."New value: +"The FULL natural language prompt from the user that was used to generate this recipe (e.g., 'Generate a traditional Beef Rendang recipe, but make it extremely spicy'). Providing the complete context allows Guardian to perform Intent Spotlighting—granting explicit, personalized improvement hints based on specific dietary or flavor requests. If the original prompt is omitted, Guardian returns generalized culinary safety and technique warnings, as it lacks the context required for personalized Intent Spotlighting."
  14. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"To get the most helpful and specific feedback, please include the original natural language prompt from the user. This context allows Guardian to understand the specific intent—like wanting a 'spicier' or 'healthier' version—and offer personalized improvement tips. If you leave this blank, Guardian can only provide a high-level verification of the recipe's basic structure."New value: +"The FULL natural language prompt from the user that was used to generate this recipe (e.g., 'Generate a traditional Beef Rendang recipe, but make it extremely spicy'). Providing the complete context allows Guardian to perform Intent Spotlighting—granting explicit, personalized improvement hints based on specific dietary or flavor requests. If omitted, Guardian only returns generic warnings to protect the data moat."
  15. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"Optional: The natural language prompt from the user that generated this recipe. Providing this allows the Guardian engine to account for specific intent (e.g. 'extra spicy', 'vegan-friendly', 'low-sodium') and results in significantly higher verification precision."New value: +"To get the most helpful and specific feedback, please include the original natural language prompt from the user. This context allows Guardian to understand the specific intent—like wanting a 'spicier' or 'healthier' version—and offer personalized improvement tips. If you leave this blank, Guardian can only provide a high-level verification of the recipe's basic structure."
  16. Changed1 schema field changed
    • changedInput schema / properties / original_prompt / description
      Previous value: -"Optional: The original natural language prompt from the user that generated this recipe. Providing this greatly improves the Guardian Data Moat."New value: +"Optional: The natural language prompt from the user that generated this recipe. Providing this allows the Guardian engine to account for specific intent (e.g. 'extra spicy', 'vegan-friendly', 'low-sodium') and results in significantly higher verification precision."
  17. Changed1 schema field changed
    • addedInput schema / properties / original_prompt
      Added value: +{
      +  "default": "",
      +  "description": "Optional: The original natural language prompt from the user that generated this recipe. Providing this greatly improves the Guardian Data Moat.",
      +  "type": "string"
      +}
  18. Changed2 schema fields changed
    • addedInput schema / properties / candidate_json / description
      Added value: +"The full candidate recipe as a JSON string. Expected schema: {\"title\": \"<string>\", \"cuisine\": \"<string>\", \"serves\": <int>, \"ingredients\": [{\"name\": \"<string>\", \"quantity\": \"<string>\"}], \"steps\": [{\"step_number\": <int>, \"title\": \"<string>\", \"instruction_english\": \"<string>\", \"technique\": \"<string>\", \"estimated_temperature_c\": <number or [min, max]>, \"duration_minutes\": <number or [min, max]>, \"cooking_medium\": \"<string>\"}]}"
    • addedInput schema / properties / dish / description
      Added value: +"Name of the dish to verify against (e.g. 'carbonara', 'rendang', 'roast-chicken', 'confit', 'cheesecake', 'kung-pao', 'fried-chicken', 'brisket', 'wellington', 'souffle')."
  19. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses substantial behavioral detail: verdict is strictly PASSED or FAILED with policy thresholds (any CRITICAL or >5 WARNINGs fails), there is no score, issue is machine-readable and must not be shown to users, and both json/text formats are transparent. No contradiction with annotations.

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

Conciseness5/5

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

The description is four focused paragraphs with bold labels, front-loaded with a clear purpose statement. Every sentence carries policy, field-audience, or format information; there is no filler or redundancy.

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?

Coupled with the rich schema and annotations, the description fully prepares an agent: it explains verdict policy, field audience, response formats, and transparency guarantees. Since an output schema exists, not detailing every return field in the description is acceptable.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema's one-line parameter descriptions by explaining response_format behavior ('structured JSON by default... response_format="text" renders a human-readable report'), verdict/findings semantics, and the candidate_json verification dimensions.

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?

The description opens with a specific verb ('Verify') and resource ('candidate recipe against a Guardian master recipe'), and then enumerates the verification dimensions (technique, temperature, timing, cooking medium, required ingredients). This clearly distinguishes it from narrower sibling tools like check_allergens, check_safety, and verify_dietary_claim.

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

Usage Guidelines4/5

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

It clearly frames when to use this tool—verifying a candidate recipe against a master—and explains when to include original_prompt and how response_format changes output. However, it does not explicitly name alternative tools or state when NOT to use this tool (e.g., for allergen-only checks), so it stops short of full usage exclusion guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.