Skip to main content
Glama
codersag

ls-dyna-mcp

by codersag

read_history_file

Reads ASCII LS-DYNA time-history files (matsum, rcforc, sleout, spcforc, rwforc, nodout) to return record counts, per-entity min/max/last summaries, and records thinned to a set limit.

Instructions

Read an ASCII time-history file (matsum, rcforc, sleout, spcforc, rwforc, nodout). Returns the record count, a min/max/last summary per part/interface/node/wall from ALL records, and records thinned to max_records (at most 500). NaN/Inf values come back as null and are counted in the summary as nonfinite_values. Use this when the run wrote ASCII files instead of (or besides) a binout. Args: directory, kind (one of the six), entity (optional id to keep), name (file name if not the default, e.g. matsum), max_records

Input Schema

NameRequiredDescriptionDefault
kindYes
nameNo
entityNo
directoryYes
max_recordsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.2

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden and does well: it states the return payload (record count, min/max/last summary computed from ALL records, thinned `records` capped at 500), and explicitly says NaN/Inf become null and are tallied as nonfinite_values. It does not state that the operation is strictly read-only or what happens when the named file is missing, which are the remaining gaps.

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?

Purpose and the binout alternative are front-loaded, and the trailing Args line is a compact index that earns its place given zero schema coverage. No sentence is filler; the density is justified by the amount of behavior being conveyed.

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?

An output schema exists, yet the description still tells the agent the shape of the return (summary plus thinned records), which is the right level of detail. Combined with the kind enumeration and the max_records cap, an agent can call this correctly; only failure-mode behavior (missing file, malformed header) is unaddressed.

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 description coverage is 0%, so the description must compensate, and it largely does: kind is constrained to the six enumerated types, entity is 'optional id to keep' (a filter), name is 'file name if not the default, e.g. matsum', and max_records is bound to the 500-record thinning cap. Only `directory` is passed over as self-evident rather than explained.

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?

Opens with a specific verb and resource ('Read an ASCII time-history file') and immediately enumerates the six file kinds (matsum, rcforc, sleout, spcforc, rwforc, nodout), so an agent knows exactly what domain this covers. It also distinguishes itself from the binout-reading path, which separates it from the read_binout sibling.

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?

The final sentence gives a clear selection rule: use this when the run wrote ASCII files instead of (or besides) a binout. That is an explicit when-to-use condition against an alternative. It stops short of naming the actual sibling tool (read_binout) or covering the read_d3plot/summarize_d3plot boundary, but the routing intent is unmistakable.

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