Skip to main content
Glama

Execute Cookbook

execute_cookbook

Use this when you need evaluate_script (and optionally open_in_studio) for an industry / cookbook demo in ONE step — after lookup_cookbook for industry demos, prefer execute_cookbook when you need evaluate+Studio together; empty lookup is not a stop (freehand-author instead). Resolves a cookbook snippet by id or BM25 query (same ranking as lookup_cookbook), evaluates its body via evaluate_script with bounded vendor timeouts, and returns explicit status with stage resolve|evaluate|open_in_studio. Pass openInStudio:true to publish the same script via open_in_studio after a green full evaluate (hosted MCP). dryRun:true is the fast capture-only path — it is NOT evidence the cookbook builds a solid or is safe to publish; finish with dryRun:false (default) before claiming success or opening Studio.

Input Schema

NameRequiredDescriptionDefault
idNoCookbook snippet id (e.g. gt2-timing-belt-drive, extrude-rounded-rect-plate).
queryNoWhen id is omitted: natural-language query; BM25 picks the top hit (same as lookup_cookbook).
dryRunNoDefault false. dryRun:true is NOT evidence the cookbook builds a solid — capture-only checks; do not claim success or open Studio from a dry run alone.
intentNoThe user's request in one sentence, in the user's own words and language (e.g. 'M4 bracket for a 25 mm tube, print on Bambu A1'). Helps kernelCAD improve; leave out personal data.
kernelNoSolid-modeling kernel forwarded to evaluate_script. Default 'occt'; opt-in 'smlib' uses guarded candidates with explicit OCCT fallback diagnostics.
projectNoSlug of an existing project. Adds a revision to that project. Omit to start a new project when this cookbook or design is different from the one this chat already saved.
new_projectNoPass true to start a separate project even when this cookbook was already published in this chat.
openInStudioNoDefault false. When true, after a green full (non-dryRun) evaluate, call open_in_studio on the same script (hosted MCP).
continue_designNoPass true to add a revision to the design this chat is already saving, even if this call runs a different cookbook. Ignored when `project` is set.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / kernel / description
      Previous value: -"Solid-modeling kernel forwarded to evaluate_script. Default 'occt'; 'smlib' is reserved and currently fails with recompute.kernel.unavailable."New value: +"Solid-modeling kernel forwarded to evaluate_script. Default 'occt'; opt-in 'smlib' uses guarded candidates with explicit OCCT fallback diagnostics."
  2. Changed1 schema field changed
    • addedInput schema / properties / kernel
      Added value: +{
      +  "description": "Solid-modeling kernel forwarded to evaluate_script. Default 'occt'; 'smlib' is reserved and currently fails with recompute.kernel.unavailable.",
      +  "enum": [
      +    "occt",
      +    "smlib"
      +  ],
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • removedOutput schema / properties
      Removed value: -{
      -  "code": {
      -    "description": "Snippet body used for evaluate / Studio.",
      -    "type": "string"
      -  },
      -  "cookbookId": {
      -    "description": "Resolved cookbook snippet id.",
      -    "type": "string"
      -  },
      -  "dryRunNotEvidence": {
      -    "description": "Present when dryRun:true — dryRun success is not evidence the solid built.",
      -    "type": "boolean"
      -  },
      -  "error": {
      -    "type": "string"
      -  },
      -  "evaluate": {
      -    "additionalProperties": true,
      -    "description": "Full evaluate_script result (same shape).",
      -    "type": "object"
      -  },
      -  "executionId": {
      -    "description": "Short id for logs / correlation.",
      -    "type": "string"
      -  },
      -  "ok": {
      -    "type": "boolean"
      -  },
      -  "openInStudio": {
      -    "additionalProperties": true,
      -    "description": "open_in_studio result when openInStudio was requested.",
      -    "type": "object"
      -  },
      -  "stage": {
      -    "description": "'resolve' | 'evaluate' | 'open_in_studio' on failure.",
      -    "type": "string"
      -  },
      -  "title": {
      -    "description": "Resolved cookbook title.",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "ok",
      -  "executionId"
      -]
  4. Changed2 schema fields changed
    • changedInput schema / properties / dryRun / description
      Previous value: -"Default false. dryRun:true is NOT evidence the cookbook builds under OCCT — capture-only checks; do not claim success or open Studio from a dry run alone."New value: +"Default false. dryRun:true is NOT evidence the cookbook builds a solid — capture-only checks; do not claim success or open Studio from a dry run alone."
    • changedOutput schema / properties / dryRunNotEvidence / description
      Previous value: -"Present when dryRun:true — dryRun success is NOT evidence of a real OCCT build."New value: +"Present when dryRun:true — dryRun success is not evidence the solid built."
  5. Changed3 schema fields changed
    • addedInput schema / properties / continue_design
      Added value: +{
      +  "description": "Pass true to add a revision to the design this chat is already saving, even if this call runs a different cookbook. Ignored when `project` is set.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / new_project
      Added value: +{
      +  "description": "Pass true to start a separate project even when this cookbook was already published in this chat.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / project
      Added value: +{
      +  "description": "Slug of an existing project. Adds a revision to that project. Omit to start a new project when this cookbook or design is different from the one this chat already saved.",
      +  "minLength": 1,
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / intent
      Added value: +{
      +  "description": "The user's request in one sentence, in the user's own words and language (e.g. 'M4 bracket for a 25 mm tube, print on Bambu A1'). Helps kernelCAD improve; leave out personal data.",
      +  "maxLength": 2000,
      +  "type": "string"
      +}
  7. Added

TDQS

A4.2/5.0
Behavior4/5

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

Adds real behavior beyond annotations: bounded vendor timeouts, an explicit status with stage resolve|evaluate|open_in_studio, the hosted-MCP caveat for openInStudio, and the strong warning that dryRun:true is capture-only and not evidence of a solid or safe result. Annotations already declare readOnlyHint=false/openWorldHint=true, so this is supplementary rather than load-bearing, but it is substantive.

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

Conciseness3/5

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

Front-loads the trigger ("Use this when..."), which is good, but it is one dense chained paragraph with semicolons, inline arrows, and repetition — the dryRun-is-not-evidence warning appears twice in the description and again in the schema. It would read better as short separated lines.

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

Completeness4/5

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

For a 9-parameter orchestrator with an output schema, it covers the decision path, the resolve/evaluate/publish stages, the hosted-MCP constraint, and the failure/verification discipline. Return-value detail is correctly left to the output schema; only the interaction between `project`, `new_project`, and `continue_design` is left to the schema alone.

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 description coverage is 100%, so the schema already documents every parameter's meaning, including the dryRun caveat and openInStudio precondition. The description mainly restates those semantics plus the id-vs-query fallback ordering, which is a modest increment over the structured data.

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 compound action: resolve a cookbook snippet by `id` or BM25 `query`, evaluate its body via evaluate_script with bounded vendor timeouts, and optionally publish via open_in_studio. It explicitly positions itself against lookup_cookbook and evaluate_script, so an agent can distinguish the composite tool from the primitives without reading schemas.

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 an explicit routing rule: after lookup_cookbook for industry demos, prefer execute_cookbook when evaluate+Studio are needed together, and clarifies that an empty lookup is not a stop (freehand-author instead). It also names the precondition for openInStudio (green full evaluate) and the requirement to finish with dryRun:false before claiming success.

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.