Skip to main content
Glama

Show the problem in 3D

show_problem
Read-onlyIdempotent

Displays a problem YAML as an interactive 3D preview of design space, fixed/keep-out/solid/load regions, load arrows, and time/memory estimates so users can inspect the setup before running the optimizer.

Instructions

Show a problem YAML to the user as a 3D view in the chat: the design space, the fixed, keep-out, solid and load regions, an arrow for each load case, and the time and memory estimate. No optimizer run: the same checks as check_problem, in the same time.

yaml_path: the problem YAML (relative paths start at the work folder). A client that shows MCP Apps (for example Claude Desktop) shows the card. The user can turn and zoom it. The view's button "Start the run" works in one of three ways. The host lets the view call tools: the click starts the run at once (run_topopt), the view watches it (run_status), and the host may tell you about the start and the end. While that run works, a second run_topopt is refused; run_status shows the run. When the run folder (runs/live) holds a run, the first click shows what the start replaces; a second click starts. The host takes only a message from the view: the button sends a chat message from the user that asks you to start the run. Neither: the view shows a line for the user to type. Another client shows only the text: the region counts and the estimate. Use it when the YAML is ready, so that the user sees the setup before the run. The full facts and the warnings are in check_problem. On a wrong input: {"ok": false, "error": ...}.

Input Schema

NameRequiredDescriptionDefault
yaml_pathYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare readOnly/idempotent/non-destructive, and the description still adds substantial context beyond them: that no optimizer runs, that behavior depends on the client (MCP Apps card vs. text-only fallback with just region counts and estimate), the interaction contract for the 'Start the run' button, and the concrete error shape {"ok": false, "error": ...}.

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?

The opening and closing sentences are front-loaded and efficient, and the key constraint (no optimizer run) lands early. However, the middle block describing the three host modes for the 'Start the run' button is long, chatty, and largely about UI plumbing rather than helping an agent decide to call the tool or how to invoke it.

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?

There is no output schema, so the description must cover returns; it does by describing the card contents, the text-only fallback (region counts and estimate), and the error object. It omits whether the card is returned as part of the tool result payload versus rendered side-effect only, which is a minor gap for an interactive-render tool.

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?

With schema description coverage at 0%, the description carries the burden and does so: it names yaml_path and clarifies that 'the problem YAML' is expected and that 'relative paths start at the work folder', which the bare string schema does not convey. It does not specify the file extension or an example path, which keeps it from a 5.

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 first sentence states a specific verb and resource ('Show a problem YAML ... as a 3D view in the chat') and enumerates exactly what the view contains: design space, fixed/keep-out/solid/load regions, load-case arrows, and time/memory estimate. It explicitly distinguishes itself from check_problem ('the same checks as check_problem, in the same time') and from run_topopt ('No optimizer run').

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?

'Use it when the YAML is ready, so that the user sees the setup before the run' gives a clear trigger condition. It also routes the agent to the sibling alternative for the full facts and warnings ('The full facts and the warnings are in check_problem'). No explicit when-not-to-use case is stated, keeping it below a 5.

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