LS-PrePost-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LSPP_TIMEOUT | Yes | Timeout in seconds for LS-PrePost operations. | |
| LSPP_WORKSPACE | Yes | Directory for LS-PrePost job artifacts. | |
| LSPP_EXECUTABLE | Yes | Path to the LS-PrePost executable. | |
| LSPP_EXECUTABLES | No | Optional JSON mapping of version to executable paths for multi-version configuration. | |
| LSPP_ALLOWED_ROOTS | Yes | Semicolon-separated list of allowed input roots (use colon on Linux). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_installationsA | List configured executables only; file existence is not a compatibility test. |
| run_on_versionC | Run an existing typed action using an explicitly configured installation; no global switch. |
| probe_environmentC | Launch a fresh native instance and report its embedded Python; missing empty-model counters are warnings. |
| probe_sclC | Count nodes in a keyword model through native SCL without requiring embedded Python. |
| inspect_modelC | Open keyword/d3plot in a fresh native Python instance; return counts, user part IDs and state times. |
| list_nodesC | Page native user node IDs and reference coordinates. Offset is zero-based; coordinates are not deformed. |
| list_partsC | List native user part IDs and optional names; null names indicate an unavailable binding. |
| get_element_connectivityA | Query one shell/solid/beam using a user element ID; return connected user node IDs. |
| create_shell_plateB | Create an XY shell mesh in native LS-PrePost, verify counts and save a new keyword mesh. Not a complete analysis deck. |
| export_keywordC | Save a standalone keyword model into a new owned job. Include-bearing export is rejected. |
| extract_nodal_resultsB | Extract native position/displacement/velocity at a 1-based state. Older unverified vector ABIs are blocked; use explicit reader tools. |
| extract_node_historyC | Export native vectors for true user node IDs and explicit 1-based states; tested on the 4.13 profile. |
| render_snapshotC | Render a native PNG. Fringe codes require d3plot/state; shell layer and averaging retain native defaults, not user-specified overrides. |
| measure_partsC | Return raw native part-volume command values; layout/units remain build-dependent and require interpretation. |
| read_jobB | Read a recorded task including status, errors, log paths and validated artifacts. |
| list_jobsC | List recent task manifests in the configured workspace. |
| inspect_binoutB | List LASSO binout branches/variables from one literal file; reject incomplete MPP shard sets. |
| extract_binout_curveC | Export a scalar or explicitly ID-selected binout curve through LASSO; never guess an entity column. |
| inspect_d3plot_sclC | Native SCL inventory with bounded staged input for builds without Python. |
| inspect_d3plot_databaseC | Read file metadata through optional LASSO, without launching LS-PrePost. |
| extract_d3plot_nodalD | Extract vectors through LASSO. Public states are 1-based, IDs are user IDs. |
| inspect_keyword_deckB | Inventory a deck using PyDYNA; no solver or include expansion is performed. |
| create_elastic_materialC | Create and reimport-check a MAT_001 fragment using optional PyDYNA. |
| update_elastic_materialC | Modify one elastic material into a fresh deck; preserve the original file. |
| inspect_lsreaderC | Inspect a result using LS-Reader in its own configured Python/ABI process. |
| extract_lsreader_nodalC | Extract LS-Reader vectors with 1-based public states and true user IDs. |
| search_knowledgeD | – |
| list_capabilitiesD | – |
| search_commandsC | Search the attributed Apache-2.0 command catalog; rows are not executable validation. |
| search_workflowsB | Find authored tutorial acceptance cases; these are not completed automation recipes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 30 tools
Several tools overlap heavily: extract_d3plot_nodal, extract_nodal_results, extract_node_history, and extract_lsreader_nodal all pull nodal data, and the six inspect_* tools (d3plot_scl, d3plot_database, lsreader, binout, keyword_deck, model) target similar inventory goals. Descriptions do differentiate by backend (LASSO/SCL/LS-Reader/PyDYNA), but the distinctions are subtle and easy to misselect on.
Names follow a clear verb_noun convention (list_parts, inspect_model, create_shell_plate, export_keyword, read_job) consistently in snake_case. Minor deviations like run_on_version and the backend-suffixed inspect_d3plot_scl/extract_lsreader_nodal are still readable and predictable.
30 tools is on the heavy side for a single pre/post-processor server, especially with the many parallel inspect_* and extract_* variants multiplied across backends. The breadth is partly justified by the domain's multiple file formats and Python ABI variants, but the set feels over-expanded.
Coverage spans inspection, extraction, material/mesh creation, keyword export, job management, rendering, and discovery, which is broad for the domain. Gaps exist (no delete/destructive operations and limited model editing beyond elastic material and a shell plate), but core lifecycle workflows are workable.