Skip to main content
Glama
mdvaleed7

ETABS MCP Server

by mdvaleed7

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
etabs_get_statusA

Get the current ETABS connection status, model filename, and lock state.

Returns JSON with: connected (bool), model_file (str), model_is_locked (bool). Use this tool first to verify ETABS is running before calling other tools.

etabs_new_modelA

Create a new ETABS model, optionally from a template.

Args: units: Unit system. One of: lb_in_F, lb_ft_F, kip_in_F, kip_ft_F, kN_mm_C, kN_m_C, kgf_mm_C, kgf_m_C, N_mm_C, N_m_C, Ton_mm_C, Ton_m_C, kN_cm_C, kgf_cm_C, N_cm_C, Ton_cm_C. template: Template type — "blank", "steel_deck", or "grid_only". num_stories: Number of stories (for templates). typical_story_height: Typical story height in current units. bottom_story_height: Bottom story height in current units. num_bays_x: Number of bays in X direction (for templates). num_bays_y: Number of bays in Y direction (for templates). bay_width_x: Bay width in X direction in current units. bay_width_y: Bay width in Y direction in current units.

Returns: Success confirmation with model info.

etabs_open_modelA

Open an existing ETABS model (.edb) file.

Args: file_path: Full path to the .edb model file (e.g. "C:/Models/Building.edb").

Returns: Success confirmation.

etabs_save_modelA

Save the current ETABS model.

Args: file_path: Full path to save as (e.g. "C:/Models/Building.edb"). Leave empty to save to the current file.

Returns: Success confirmation with saved path.

etabs_close_modelA

Close the current ETABS model without exiting the application.

Args: save_first: If True, save the model before closing.

Returns: Success confirmation.

etabs_set_unitsA

Set the active display units for the ETABS model.

Args: units: Unit system. One of: lb_in_F, lb_ft_F, kip_in_F, kip_ft_F, kN_mm_C, kN_m_C, kgf_mm_C, kgf_m_C, N_mm_C, N_m_C, Ton_mm_C, Ton_m_C, kN_cm_C, kgf_cm_C, N_cm_C, Ton_cm_C.

Returns: Confirmation of the unit change.

etabs_add_pointA

Add a point (joint) object at the specified coordinates.

Args: x: X coordinate in current units. y: Y coordinate in current units. z: Z coordinate in current units. name: Optional user-defined name. ETABS assigns a default if blank. csys: Coordinate system name (default "Global").

Returns: JSON with the assigned point name.

etabs_add_frameA

Add a frame object (beam, column, brace) between two points by coordinates.

Args: x1: X coordinate of start point. y1: Y coordinate of start point. z1: Z coordinate of start point. x2: X coordinate of end point. y2: Y coordinate of end point. z2: Z coordinate of end point. prop_name: Frame section property name. Use "Default" for auto-assigned. name: Optional user-defined name for the frame. csys: Coordinate system name (default "Global").

Returns: JSON with the assigned frame name.

etabs_add_areaA

Add an area object (slab, wall, deck) defined by corner coordinates.

The coordinates should be ordered clockwise or counter-clockwise. Must have at least 3 points.

Args: x_coords: List of X coordinates for each corner. y_coords: List of Y coordinates for each corner. z_coords: List of Z coordinates for each corner. prop_name: Area section property name. Use "Default" for auto-assigned. name: Optional user-defined name for the area. csys: Coordinate system name (default "Global").

Returns: JSON with the assigned area name.

etabs_get_all_pointsA

Get a list of all point/joint objects in the model with their coordinates.

Returns: JSON array of points, each with name, x, y, z coordinates.

etabs_get_all_framesA

Get a list of all frame objects in the model with connectivity and section info.

Returns: JSON array of frames, each with name, start point, end point, section name.

etabs_get_all_areasA

Get a list of all area objects in the model with connectivity and section info.

Returns: JSON array of areas, each with name, number of points, point names, section.

