MCP server for Altair PSIM simulation automation via Claude Desktop
13 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and error handling guidance. Tool names follow verb_noun convention well (import_circuit, open_project, set_parameter, run_simulation). Descriptions range 50-150 chars, meeting baseline minimums. However, many parameters lack detailed constraints (e.g., sweep_parameter's 'steps' has no min/max bounds; analyze_simulation's 'metrics' array lacks element schema). No tool descriptions explain error recovery paths or prerequisites. Output schemas are not documented. Parameter descriptions are generic ('Identifier of the target component' for component_id across multiple tools). No tool declares idempotency, destructiveness, or read-only hints despite clear risk profiles (WRITE vs READ_ONLY marked in metadata but not in tool definitions).
Analyze simulation results and compute metrics from the latest simulation
Compute simulation metrics from the latest simulation result
Convert a .psimsch schematic into a PSIM Python script
Export simulation results to disk in JSON or CSV format
Extract signal waveforms from the latest simulation result
Get detailed information about the currently open project
Get the current adapter status and mode (mock/real)
Parameter constraints missing: sweep_parameter 'steps' has no min/max; optimize_circuit 'n_trials' unbounded; extract_signals 'max_points' unbounded. Unbounded numeric parameters let LLMs pass absurd values (e.g., 1M steps) that break simulations or timeout.
Array/object parameters lack element schemas: analyze_simulation 'metrics' is array with no element type; optimize_circuit 'parameters' is array with no element schema. LLMs cannot infer what fields each metric/parameter object should contain.
No error recovery guidance in descriptions. Tools like run_simulation, sweep_parameter, optimize_circuit perform long-running operations but descriptions do not explain what to do if they fail, whether to retry, or how to check status.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Import and analyze circuit structure from a .psimsch file
Open a PSIM project file and load its circuit structure
Optimize circuit parameters using Optuna-based optimization
Execute the simulation for the currently open project
Set a single parameter on a component in the currently open project
Perform a parameter sweep across a range of values and run simulations
Output schemas not documented. No tool description specifies what fields are returned or their types. LLMs cannot plan downstream tool calls (e.g., after run_simulation, what field contains the result path for extract_signals?).
Destructive operations lack confirmation/dry-run support. open_project, set_parameter, run_simulation, export_results modify state but have no dry-run or confirmation step. Agents cannot preview changes before committing.