{"name":"io.github.Moha2005269/etabs-mcp","slug":"moha2005269-etabs-mcp","title":"ETABS MCP","description":"Agentic MCP server for CSI ETABS v22+: model, load, analyse, design and inspect structures.","url":"https://mcp.market/server/moha2005269-etabs-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":38,"stars":20,"forks":1,"downloads_week":129,"last_push_at":"2026-10-18T00:42:22.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Moha2005269/etabs-mcp","website":null,"version":"0.3.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"etabs-mcp","version":"0.3.2","transport":{"type":"stdio"}}],"tools":[{"name":"etabs_add_areas","description":"Draw floors, slabs and walls from corner points (like Draw > Floor/Wall). Returns new area names.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_add_frames","description":"Draw beams, columns and braces between two points (like Draw > Frame). Joints are created or merged automatically. Returns the ETABS names of the new frames, in input order; failures are listed per item.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_add_points","description":"Add joints at coordinates (existing joints at the same location are reused).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_analysis_status","description":"Per-case analysis status (not run / finished ...), run flags, and whether the model is locked.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_assign_diaphragm","description":"Define a rigid or semi-rigid diaphragm and assign it to the slabs (area objects) on the chosen stories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_assign_label","description":"Assign objects to a group, pier or spandrel label (created if missing), like Assign > ... in ETABS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_assign_loads","description":"Assign loads (Assign > Frame/Shell/Joint Loads): distributed or point loads on frames, uniform loads on areas, and forces/moments on joints. Values are in present units; 'gravity' acts downward (-Z).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_assign_section","description":"Assign a frame section or an area property (Assign > Frame > Section / Shell > Property).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_call_api","description":"Call any ETABS API method. Arguments are validated and converted against the live signature; ByRef values come back in 'outputs'. A non-zero 'ret' means ETABS rejected the call (ok=false).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_call_api_batch","description":"Run several API calls in order in one round trip (for example, define and assign many properties). Each result is reported; with stop_on_error the batch halts at the first failure.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_checkpoint","description":"Save the model and keep a copy as a named checkpoint (an undo point before risky edits). Restore it with etabs_restore_checkpoint. Needs a saved model.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_code_checks","description":"Run the standard post-analysis checks in one call: story drift against the allowable, torsional irregularity, soft story, weight (mass) irregularity, modal mass participation and response-spectrum base shear vs ELF. Each check reports its clause, the governing numbers and pass/fail.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_connect","description":"Connect to ETABS. Other tools connect automatically with mode 'auto', so call this only to choose a specific instance or version, to drive several ETABS instances, or to recover after ETABS was closed. Launching ETABS takes 10-30 s.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_area_section","description":"Define a slab or wall property (Define > Section Properties > Slab/Wall Sections).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_combinations","description":"Define load combinations (Define > Load Combinations) from load cases and other combinations, and/or generate the default design combinations for the active design codes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_frame_section","description":"Define a frame section: parametric concrete/steel shapes, or a steel shape imported from an ETABS section library. Dimensions are in present length units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_load_patterns","description":"Define load patterns (Define > Load Patterns), each optionally with its linear static load case.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_material","description":"Define a material, either from the ETABS library (region + standard + grade, the same lists as the 'Add Material' dialog) or as a custom isotropic material from E, weight and strength.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_response_spectrum","description":"Define an ASCE 7-16 response spectrum function and a response-spectrum load case that uses it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_seismic_load","description":"Define an ASCE 7-16 equivalent-lateral-force seismic load pattern (Define > Load Patterns > Auto Lateral Load). Creates the Quake pattern and its load case.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_define_wind_load","description":"Define an automatic wind load pattern applied to diaphragms (Define > Load Patterns > Auto Lateral Load > Wind). ASCE 7-16 is fully parameterised; other codes take their table fields via 'fields'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_delete_objects","description":"Delete frames, areas or points chosen by name, by group, or the current selection.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_describe_api","description":"Show a method's exact signature (types, ByRef outputs, defaults, enum values, safety level), or list an interface's methods and sub-interfaces, or an enum's values. Reflects the connected ETABS version.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_design_codes","description":"Read, list or change the design codes (Design > ... > View/Revise Preferences). 'list' returns every code this ETABS version supports for steel, concrete, shear wall, slab and composite design.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_design_report","description":"Write an engineering summary in Markdown: model, loads, analysis status, base reactions, modal periods, drifts and the design check with the most critical members. Returns the text and the file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_dialogs","description":"List or close dialogs ETABS has open. A modal dialog blocks the ETABS API, so close leftovers after etabs_menu or a design run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_disconnect","description":"Release the ETABS connection. ETABS keeps running unless close_etabs is true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_edit_table","description":"Edit a model table the way the Interactive Database editor does: read it, change/append/delete rows, then apply. Returns ETABS's import log with error and warning counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_export_model","description":"Export the whole model as ETABS's .e2k text and return it (paged). One read gives the complete definition (stories, grids, materials, sections, objects, assignments, loads, cases), ideal for audits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_find_objects","description":"Find objects by engineering criteria: 'columns on Story3', 'beams longer than 8 m', 'members with D/C over 0.9', 'everything in this box'. Returns names usable by every other tool; can select them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_generate_building","description":"Build a complete regular building in one call: grids, stories, materials, sections, columns, beams, braces or shear walls (with pier labels), slabs, fixed supports, a rigid diaphragm, SDL/LL patterns with slab loads, and default design combinations. Follow with lateral loads (etabs_define_seismic_load ...), then analysis.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_concrete_design","description":"Concrete frame design results (after etabs_run_design(kind='concrete')): required longitudinal and shear reinforcement for beams, PMM ratios and areas for columns, joint shear and beam/column capacity ratios. Areas are in present units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_design_summary","description":"Design results per member: steel demand/capacity ratios with governing combo, or concrete required reinforcement for beams and columns. Worst members first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_results","description":"Read analysis results the way they appear in ETABS tables: base reactions, story drifts and forces, joint displacements/reactions, modal periods and mass ratios, element forces, piers and spandrels. For any other result table use etabs_get_table.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_slab_design","description":"Concrete slab design results (after etabs_run_design(kind='concrete_slab')): design-strip flexure and shear reinforcement, or punching shear checks at columns, worst first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_stories","description":"Story table, top story first: name, elevation, height, master/similar settings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_table","description":"Read any ETABS database table as rows (Display > Show Tables). Values with units are in present units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_get_wall_design","description":"Shear wall design results: piers (reinforcing ratio, D/C, boundary zones, messages) or spandrels (flexural and shear reinforcement), worst first. Run etabs_run_shear_wall_design first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_instances","description":"List the ETABS instances this server drives, switch which one every other tool acts on, or remove one. Typical use: compare two design options side by side, or copy data from one model into another.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_job_status","description":"Status of a background job (analysis or design): running / done / failed, elapsed time, the tail of the ETABS analysis log while it runs, and the full result once done. Never blocks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_job_wait","description":"Wait for a background job to finish, up to timeout_seconds, then report it (same shape as etabs_job_status). Call again if it is still running.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_checkpoints","description":"Checkpoints saved for the open model, newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_installations","description":"List ETABS installations on this machine (v22+ are supported) and ETABS instances that are running now.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_load_definitions","description":"Load patterns (with type and self-weight multiplier), load cases (with type) and combinations (with their cases and scale factors).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_objects","description":"List frames, areas or points with their geometry (in present units), sections and stories. ETABS 'name' is the unique name used by every API call; 'label' is what the GUI shows per story.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_properties","description":"List materials (with type), frame sections (with shape and dimensions in present units) and area properties (slabs, decks, walls).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_list_tables","description":"List ETABS database tables (definitions, assignments, analysis and design results), with whether each has data and whether it can be edited. Result tables appear after analysis/design.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_menu","description":"Use ETABS menu commands that have no API, exactly as a person would click them (through Windows UI Automation, no mouse). 'list' browses the menus; 'invoke' runs a command. Commands that open a dialog leave it open: check with etabs_screenshot and close it with etabs_dialogs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_model_overview","description":"One-call summary of the open model: file, version, units, lock state, object counts, stories, load patterns/cases/combinations, materials, sections and groups. Start every task with this.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_new_model","description":"Start a new model (replaces the open one). Lengths are in the chosen units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_open_model","description":"Open an existing ETABS model file (.EDB, or an importable .e2k text file). Replaces the open model.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_refresh_view","description":"Redraw the ETABS model views (and optionally zoom to fit) after model changes made through the API.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_render_view","description":"Render the model offscreen from its data: any angle, deformed shape of any case, members coloured by design ratio, displacement, section or storey. Works with ETABS hidden and never takes focus. Use it to look at what you built and at results the ETABS window cannot be switched to through the API.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_restore_checkpoint","description":"Roll the model back to a checkpoint. The model keeps its original file name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_run_analysis","description":"Run the analysis (Analyze > Run Analysis). ETABS needs a saved model, saves it again before running, and locks the model afterwards. Large models can take minutes: use background=true to avoid client timeouts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_run_design","description":"Run design (Design > ... > Start Design/Check) with the model's current design codes and preferences. Needs analysis results. Steel and concrete return a member summary, worst first.","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_run_shear_wall_design","description":"Run shear wall design (Design > Shear Wall Design > Start Design/Check) and return pier and spandrel results. The ETABS API has no call for this, so the server invokes the menu command through Windows UI Automation; ETABS must be visible. Walls must carry pier/spandrel labels (etabs_assign_label).","write_action":true,"price_micros":0,"input_schema":null},{"name":"etabs_save_model","description":"Save the model. A new (untitled) model needs a path. Analysis also requires a saved model.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_scale_response_spectrum","description":"Scale a response-spectrum case so its base shear reaches the ELF base shear (ASCE 7-16 12.9.1.4), then optionally re-run and verify.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_screenshot","description":"Take a screenshot of the ETABS window: the model views, selection and any open dialog, exactly what an engineer sees. Use it to check geometry, deformed shapes or design colours after other tools ran.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_search_api","description":"Search all ~1,300 ETABS API methods. Use this to find a method when no curated tool covers the task, then etabs_describe_api for its parameters and etabs_call_api to run it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_select","description":"Change or read the selection, like clicking in the ETABS window. Many tools accept selected=true to act on it. Returns the selected objects grouped by type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_set_mass_source","description":"Set the default mass source (Define > Mass Source): element self mass, added mass and load patterns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_set_modal_case","description":"Set how many modes the eigen modal case computes (raise it until mass participation is enough).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_set_restraints","description":"Assign supports (Assign > Joint > Restraints): fixed, pinned, roller or custom DOFs, to joints chosen by name, by elevation, by group, or the current selection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_set_stories","description":"Redefine the story table. ETABS only accepts this on a model without objects on the affected stories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_set_units","description":"Set the present units. All tool inputs and outputs use the present units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_show_window","description":"Show or hide the ETABS application window. Hidden ETABS runs faster for batch work.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_status","description":"Connection and model status without connecting: whether ETABS is attached, its version, the open model file, present units, and whether the model is locked (has analysis results).","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_unlock_model","description":"Unlock the model so it can be edited after analysis (the padlock button). Deletes analysis results.","write_action":false,"price_micros":0,"input_schema":null},{"name":"etabs_what_changed","description":"What changed in the model since the last call (or since the baseline): objects added, removed or modified, sections/loads/combos/groups/stories added or removed, units, lock and file. Picks up edits the engineer made by hand in the ETABS window, so the agent can stay in sync. The first call records the baseline.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-28T18:33:10.395Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-28T18:33:10.347Z","components":{"code":{"score":25,"max":25,"notes":["43 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"etabs-mcp","version":"0.3.2","found":true,"weeklyDownloads":129,"license":"Apache-2.0","dependencyCount":10,"publishedAt":"2026-10-18T00:46:23.751719Z"}],"repo":{"found":true,"owner":"Moha2005269","repo":"etabs-mcp","archived":false,"pushedAt":"2026-10-18T00:42:22Z","stars":20,"forks":1,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/204157632?v=4","ownerCreatedAt":"2025-03-20T08:09:39Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/204157632?v=4&s=128","source":"github"},"presence":{"stars":20,"forks":1,"downloadsWeek":129,"license":"Apache-2.0","lastPushAt":"2026-10-18T00:42:22.000Z","score":38}}}},"grade_history":[],"reviews":[]}