etabs_delete_objectA

Delete a named object from the model.

Args: object_type: Type of object — "point", "frame", "area", or "link". name: Name of the object to delete.

Returns: Success confirmation.

etabs_get_storiesA

Get all story definitions in the model.

Returns: JSON array of stories with name, elevation, height, is_master, and similar_to.

etabs_set_storiesA

Define the building stories. Stories are listed from bottom to top.

Args: story_names: List of story names, bottom to top (e.g. ["Base", "Story1", "Story2"]). story_heights: List of story heights for each story (same length). bottom_elevation: Elevation of the base (default 0.0).

Returns: Confirmation with the story definitions.

etabs_get_grid_systemsA

Get all grid system names defined in the model.

Returns: JSON array of grid system names.

etabs_set_grid_systemA

Define or modify a Cartesian grid system.

Args: name: Name of the grid system. x_spacings: List of X-direction grid spacings (e.g. [6.0, 6.0, 6.0] for 3 bays). y_spacings: List of Y-direction grid spacings. x_grid_ids: Optional grid line IDs for X (default: A, B, C, ...). y_grid_ids: Optional grid line IDs for Y (default: 1, 2, 3, ...).

Returns: Confirmation with the grid system definition.

etabs_define_materialA

Define a new material property.

Args: name: Name for the material (e.g. "4000Psi", "A992Fy50"). material_type: One of: Steel, Concrete, NoDesign, Aluminum, ColdFormed, Rebar, Tendon, Masonry. region: Design region (default "United States"). standard: Standard name (e.g. "ASTM A992" for steel, "ACI 318" for concrete). grade: Grade/class (e.g. "Grade 50", "f'c 4000 psi").

Returns: Confirmation of the material definition.

etabs_get_materialsA

Get a list of all defined materials in the model.

Returns: JSON array of material names and types.

etabs_define_frame_sectionA

Define a frame section property (beam/column cross-section).

For Rectangular and Circular shapes, only depth and width are needed. For I, Tee, Channel shapes, provide flange and web dimensions.

Args: name: Section name (e.g. "W14X22", "C24x12", "Beam24x12"). material: Material name (must be previously defined). shape: Section shape — Rectangular, Circular, I, Tee, Channel, Box, Pipe, Angle. depth: Total depth (or diameter for circular). width: Total width (or diameter for Pipe). flange_width_top: Top flange width (for I, Tee, Channel). flange_thickness_top: Top flange thickness. web_thickness: Web thickness. flange_width_bot: Bottom flange width (for I). flange_thickness_bot: Bottom flange thickness (for I).

Returns: Confirmation with section details.

etabs_get_frame_sectionsB

Get a list of all defined frame section properties.

Returns: JSON array of section names.

etabs_define_area_sectionA

Define an area/shell section property (for slabs, walls, decks).

Args: name: Section name (e.g. "Slab8in", "Wall12in"). material: Material name (must be previously defined). section_type: "Shell-Thin", "Shell-Thick", "Membrane", "Plate-Thin", "Plate-Thick". thickness: Shell thickness in current units. shell_type: 1=Shell-Thin, 2=Shell-Thick, 3=Plate-Thin, 4=Plate-Thick, 5=Membrane, 6=Shell-Layered.

Returns: Confirmation with section details.

etabs_get_area_sectionsA

Get a list of all defined area/shell section properties.

Returns: JSON array of area section names.

etabs_define_rebarA

Define a rebar size.

Args: name: Rebar name (e.g. "#4", "#8", "T10"). area: Cross-sectional area in current units. diameter: Bar diameter in current units.

Returns: Confirmation of the rebar definition.

etabs_assign_frame_sectionA

Assign a frame section property to a frame object.

Args: name: Frame object name, or group name if item_type is "Group". section_name: Name of the frame section to assign. item_type: "Object" (single object), "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_frame_releasesA

Set end releases (moment releases / pins) for a frame object.

