MCP Server bridging Codex AI with Abaqus FEA — submit jobs, read ODB results, model via Python API, and execute arbitrary Abaqus scripts.
Server provides 7 tools with complete input schemas and descriptions. However, critical gaps limit production readiness: (1) No output schemas documented, LLMs cannot predict response structure for downstream chaining; (2) Parameter descriptions lack constraints (ranges, enums, formats), e.g., 'timeout' has no bounds, 'cpus' no min/max; (3) No error handling guidance, tools return generic 'Tool error: {e}' with no recovery hints; (4) Two tools (abaqus_run_modeling, abaqus_run_python) accept arbitrary code execution with no safety guardrails, validation, or sandboxing warnings; (5) Tool names are descriptive but descriptions could be more LLM-optimized (avg 150 chars, within baseline but some lack WHEN/WHY context). Schemas are present and typed, placing this above F/D tier, but missing output documentation and error recovery patterns prevent higher scores.
Check the status of an Abaqus job. Reads .sta, .log, and .msg files. Returns status, progress, errors, and warnings.
List the contents of an ODB file: available steps, frames, and field outputs.
Read field output (stress, displacement, strain, etc.) from an Abaqus ODB file. Can filter by step, frame, node/element labels. If no field names given, lists all available field outputs.
Read history output (time-series data at specific nodes/elements) from an Abaqus ODB file. If no history names given, lists all available history outputs.
Execute an Abaqus Python modeling script via 'abaqus cae noGUI='. Gives full access to the Abaqus CAE API (mdb, session, abaqusConstants, etc.) for creating parts, materials, sections, steps, loads, BCs, mesh, and jobs.
Execute an arbitrary Python script using the Abaqus Python interpreter ('abaqus python'). Gives access to odbAccess, abaqusConstants, and other Abaqus modules. For full CAE API access, use abaqus_run_modeling instead.
No output schemas documented. LLMs cannot predict response structure, breaking tool chaining and forcing agents to guess field names for downstream calls.
Parameter constraints missing. 'cpus' has no min/max (could be 0 or 10000), 'timeout' unbounded (could be negative), 'max_per_field' unconstrained. LLMs will pass invalid values.
No error handling guidance. Generic 'Tool error: {e}' response tells LLM nothing about recovery. Should categorize errors (retryable vs fatal) and suggest next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Submit an Abaqus analysis job from an input file (.inp). Supports multi-CPU, double precision, and Fortran user subroutines. Returns job name and output file paths.
Code execution tools (abaqus_run_modeling, abaqus_run_python) accept arbitrary Python scripts with no validation, sandboxing, or safety warnings. Agents could inject malicious code or crash the Abaqus process.
Descriptions lack WHEN/WHY context. E.g., 'Check the status of an Abaqus job' doesn't explain when to call this vs abaqus_submit_job with wait=true, or what fields the response contains.