Skip to main content
Glama

inspire_run_python

Run Python code in a fresh headless Altair Inspire process to automate model creation, inspect parts, and return assigned results or captured print output.

Instructions

Run Python code inside a fresh headless Altair Inspire process. Pre-defined names: inspire (hwx.inspire module), RUN_DIR (a scratch folder for this run). Assign result = ... to return data; print() output is captured in stdout. Example: m = inspire.newModel(); m.createSolidBlock(x=0.01, y=0.01, z=0.01); result = len(m.parts)

Input Schema

NameRequiredDescriptionDefault
codeYes
timeout_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full behavioral disclosure burden. It usefully states that code runs in a fresh headless process, that RUN_DIR is a scratch folder, and that result assignment and print() output are captured. However, it omits important behavior such as timeout semantics, error handling, persistence of model state, side effects, and permissions or sandboxing.

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 compact and front-loaded with the core action and execution environment. The predefined names, result convention, and example all earn their place by clarifying invocation. There is no redundant or wasted text.

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

Completeness3/5

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

The description covers the execution model and return conventions (result and stdout), which is important because no output schema exists. However, for an arbitrary code execution tool with no annotations and 0% schema parameter descriptions, the missing timeout behavior and failure/persistence semantics leave meaningful gaps.

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 0%, so the description must compensate for both parameters. It explains the code parameter well by naming available objects, the result-return convention, and stdout capture. It completely omits the timeout_s parameter, which is undocumented in both the schema and description.

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 states a specific verb and resource: run Python code inside a fresh headless Altair Inspire process. It is clearly distinct from siblings like inspire_status, inspire_model_info, inspire_h3d_summary, and inspire_export_optistruct. The predefined names and example further confirm the tool's purpose.

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

Usage Guidelines3/5

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

The description implies usage through the execution context and example, but it does not explicitly say when to use this tool versus the sibling tools. There is no guidance on when not to use it or which alternative to select for model inspection, status, or export tasks. The use case is inferable but not clearly routed.

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