Each release list has 6 booleans for [P, V2, V3, T, M2, M3]:

  • True = released (free/pin), False = fixed. Common patterns:

  • Pin at start: [False, False, False, False, False, True]

  • Pin at both ends: set both start and end M3 to True.

Args: name: Frame object name. start_release: 6-element list of bools for I-end (start) releases [P, V2, V3, T, M2, M3]. end_release: 6-element list of bools for J-end (end) releases. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_area_sectionA

Assign an area/shell section property to an area object.

Args: name: Area object name, or group name if item_type is "Group". section_name: Name of the area section to assign. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_diaphragmA

Assign a diaphragm constraint to an area or point object.

Args: name: Object name or group name. diaphragm_name: Name of the diaphragm to assign. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_pier_labelB

Assign a pier label to an area or line object (for wall piers).

Args: name: Object name. pier_name: Name of the pier label. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_spandrel_labelC

Assign a spandrel label to an area or line object (for wall spandrels).

Args: name: Object name. spandrel_name: Name of the spandrel label. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_frame_stiffness_modifiersA

Apply cracked-section stiffness modifiers to one or more frame objects (beams, columns, braces).

Pick a target with either names (explicit list), group (named ETABS group), or leave both blank to apply to ALL frames.

Pick a preset for ACI defaults, OR supply individual modifier values. If both are given, individual values override the preset.

Presets (ACI 318-19 Table 6.6.3.1.1(a)):

  • "aci_beam" I = 0.35 Ig, torsion = 0.20

  • "aci_beam_conservative" I = 0.25 Ig, torsion = 0.10

  • "aci_column" I = 0.70 Ig, A = 0.70 Ag

  • "aci_column_conservative" I = 0.50 Ig

  • "aci_spandrel" I = 0.20 Ig (coupling beams)

  • "aisc_beam" unmodified (steel)

Args: names: List of frame object names (e.g. ["B1", "B2"]). None/empty → apply to group, or to all frames if group is also blank. group: Apply to all frames in this named ETABS group. preset: One of the preset names above (case-insensitive). area: Axial stiffness modifier (overrides preset). m2: Minor-axis bending modifier (overrides preset). m3: Major-axis bending modifier (overrides preset). torsion:Torsional stiffness modifier (overrides preset). mass: Mass modifier (default 1.0 if neither preset nor arg given). weight: Self-weight modifier (default 1.0).

Returns: JSON with the modifier values applied and the number of frames updated.

etabs_assign_area_stiffness_modifiersA

Apply cracked-section stiffness modifiers to one or more area objects (walls, slabs, decks).

Pick a target with names, group, or leave both blank for ALL areas.

Presets (ACI 318-19 Table 6.6.3.1.1(a)):

  • "aci_wall" I = 0.70 Ig, A = 0.70 Ag (uncracked)

  • "aci_wall_cracked" I = 0.35 Ig, A = 0.35 Ag

  • "aci_slab" I = 0.25 Ig (flat plate / two-way slab)

  • "aci_slab_joist" I = 0.50 Ig (slab with joists / ribs)

  • "aci_drop_panel" I = 0.50 Ig

  • "steel_deck" unmodified

Args: names: List of area object names. None → group, or all areas. group: Named ETABS group. preset: One of the preset names above (case-insensitive). f11, f22, f12: Membrane (in-plane) stiffness modifiers. m11, m22, m12: Bending (out-of-plane) stiffness modifiers. v13, v23: Transverse shear modifiers.

Returns: JSON with the modifier values applied and the number of areas updated.

etabs_apply_aci_stiffness_modifiersA

One-shot convenience: apply ACI 318 stiffness modifiers to beams, columns, walls, and slabs in a single tool call.

For each category, supply either an explicit *_names list OR a named ETABS *_group. Any category with neither is skipped.

