Mechanical MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| connect_to_mechanicalB | Connect to ANSYS Mechanical via gRPC. Args: port: gRPC port reported by Workbench (changes every session) |
| disconnect_from_mechanicalA | Disconnect from Mechanical, leaving the session running. Args: shutdown (True also closes Mechanical itself - unsaved work is lost) |
| check_mechanical_connectionB | Check connection status. |
| get_model_infoB | Get model info: bodies, named selections, analyses. |
| list_materialsB | List all materials in Engineering Data. |
| assign_materialC | Assign material to a body. Args: body_name, material_name |
| set_mesh_element_sizeC | Set global mesh element size in mm. Args: element_size_mm |
| generate_meshB | Generate mesh. Visible live in Mechanical GUI. |
| get_mesh_statisticsB | Get mesh node and element counts. |
| add_fixed_supportC | Add Fixed Support to a named selection. Args: named_selection, analysis_index |
| add_forceC | Add Force load in Newtons. Args: named_selection, fx_n, fy_n, fz_n, analysis_index |
| add_pressureC | Add Pressure load in Pascals. Args: named_selection, magnitude_pa, analysis_index |
| list_boundary_conditionsC | List all boundary conditions. Args: analysis_index |
| solve_analysisA | Solve the analysis. Progress visible in GUI. Returns solver messages. Args: analysis_index, wait (False submits and returns at once - then poll get_solve_status; use it for solves longer than the client call timeout) |
| get_solve_statusC | Get solve status. Args: analysis_index |
| add_total_deformation_all_modesC | Add Total Deformation for all modal modes. Args: num_modes, analysis_index |
| add_total_deformationC | Add Total Deformation result. Args: mode (0=not modal), analysis_index |
| get_modal_frequenciesA | Get natural frequencies from a modal analysis. Frequencies are only readable through result objects. When none exist the tool used to return an empty list with ok:true, which reads as "this model has no modes" rather than "nobody asked for the results yet". Args: analysis_index, add_results_if_missing (add Total Deformation results and evaluate them when the solution has none) |
| generate_reportC | Generate simulation report. Args: output_path, analysis_index, fmt (docx or txt) |
| run_mechanical_scriptC | Run custom Python script inside Mechanical ACT API. Args: script |
| list_named_selectionsB | List all named selections with face/body counts. |
| delete_named_selectionC | Delete a named selection by name. Args: name |
| suppress_bodiesA | Suppress or unsuppress bodies by name prefix (empty = all bodies). Args: name_prefix, suppress (True=suppress, False=unsuppress) |
| list_point_massesA | List all Point Masses with CG, mass, pinball and scoped named selection. |
| add_frictionless_supportC | Add Frictionless Support. Args: named_selection, analysis_index |
| add_displacementC | Add Displacement BC. Pass None for a DOF to leave it free. Args: named_selection, x_mm, y_mm, z_mm (None=free), analysis_index |
| add_remote_displacementC | Add Remote Displacement BC. Pass None for a DOF to leave it free. Args: named_selection, x_mm, y_mm, z_mm, rot_x_deg, rot_y_deg, rot_z_deg, analysis_index |
| add_standard_gravityC | Add Standard Earth Gravity. Direction vector defaults to -Y (down). Args: analysis_index, x_component, y_component, z_component (unit vector) |
| add_remote_forceC | Add Remote Force load. Args: named_selection, fx_n, fy_n, fz_n, analysis_index |
| add_momentC | Add Moment load in N·m. Args: named_selection, mx_nm, my_nm, mz_nm, analysis_index |
| add_equivalent_stressC | Add Equivalent (von Mises) Stress result, optionally scoped to a named selection. Args: named_selection (empty = whole model), analysis_index |
| add_directional_deformationC | Add Directional Deformation result. Args: axis (X/Y/Z), named_selection, analysis_index |
| add_principal_stressC | Add Principal Stress result. Args: which (max/mid/min), analysis_index |
| add_stress_toolC | Add Stress Tool (safety factor, stress ratio) using material limits. Args: analysis_index |
| add_reaction_forceC | Add Force Reaction probe at a named selection. Args: named_selection, analysis_index |
| convert_prefix_to_point_massB | Convert all unsuppressed bodies whose name starts with body_name_prefix to a combined Point Mass, then create a Named Selection of all coplanar attachment faces on the nearest structural surface. No ACT extensions required. Args: body_name_prefix, proximity_multiplier (default 3.0) |
| convert_part_to_point_massB | Convert all unsuppressed bodies inside a named Part to a combined Point Mass, then create a Named Selection of all coplanar attachment faces on the nearest structural surface. No ACT extensions required. Args: part_name, proximity_multiplier (default 3.0) |
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 37 tools
Most tools target distinct resources and actions across connection, modeling, boundary conditions, solving, and results. A few result-probe tools are conceptually close (e.g. add_total_deformation vs add_total_deformation_all_modes, add_stress_tool vs add_equivalent_stress), but descriptions generally make the intended use clear.
All tools use snake_case and nearly all follow a verb_noun pattern (add_force, get_model_info, list_materials, generate_mesh). The few deviations, such as run_mechanical_script or solve_analysis, remain readable and consistent with the overall convention.
37 tools is a heavy surface for an MCP server and exceeds the rubric's 25+ threshold for being too many. While ANSYS Mechanical is broad, several result and BC tools could be consolidated or handled through the existing script escape hatch.
The server covers the main simulation lifecycle: connect, inspect model, assign materials, mesh, add loads/BCs, solve, add results, and generate reports. Notable gaps remain in generic create/update/delete for named selections and boundary conditions, but run_mechanical_script provides a workaround for many missing operations.