ABAQUS MCP Pro
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ABAQUS_MCP_HOME | No | Working directory for file IPC | auto-detect |
| ABAQUS_MCP_HOST | No | TCP host for the bridge | 127.0.0.1 |
| ABAQUS_MCP_PORT | No | TCP port for the bridge | 48152 |
| ABAQUS_MCP_TIMEOUT | No | Socket timeout in seconds | 60 |
| ABAQUS_MCP_PLUGIN_DIR | No | Plugin install directory | ~/abaqus_plugins |
| ABAQUS_MCP_MAX_MESSAGE_BYTES | No | Max message size | 33554432 |
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 |
|---|---|
| pingB | Check whether the Abaqus-side socket bridge is reachable. |
| check_abaqus_connectionC | Return a concise human-readable bridge status. |
| run_pythonB | Execute Python code in the active Abaqus/CAE kernel. Single-line expressions are evaluated and returned. Multi-line scripts are
executed; set a variable named |
| execute_scriptC | Compatibility wrapper around run_python that returns stdout/text. |
| set_workdirC | Change the current Abaqus working directory. |
| get_model_infoC | Get parts, materials, steps, loads, BCs, interactions, jobs, and viewports. |
| list_jobsB | List all Abaqus jobs in the current CAE session. |
| submit_jobA | Submit an existing Abaqus job and wait for completion. |
| monitor_job_statusB | Inspect job objects and tail .sta/.msg diagnostics. Set diagnose=True for full solver-log analysis. |
| diagnose_jobA | Run a comprehensive solver-log diagnosis on a job's output files. Scans .sta, .msg, .dat, .log files for 40+ known error/warning patterns across 14 categories: license, convergence, model setup, contact, material, resources, environment, ODB, syntax, explicit, output, scripting, mesh, and general. Returns a structured Markdown diagnostic panel with severity markers, source file references, and actionable fix suggestions. |
| inspect_odbB | Open an ODB read-only and return metadata about steps, frames, and outputs. |
| get_odb_infoC | Compatibility wrapper for inspect_odb returning formatted JSON. |
| extract_kpisB | Extract KPIs from an ODB file using declarative queries.
Example queries JSON: [ {"query_id": "max_stress", "field": "S", "invariant": "Mises", "aggregation": "max"}, {"query_id": "max_disp", "field": "U", "component": "Magnitude", "aggregation": "max"}, {"query_id": "rf_sum", "field": "RF", "component": "RF2", "aggregation": "sum", "region": "FIXED_END"} ] Returns a structured Markdown KPI report. |
| create_capsuleA | Capture current Abaqus session state into an experiment capsule. Saves model info, job status, output file inventory, and Abaqus version for reproducibility and later comparison. Args: capsule_id: Unique identifier for this capsule (e.g. "baseline_v1"). notes: Optional description of this run. |
| list_capsulesA | List all saved experiment capsules. |
| load_capsuleB | Load a saved experiment capsule by ID. |
| delete_capsuleB | Delete a saved experiment capsule. |
| compare_capsulesC | Compare two experiment capsules and show differences. |
| check_physics_contractsA | Check physics contracts against KPI values from a capsule or direct JSON. Validates that simulation results meet design requirements defined as contracts (range, threshold, exact, pct_change). Supports two modes:
Args: contracts_json: JSON array of contract dicts. Each dict must have contract_id, kpi_name, contract_type. Optional: expected, tolerance, severity, description. kpis_json: JSON object mapping KPI names to values, e.g. {"max_stress": 345.6}. Required if capsule_id is empty. capsule_id: Load KPIs from this capsule instead of kpis_json. Contract types: - range: value must be within [min, max] - threshold_gt: value must be greater than X - threshold_lt: value must be less than X - exact: value must equal X (within tolerance) - pct_change: change from baseline must be within X% Returns: Markdown-formatted contract validation report. |
| generate_reportA | Generate a comprehensive simulation report in Markdown format. Combines capsule snapshot, KPI lens results, physics contracts validation, solver diagnosis, and silent failure detection into a single structured report. Supports two modes:
Args: capsule_id: Load data from this capsule. If provided, the report includes model info, job status, KPIs, and diagnosis from the capsule. contracts_json: JSON array of contract dicts to validate against capsule KPIs. Only used when capsule_id is provided. report_title: Title for the report. output_path: If provided, save the report to this file path. Otherwise, return the report as text. include_silent_failures: If True, run silent-failure checks on the model and include the results in the report. Returns: The generated report as Markdown text, or a confirmation message if output_path is provided. |
| capture_viewportC | Capture an Abaqus viewport as base64 image data. |
| get_viewport_imageC | Compatibility wrapper returning a data URI for the requested viewport. |
| check_silent_failuresA | Run silent-failure checks on the current Abaqus model. Detects 7 categories of model issues that Abaqus does not report as errors:
These checks measure the model you built, not just the answer it produced. Args: model_name: Name of the model to check (default: first available model). workdir: Working directory for job output checks (default: current). Returns: Structured Markdown report with pass/fail/warning findings. |
| check_model_integrityA | Quick model integrity check: mesh, constraints, contacts, volumes. A fast subset of check_silent_failures focused on the most common silent failures. Runs the same checks but returns a compact format. Use this after building a model and before submitting a job. Args: model_name: Name of the model to check (default: first available model). Returns: Compact text report of findings. |
| converge_adviceA | Get auto-fix suggestions for convergence problems diagnosed by the Solver Doctor. Supports two modes:
Each suggestion includes:
Patterns supported: too_many_attempts, time_increment_too_small, maximum_increments_exceeded, negative_eigenvalues, rigid_body_motion, contact_overclosure, excessive_distortion, explicit_stable_time_too_small, zero_pivot, material_instability, excessive_pivot_ratio. Args: diagnosis_result: JSON string from diagnose_job output. If provided, pattern_ids is ignored. pattern_ids: Comma-separated pattern IDs (e.g., "too_many_attempts,rigid_body_motion"). Only used if diagnosis_result is empty. Returns: Markdown-formatted fix suggestions with priority and risk levels. |
| create_elastic_materialC | Create a linear elastic material in Abaqus. |
| create_plastic_materialB | Create an elasto-plastic material with isotropic hardening. |
| list_materialsB | List all materials in the specified model. |
| create_solid_sectionB | Create a homogeneous solid section. |
| assign_sectionC | Assign a section to a region. |
| create_encastre_bcC | Create an encastre (fully fixed) BC. |
| create_displacement_bcC | Create a displacement BC. |
| create_pressure_loadC | Create a pressure load. |
| create_gravity_loadC | Create a gravity load. |
| create_tieC | Create a tie constraint. |
| create_static_stepC | Create a Static, General step. |
| create_modal_stepC | Create a Frequency (modal) analysis step. |
| create_part_cubeB | Create a 3D deformable cube/box part. |
| create_part_cylinderB | Create a 3D deformable cylinder. |
| generate_meshC | Generate mesh for the whole model. |
| get_field_output_summaryC | Get summary of field outputs in an ODB. |
| set_viewport_displayB | Set the viewport display type and variable. Args: plot_type: "contour", "symbol", "material", "undeformed" variable: Field output variable (e.g., "S", "U", "RF") component: Component (e.g., "Mises", "U1", "S11") deformation_scale: Deformation scale factor (None = auto) |
| set_viewport_viewC | Set the camera view in the viewport. Args: view_type: "iso", "front", "back", "top", "bottom", "left", "right" |
| set_viewport_annotationsA | Set viewport annotations (title, legend, etc.). Args: title: Title text for the viewport subtitle: Subtitle text legend: Show/hide legend |
| create_multiple_viewportsB | Create multiple viewports for side-by-side comparison. Args: layout: "2x2", "3x1", "1x3", "2x1", "1x2" |
| create_concentrated_forceB | Create a concentrated force on a vertex or reference point. |
| create_moment_loadC | Create a moment load on a vertex or reference point. |
| create_shell_edge_loadC | Create a shell edge load (force per unit length). |
| create_line_loadC | Create a line load (force per unit length) on an edge set. |
| create_body_forceB | Create a body force (force per unit volume) on the entire model. |
| create_heat_flux_loadC | Create a surface heat flux load. |
| create_body_heat_fluxC | Create a body heat flux (heat generation per unit volume). |
| create_connector_forceC | Create a connector force on a connector/wire set. |
| create_symmetry_bcC | Create a symmetry boundary condition. Args: symmetry_type: "XSYMM", "YSYMM", "ZSYMM", "XASYMM", "YASYMM", "ZASYMM" |
| create_pinned_bcB | Create a pinned BC (U1=U2=U3=0, rotations free). |
| create_velocity_bcC | Create a velocity boundary condition. |
| create_acceleration_bcC | Create an acceleration boundary condition. |
| create_temperature_bcC | Create a temperature boundary condition. |
| create_connector_displacement_bcC | Create a connector displacement BC. |
| create_rigid_body_constraintC | Create a rigid body constraint. Args: body_type: "BODY" or "PIN" (pin constrains only translational DOFs) |
| create_coupling_constraintC | Create a coupling constraint between a reference point and a surface. Args: coupling_type: "KINEMATIC", "DISTRIBUTING", or "STRUCTURAL" |
| create_mpc_constraintC | Create an MPC constraint. Args: mpc_type: "BEAM", "LINK", "PIN", "TIE", "ELBOW", "SLIDER", "PLANAR", "REVOLUTE", "UNIVERSAL", "WELD" |
| create_embedded_regionC | Create an embedded region constraint (e.g., reinforcement in concrete). |
| create_equation_constraintC | Create a linear equation constraint. Args: terms: list of (coefficient, set_name, dof) tuples. e.g., [(1.0, "Set-1", 1), (-1.0, "Set-2", 1)] for u1(Set-1) = u1(Set-2) |
| create_instanceC | Create an instance of a part in the assembly. |
| translate_instanceC | Translate an instance in the assembly. |
| rotate_instanceB | Rotate an instance around an axis by a given angle (degrees). |
| create_reference_pointC | Create a reference point in the assembly. |
| create_set_by_faceC | Create a set from faces of an instance. |
| create_set_by_edgesB | Create a set from edges of an instance. |
| create_set_by_verticesC | Create a set from vertices of an instance. |
| create_surfaceB | Create a surface from faces of an instance. |
| create_surface_by_edgesB | Create a surface from edges of an instance (for shell/beam). |
| find_face_by_coordinateC | Find the face index of an instance closest to the given coordinate. |
| find_edge_by_coordinateA | Find the edge index of an instance closest to the given coordinate. |
| create_contact_propertyC | Create a contact interaction property. |
| create_surface_to_surface_contactC | Create a surface-to-surface contact interaction. |
| create_surface_to_surface_contact_expB | Create a surface-to-surface contact interaction for explicit analysis. |
| create_general_contactC | Create a general contact (all-inclusive) interaction. |
| create_general_contact_expC | Create a general contact for explicit analysis. |
| create_explicit_stepC | Create an Explicit Dynamics step. |
| create_heat_transfer_stepC | Create a Heat Transfer step. |
| create_coupled_temp_disp_stepC | Create a Coupled Temperature-Displacement step. |
| create_dynamic_implicit_stepC | Create a Dynamic Implicit step. |
| create_static_riks_stepC | Create a Static Riks step (for post-buckling analysis). |
| create_buckle_stepC | Create a Linear Buckle step. |
| create_field_output_requestB | Create a field output request for a specific step. Args: variables: list of variable names, e.g. ["S", "E", "U", "RF"] frequency: output frequency (every N increments) |
| create_history_output_requestC | Create a history output request. Args: variables: list of variable names region_name: set name for the region (empty = whole model) frequency: output frequency (every N increments) |
| seed_partC | Seed a part with a global element size. |
| set_element_typeC | Set the element type for a part. Args: elem_type: e.g., "C3D8R", "C3D8", "C3D10", "CPS4R", "CPE4R", "S4R", "B31" |
| set_mesh_controlC | Set mesh control algorithm for a part. Args: algorithm: "MEDIAL_AXIS", "ADVANCING_FRONT", or "SWEEP" |
| create_tabular_amplitudeC | Create a tabular amplitude. Args: data: list of (time/frequency, amplitude) tuples smooth: "SOLVER_DEFAULT", "STEP", "LINEAR", "SMOOTH" |
| create_smooth_step_amplitudeC | Create a smooth step amplitude. |
| create_periodic_amplitudeC | Create a periodic (Fourier series) amplitude. |
| get_xy_dataC | Extract XY data from an ODB. Args: node_label: node label for history-based extraction element_label: element label for element-based extraction frame_index: -1 for last frame |
| get_history_outputC | Get history output data from an ODB. |
| get_node_coordinatesC | Get the coordinates of a specific node. |
| list_elementsB | List elements in an instance with their type and connectivity. |
| list_nodesC | List nodes in an instance. |
| create_hyperelastic_materialC | Create a hyperelastic (Mooney-Rivlin) material. |
| create_viscoelastic_materialC | Create a viscoelastic material with Prony series. Args: relaxation_data: list of (g_i, k_i, tau_i) Prony series terms |
| create_thermal_expansionB | Add thermal expansion to an existing material. |
| create_thermal_conductivityC | Add thermal conductivity to an existing material. |
| create_specific_heatB | Add specific heat to an existing material. |
| create_damage_initiationC | Add ductile damage initiation to a material. |
| create_part_sphereC | Create a 3D sphere part. |
| create_part_beamC | Create a 3D wire (beam) part. |
| create_part_plateB | Create a 3D shell (planar) part. |
| create_beam_sectionC | Create a beam section. Args: integration: "BEFORE_ANALYSIS" or "DURING_ANALYSIS" |
| create_shell_sectionC | Create a homogeneous shell section. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup_optimization | Guided optimization setup. |
| setup_dynamic_analysis | Guided dynamic analysis setup. |
| setup_coupled_analysis | Guided coupled thermomechanical analysis. |
| setup_fatigue_analysis | Guided fatigue analysis setup. |
| setup_static_analysis | Guided workflow for static stress analysis. |
| setup_contact_analysis | Guided workflow for contact analysis. |
| define_material | Guided material definition. |
| setup_mesh | Guided meshing workflow. |
| debug_job | Guided job debugging. |
| extract_odb_results | Guided ODB result extraction. |
| setup_modal_analysis | Guided modal analysis setup. |
| setup_thermal_analysis | Guided thermal analysis setup. |
| session_workflow | Master workflow prompt. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| session_telemetry | Live Abaqus/CAE session telemetry from the socket bridge. Shows models, viewports, version, and connection status. |
| abaqus_status | Compatibility status resource. Returns the same telemetry as session-telemetry. |
| _reader | Abaqus modeling instructions for MCP clients. Includes skills knowledge base reference. |
| _reader | Abaqus Skills Index |
| _reader | Geometry |
| _reader | Material |
| _reader | Mesh |
| _reader | Interaction |
| _reader | Step |
| _reader | Boundary Condition |
| _reader | Load |
| _reader | Output |
| _reader | Job |
| _reader | ODB |
| _reader | Static Analysis |
| _reader | Modal Analysis |
| _reader | Contact Analysis |
| _reader | Dynamic Analysis |
| _reader | Thermal Analysis |
| _reader | Fatigue Analysis |
| _reader | Coupled Analysis |
| _reader | Optimization |
| _reader | Topology Optimization |
| _reader | Shape Optimization |
| _reader | Amplitude |
| _reader | Field |
| _reader | Export |
| _reader | Units |
| _reader | API Documentation |
| _reader | Analyze multi-body contact. Use when user mentions parts touching, friction between surfaces, bolt-plate contact, press fit, or assembly with contact. |
| _reader | Complete workflow for coupled thermomechanical analysis. Use when user mentions thermal stress, thermal expansion, or temperature causing deformation. |
| _reader | Complete workflow for static structural analysis. Use when analyzing stress, displacement, or reaction forces under constant loads. For strength and stiffness evaluation. |
| _reader | Complete workflow for dynamic analysis. Use when user mentions impact, crash, drop test, transient, or time-varying response. Handles explicit and implicit dynamics. |
| _reader | Workflow for fatigue and durability analysis - cycle counting, damage accumulation, and fatigue life prediction. |
| _reader | Complete workflow for heat transfer analysis - steady-state and transient thermal. Use when user asks about temperature distribution, conduction, convection, or heat flow. |
| _reader | Complete workflow for modal/frequency analysis - extract natural frequencies and mode shapes. Use for vibration analysis and resonance avoidance. |
| _reader | Deep integration with finite element analysis tools for structural simulation across static, dynamic, and nonlinear domains |
| _reader | > |
| _reader | Define contact and interactions - contact pairs, tie constraints, connectors. Use when user mentions contact, friction, tie, parts touching, or bonded surfaces. |
| _reader | Generate finite element meshes. Use when user mentions mesh, elements, nodes, refine mesh, mesh size, or asks about element types like C3D8R, C3D10, S4R. |
| _reader | Create and manipulate Abaqus geometry - parts, sketches, extrusions, CAD import. Use for any geometry creation task including box, cylinder, or STEP/IGES import. |
| _reader | Define material properties for FEA models. Use when user mentions steel, aluminum, Young's modulus, elastic, plastic, density, or asks about material properties. |
| _reader | Define analysis steps and procedures. Use when user mentions static analysis, dynamic step, frequency analysis, heat transfer step, or asks about analysis type, time increments, or nlgeom. |
| _reader | Define time-varying amplitudes. Use when user mentions ramp, time-varying, cyclic, pulse, or gradually increasing loads. Does NOT handle static constant loads. |
| _reader | Apply forces and pressures to structures. Use when user asks to apply a force, add pressure, put a load on, or mentions gravity, point loads, or distributed forces. |
| _reader | Define boundary conditions - fixed supports, displacements, symmetry. Use when user mentions fixed, pinned, clamped, supported, or constrained. Does NOT handle loads or forces. |
| _reader | Define initial conditions and predefined fields. Use when user mentions initial temperature, pre-stress, residual stress, or import from previous analysis. |
| _reader | Configure output requests - field outputs, history outputs. Use when user asks what results to save, output variables, reduce output file size, or history output. |
| _reader | Download and manage abqpy API documentation. Use when user asks about API documentation, API reference, or downloading Abaqus docs. |
| _reader | Optimize fillet/notch geometry. Use when user mentions stress concentration, fillet optimization, reshaping surfaces, or reducing peak stress. Moves surfaces only. |
| _reader | Configure Tosca optimization. Use when user mentions design response, objective function, optimization constraint, or SIMP penalty. Base module for topology/shape optimization. |
| _reader | Complete workflow for topology optimization using Tosca. Use to minimize weight while maintaining stiffness. Requires full Abaqus license (not Learning Edition). |
| _reader | Master skill for Abaqus FEA scripting. Use for any finite element analysis, topology optimization, or Abaqus Python scripting task. Routes to appropriate specialized skills. |
| _reader | "Master skill for composite curing simulation with mold contact, friction, temperature, and Model Change springback in Abaqus. Invoke when user asks for curing simulation, springback analysis, composite layup with mold, or UMAT subroutine for composites. Routes to specialized sub-skills." |
| _reader | |
| _reader | |
| _reader | |
| _reader | "Define composite layup with ply angles, thickness, and count. Invoke when user asks to change ply angles, modify layup, or adjust ply count for curing simulation." |
| _reader | "Generate through-thickness mesh for composite curing simulation. Invoke when user needs C3D8 solid elements, composite mesh, or through-thickness element layout." |
| _reader | "Create mold/tool geometry for composite curing simulation. Invoke when user needs to set up mold part, tool surfaces, or mold-composite contact geometry." |
| _reader | "Define contact pairs and friction for composite curing simulation: mold-composite contact (S1↔S4+S6), temperature-dependent friction (0.45→0.2→0.169), HARD contact property. Invoke when setting up contact, friction, or mold interaction in curing models." |
| _reader | |
| _reader | |
| _reader | "Define boundary conditions for composite curing simulation: mold contact constraints (TOOL U1=0, U2=0), springback Set-2 constraints, and Model Change demolding. Invoke when setting up BCs, constraints, or boundary conditions for curing models with mold." |
| _reader | |
| _reader | "Master skill for composite curing simulation with mold contact, friction, temperature, and Model Change springback in Abaqus. Routes to appropriate specialized skills." |
| _reader | |
| _reader | |
| _reader | |
| _reader | |
| _reader | Read analysis results. Use when user asks about maximum stress, extracting displacements, reaction forces, or exporting results. Post-processes ODB files. |
| _reader | Export Abaqus geometry and results. Use when user mentions exporting to STL, STEP, CSV, or generating input files for external use. |
| _reader | Create and manage Abaqus jobs. Use when user asks to run the analysis, submit the job, execute the model, or generate input file. |
| _skill_list | Complete list of all available Abaqus skill resources with descriptions. |
TDQS
Scored across 110 tools
The set contains explicit wrappers/duplicates such as run_python/execute_script, inspect_odb/get_odb_info, and capture_viewport/get_viewport_image, plus overlapping tools like check_silent_failures/check_model_integrity and monitor_job_status/diagnose_job. Even with good individual descriptions, an agent will struggle to tell which tool is the intended one.
Tool names are overwhelmingly snake_case and follow a consistent verb_noun pattern such as create_*, list_*, get_*, set_*, and check_*. Minor deviations like the bare 'ping', compatibility wrapper names, and _exp suffixes keep this from being a perfect 5.
110 tools is far beyond the calibrated extreme-mismatch threshold of 50+. The surface includes several near-duplicate and subset tools that should be merged, making the overall tool count excessive for effective agent selection.
The workflow coverage is broad: parts, materials, meshes, steps, loads, BCs, contacts, job submission, diagnosis, ODB extraction, and reporting are all present. However, nearly every create_* entity lacks corresponding update/delete tools, so iterative correction requires the generic run_python escape hatch rather than a complete structured lifecycle.