Defaults (ACI 318-19 Table 6.6.3.1.1(a)):

  • Beams → I = 0.35 Ig, torsion = 0.20

  • Columns → I = 0.70 Ig, A = 0.70 Ag

  • Walls → I = 0.70 Ig, A = 0.70 Ag (uncracked)

  • Slabs → I = 0.25 Ig

Example — apply to all members via groups: beam_group="BEAMS", column_group="COLUMNS", wall_group="WALLS", slab_group="SLABS"

Example — apply to specific objects: beam_names=["B1","B2"], column_names=["C1","C2","C3"], wall_names=["W1"], slab_names=["S1","S2"]

Args: beam_names / column_names / wall_names / slab_names: Explicit lists of object names per category. beam_group / column_group / wall_group / slab_group: Named ETABS groups to apply each preset to. beam_preset / column_preset / wall_preset / slab_preset: Override the default ACI preset for any category. (See etabs_assign_frame_stiffness_modifiers and etabs_assign_area_stiffness_modifiers for the full preset list.)

Returns: JSON summary: per-category count + preset, plus grand totals.

etabs_define_load_patternA

Define a new load pattern (e.g. Dead, Live, Wind, Quake).

Args: name: Name of the load pattern. load_type: Type of load (Dead, Live, Wind, Quake, Snow, etc.). self_weight_multiplier: Self-weight multiplier (typically 1.0 for Dead, 0.0 for others).

Returns: Confirmation.

etabs_get_load_patternsA

Get all defined load patterns in the model.

Returns: JSON array of load pattern names.

etabs_define_load_caseA

Define a new load case.

Args: name: Name of the load case. case_type: One of: "LinearStatic" — standard gravity/wind/static case "Modal" — Eigenvector modal case (use etabs_define_modal_case for full control) "ResponseSpectrum" — RSA case (use etabs_define_response_spectrum for full IS 1893 / ASCE 7 setup) "LinearHistory" — linear time history "NonlinearStatic" — pushover / nonlinear static modal_case: For ResponseSpectrum cases only — name of the modal case to source mode shapes from (default "MODAL").

Returns: Confirmation.

etabs_define_load_comboA

Define a new load combination.

Args: name: Name of the load combination. combo_type: 0=LinearAdd, 1=Envelope, 2=AbsoluteAdd, 3=SRSS, 4=RangeAdd. load_names: List of load case or pattern names to include. scale_factors: List of scale factors corresponding to load_names.

Returns: Confirmation.

etabs_assign_point_loadA

Assign point loads/moments to a joint object.

Args: name: Point object name. load_pattern: Name of the load pattern. f1, f2, f3: Forces in 1, 2, 3 (X, Y, Z) directions. m1, m2, m3: Moments about 1, 2, 3 axes. replace: If True, replace existing loads; if False, add to them. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_frame_loadA

Assign a uniform or trapezoidal distributed load to a frame object.

For uniform load, set w1 = w2, dist_1 = 0.0, dist_2 = 1.0.

Args: name: Frame object name. load_pattern: Name of the load pattern. w1: Start load value. w2: End load value. dir: Load direction. 1=Local1, 2=Local2, 3=Local3, 4=X, 5=Y, 6=Z, 10=Gravity. dist_1: Distance to start of load. dist_2: Distance to end of load. rel_dist: If True, distances are relative (0 to 1). If False, absolute. replace: If True, replace existing loads. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_assign_area_loadA

Assign a uniform surface load to an area object.

Args: name: Area object name. load_pattern: Name of the load pattern. value: Load value (force per area). dir: Load direction. 1=Local1, 2=Local2, 3=Local3, 4=X, 5=Y, 6=Z, 10=Gravity. replace: If True, replace existing loads. item_type: "Object", "Group", or "SelectedObjects".

Returns: Confirmation.

etabs_run_analysisA

Run the structural analysis for all active load cases.

Note: The model must be saved (have a file path) before running analysis.

Returns: Confirmation of analysis completion.

etabs_get_analysis_statusA

Get the status of all analysis cases.

Returns: JSON array of load cases and their status (e.g. "Finished", "Not Run").

etabs_set_active_dofA

Set the active degrees of freedom for the analysis (e.g. 3D, 2D X-Z).

For 3D space: all True. For 2D X-Z plane: u1=True, u3=True, r2=True, others False.

Args: u1, u2, u3: Active translations (X, Y, Z). r1, r2, r3: Active rotations (about X, Y, Z).

Returns: Confirmation.

etabs_delete_resultsA

Delete all analysis results, unlocking the model.

Returns: Confirmation.

etabs_setup_resultsA

Configure which load cases/combos to include when extracting results.

MUST be called before getting displacements, forces, or reactions if you want to filter the results.

Args: case_names: List of load cases to select. combo_names: List of load combos to select.

Returns: Confirmation.

etabs_get_joint_displacementsA

Get joint displacements for a specified point or group.

Ensure analysis has been run and results are set up.

Args: name: Name of the point or group. item_type: "Object", "Group", or "SelectedObjects".

Returns: JSON array of displacements per load case/combo.

etabs_get_joint_reactionsA

Get joint reactions (support forces) for a specified point or group.

Ensure analysis has been run and results are set up.

Args: name: Name of the point or group. item_type: "Object", "Group", or "SelectedObjects".

Returns: JSON array of reactions per load case/combo.

etabs_get_frame_forcesA

Get frame internal forces (P, V2, V3, T, M2, M3).

Ensure analysis has been run and results are set up.

Args: name: Name of the frame or group. item_type: "Object", "Group", or "SelectedObjects".

Returns: JSON array of frame forces.

etabs_get_base_reactionsA

Get global base reactions for the model.

Returns: JSON array of base reactions per load case.

etabs_define_modal_caseA

Define a modal analysis load case (Eigenvector or Ritz).

IS 1893:2016 Cl. 7.7.5a requires at least enough modes to capture 90% of the total seismic mass in each principal direction. Recommended: set max_modes = 3 × number of storeys, minimum 12.

Args: case_name: Name for the modal load case (default "MODAL"). modal_type: "Eigenvector" or "Ritz" (Ritz is faster for RSA). max_modes: Maximum number of modes to compute. min_modes: Minimum modes required. shift_value: Frequency shift (rad²/s²) for eigenvalue extraction; 0.0 for typical buildings.

Returns: JSON confirmation with case name and parameters.

etabs_define_response_spectrumA

Define a multi-directional Response Spectrum Analysis (RSA) load case.

Per IS 1893:2016 Cl. 7.7.5:

  • Modal combination: CQC (preferred over SRSS for closely-spaced modes)

  • Directional combination: SRSS of X and Y

  • Accidental eccentricity: ±5% of floor plan dimension (ecc_ratio=0.05)

Per ASCE 7-22 Sec. 12.9.1: same rules apply.

The scale factors encode (Z/2R) × I × g for IS 1893 or (SD1 / R / Ie) × g for ASCE 7. Compute them before calling this tool or use etabs_set_is1893_seismic_params which calculates them automatically.

Args: case_name: Name for the RSA load case (e.g. "EQX", "RSX"). modal_case: Name of the modal case supplying mode shapes (default "MODAL"). direction_x: Apply spectrum in the global X direction. direction_y: Apply spectrum in the global Y direction. direction_z: Apply spectrum in the vertical Z direction. scale_x: Scale factor for X spectrum (Z·I·g / 2R for IS 1893). scale_y: Scale factor for Y spectrum. scale_z: Scale factor for Z spectrum (typically 0.5 × horizontal scale). modal_combo: Modal combination rule: "CQC" (recommended) or "SRSS". dir_combo: Directional combination: "SRSS" or "ABS". ecc_ratio: Accidental eccentricity ratio (default 0.05 = 5%). func_name_x: Name of the spectral function for X (must be pre-defined). func_name_y: Name of the spectral function for Y. func_name_z: Name of the spectral function for Z (empty = not used).

Returns: JSON confirmation with RSA case parameters.

etabs_get_modal_resultsA

Get modal analysis results: periods, frequencies, and mass participation ratios.

IS 1893:2016 Cl. 7.7.5a: The sum of modal masses considered shall be at least 90% of the total seismic mass. Verify the cumulative UX and UY columns against this criterion.

Args: modal_case: Name of the modal load case (default "MODAL").

Returns: JSON array of modes, each with: - mode_number, period_s, frequency_hz - mass_ratio_UX, mass_ratio_UY, mass_ratio_UZ (per-mode fractions) - cum_UX, cum_UY, cum_UZ (cumulative fractions) - mass_ratio_RX, mass_ratio_RY, mass_ratio_RZ (rotational)

etabs_get_story_driftsA

Get inter-storey drift ratios and check IS 1893:2016 / ASCE 7-22 limits.

IS 1893:2016 Cl. 7.11.1: Maximum storey drift under seismic loads (with R = 1.0, i.e. on the Design Basis Earthquake forces) shall not exceed 0.004 × storey height (= h/250).

ASCE 7-22 Table 12.12-1: Δa / hsx (varies 0.010 to 0.025 by risk category and structure type).

Args: case_or_combo: Load case or combo name. Empty string = all selected cases. direction: "X", "Y", or "Both". check_is1893: If True, flag storeys exceeding IS 1893 Cl. 7.11.1 limit of 0.004 (= h/250).

Returns: JSON array of storeys, each with drift ratio and code-check result.

etabs_get_story_forcesA

Get storey forces (shear, overturning moment, axial) for each floor.

Used to verify base shear distribution meets IS 1893:2016 Cl. 7.6.3 (parabolic distribution of seismic forces with height).

Args: case_or_combo: Load case or combo name. Empty = use currently selected.

Returns: JSON array of story forces including: - story, load_case - P (axial), VX, VY (storey shear), MX, MY (overturning moment), MZ

etabs_set_is1893_seismic_paramsA

Compute and report IS 1893:2016 seismic scale factors for RSA cases.

Calculates the scale factor SF = (Z/2) × (I/R) × (g/Sa_g_at_T1) for use in etabs_define_response_spectrum.

The full equivalent static base shear: VB = Ah × W where Ah = (Z/2) × (Sa/g) × (I/R)

For response spectrum analysis the ETABS scale factor applied to the spectrum function is typically: g × I / R (when the spectrum function is already in units of Sa/g, i.e. normalized). ETABS multiplies the function value by scale_factor to get spectral acceleration in length/time² units.

Args: load_case_x: Name of RSA case in X direction (e.g. "EQX"). load_case_y: Name of RSA case in Y direction (e.g. "EQY"). zone: IS 1893 seismic zone "II", "III", "IV", or "V". importance_factor: I — importance factor (1.0 ordinary, 1.2 important, 1.5 critical). IS 1893:2016 Table 8. response_reduction: R — response reduction factor. IS 1893:2016 Table 9. Typical: OMRF=3.0, SMRF=5.0. soil_type: Site type "I" (hard), "II" (medium), "III" (soft). IS 1893:2016 Table 1. damping_ratio: Critical damping ratio (default 0.05 = 5%). IS 1893:2016 Cl. 6.4.6. structure_type: "RC_frame", "Steel_frame", "Shear_wall", "Composite". Used for informational note only. modal_case: Name of the modal case. apply_scale_to_rsa: If True, returns ready-to-use ETABS scale factor (in m/s² for SI kN_m models). Set False for kip_ft models.

Returns: JSON with zone factor Z, Ah, scale factors, and IS 1893 clause references.

etabs_check_is1893_driftA

Run IS 1893:2016 Cl. 7.11.1 inter-storey drift compliance check.

Retrieves drifts for both seismic directions and classifies each storey as PASS/FAIL against the 0.004h limit (= h/250).

IS 1893:2016 Cl. 7.11.1: The storey drift in any storey due to the minimum specified design lateral force, with partial load factor of 1.0, shall not exceed 0.004 times the storey height (h/250).

Args: rsa_case_x: RSA load case name for X seismic (e.g. "EQX"). rsa_case_y: RSA load case name for Y seismic (e.g. "EQY"). story_heights_m: Optional dict of {story_name: height_m} to compute absolute drift in mm. If None, uses drift ratio only.

Returns: Tabulated compliance report with PASS/FAIL per storey per direction.

etabs_run_steel_designA

Run the steel frame design check.

Returns: Confirmation.

etabs_run_concrete_designA

Run the concrete frame design check.

Returns: Confirmation.

etabs_get_design_results_summaryA

Get a summary of design results for frames.

Args: design_type: "Steel" or "Concrete". name: Object or group name. Leave empty for all objects. item_type: "Object", "Group", or "SelectedObjects".

Returns: JSON array of design summary results (e.g., PMM ratio).

etabs_set_design_codeA

Set the design code for steel or concrete design.

Args: design_type: "Steel" or "Concrete". code_name: The exact string name of the code (e.g., "AISC 360-16", "ACI 318-19").

Returns: Confirmation.

etabs_get_available_tablesA

Get a list of all available database tables in the ETABS model.

Returns: JSON array of table names. Use these names in get_table_data.

etabs_get_table_dataA

Get the contents of a specific database table.

Args: table_key: The internal key of the table (from get_available_tables). group_name: Optional group name to filter results (default "" means all).

Returns: JSON object containing table fields and row data.

etabs_set_table_dataA

Set data in a specific database table (for interactive editing).

Note: You must call etabs_apply_table_edits after setting data for it to take effect.

Args: table_key: The internal key of the table. fields: List of field keys (column names). data_rows: List of rows, where each row is a list of string values corresponding to the fields.

Returns: Confirmation.

etabs_apply_table_editsA

Apply all pending database table edits to the model.

Returns: Confirmation.

etabs_select_objectsA

Select objects by name in the ETABS UI.

Args: name: Name of the object to select. object_type: "Point", "Frame", "Area", or "Link". clear_previous: If True, clears existing selection before selecting.

Returns: Confirmation.

etabs_get_selectedA

Get a list of currently selected objects.

Returns: JSON array of selected object names and types.

etabs_define_groupB

Define a new group.

Args: group_name: Name of the group. color: Color for the group (-1 for auto). specified_for_selection: Whether group is available for selection. specified_for_section_cut: Whether group is available for section cuts. specified_for_steel_design: Whether group is available for steel design. specified_for_concrete_design: Whether group is available for concrete design.

Returns: Confirmation.

etabs_add_to_groupA

Add or remove an object from a group.

Args: name: Name of the object. group_name: Name of the group. object_type: "Point", "Frame", "Area", or "Link". remove: If True, removes the object from the group instead of adding.

Returns: Confirmation.

etabs_call_apiA

Call ANY method in the ETABS API that isn't covered by other tools.

This is a powerful escape hatch to access all 1,300+ methods in the API.

Examples:

  • interface_path="FrameObj", method_name="GetLabelFromName", arguments=["F1", "", ""]

  • interface_path="Results.Setup", method_name="GetCaseSelectedForOutput", arguments=["DEAD", False]

  • interface_path="", method_name="GetModelFilename", arguments=[] (uses SapModel directly)

Args: interface_path: Dot-separated path to the interface relative to SapModel. Leave empty string to call methods directly on SapModel. method_name: Name of the method to call. arguments: List of arguments to pass to the method. COM 'ref' and 'out' parameters must still be provided (usually as dummy values or empty arrays).

Returns: JSON representation of the COM method's raw return tuple. Typically the first element is the return code (0 = success).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mdvaleed7/ETABS-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server