ETABS MCP server
io.github.Moha2005269/etabs-mcp·v0.3.2·20 starsAgentic MCP server for CSI ETABS v22+: model, load, analyse, design and inspect structures.
20 stars129 downloads/wk
Reviews
Write oneNobody has reviewed ETABS MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
ETABS MCP tools (71, 7 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
etabs_add_areasDraw floors, slabs and walls from corner points (like Draw > Floor/Wall). Returns new area names.
etabs_add_framesDraw 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.
etabs_add_pointsAdd joints at coordinates (existing joints at the same location are reused).
etabs_analysis_statusPer-case analysis status (not run / finished ...), run flags, and whether the model is locked.
etabs_assign_diaphragmDefine a rigid or semi-rigid diaphragm and assign it to the slabs (area objects) on the chosen stories.
etabs_assign_labelAssign objects to a group, pier or spandrel label (created if missing), like Assign > ... in ETABS.
etabs_assign_loadsAssign 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).
etabs_assign_sectionAssign a frame section or an area property (Assign > Frame > Section / Shell > Property).
etabs_call_apiCall 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).
etabs_call_api_batchwrite actionRun 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.
etabs_checkpointSave 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.
etabs_code_checkswrite actionRun 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.
etabs_connectConnect 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.
etabs_define_area_sectionDefine a slab or wall property (Define > Section Properties > Slab/Wall Sections).
etabs_define_combinationsDefine load combinations (Define > Load Combinations) from load cases and other combinations, and/or generate the default design combinations for the active design codes.
etabs_define_frame_sectionDefine a frame section: parametric concrete/steel shapes, or a steel shape imported from an ETABS section library. Dimensions are in present length units.
etabs_define_load_patternsDefine load patterns (Define > Load Patterns), each optionally with its linear static load case.
etabs_define_materialDefine 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.
etabs_define_response_spectrumDefine an ASCE 7-16 response spectrum function and a response-spectrum load case that uses it.
etabs_define_seismic_loadDefine an ASCE 7-16 equivalent-lateral-force seismic load pattern (Define > Load Patterns > Auto Lateral Load). Creates the Quake pattern and its load case.
etabs_define_wind_loadDefine 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'.
etabs_delete_objectswrite actionDelete frames, areas or points chosen by name, by group, or the current selection.
etabs_describe_apiShow 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.
etabs_design_codesRead, 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.
etabs_design_reportwrite actionWrite 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.
etabs_dialogsList or close dialogs ETABS has open. A modal dialog blocks the ETABS API, so close leftovers after etabs_menu or a design run.
etabs_disconnectRelease the ETABS connection. ETABS keeps running unless close_etabs is true.
etabs_edit_tableEdit 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.
etabs_export_modelExport 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.
etabs_find_objectsFind 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.
etabs_generate_buildingBuild 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.
etabs_get_concrete_designConcrete 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.
etabs_get_design_summaryDesign results per member: steel demand/capacity ratios with governing combo, or concrete required reinforcement for beams and columns. Worst members first.
etabs_get_resultsRead 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.
etabs_get_slab_designConcrete slab design results (after etabs_run_design(kind='concrete_slab')): design-strip flexure and shear reinforcement, or punching shear checks at columns, worst first.
etabs_get_storiesStory table, top story first: name, elevation, height, master/similar settings.
etabs_get_tableRead any ETABS database table as rows (Display > Show Tables). Values with units are in present units.
etabs_get_wall_designShear 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.
etabs_instancesList 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.
etabs_job_statusStatus 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.
etabs_job_waitWait 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.
etabs_list_checkpointsCheckpoints saved for the open model, newest first.
etabs_list_installationsList ETABS installations on this machine (v22+ are supported) and ETABS instances that are running now.
etabs_list_load_definitionsLoad patterns (with type and self-weight multiplier), load cases (with type) and combinations (with their cases and scale factors).
etabs_list_objectsList 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.
etabs_list_propertiesList materials (with type), frame sections (with shape and dimensions in present units) and area properties (slabs, decks, walls).
etabs_list_tablesList 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.
etabs_menuUse 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.
etabs_model_overviewOne-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.
etabs_new_modelStart a new model (replaces the open one). Lengths are in the chosen units.
etabs_open_modelOpen an existing ETABS model file (.EDB, or an importable .e2k text file). Replaces the open model.
etabs_refresh_viewRedraw the ETABS model views (and optionally zoom to fit) after model changes made through the API.
etabs_render_viewRender 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.
etabs_restore_checkpointRoll the model back to a checkpoint. The model keeps its original file name.
etabs_run_analysiswrite actionRun 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.
etabs_run_designwrite actionRun 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.
etabs_run_shear_wall_designwrite actionRun 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).
etabs_save_modelSave the model. A new (untitled) model needs a path. Analysis also requires a saved model.
etabs_scale_response_spectrumScale 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.
etabs_screenshotTake 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.
etabs_search_apiSearch 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.
etabs_selectChange 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.
etabs_set_mass_sourceSet the default mass source (Define > Mass Source): element self mass, added mass and load patterns.
etabs_set_modal_caseSet how many modes the eigen modal case computes (raise it until mass participation is enough).
etabs_set_restraintsAssign supports (Assign > Joint > Restraints): fixed, pinned, roller or custom DOFs, to joints chosen by name, by elevation, by group, or the current selection.
etabs_set_storiesRedefine the story table. ETABS only accepts this on a model without objects on the affected stories.
etabs_set_unitsSet the present units. All tool inputs and outputs use the present units.
etabs_show_windowShow or hide the ETABS application window. Hidden ETABS runs faster for batch work.
etabs_statusConnection 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).
etabs_unlock_modelUnlock the model so it can be edited after analysis (the padlock button). Deletes analysis results.
etabs_what_changedWhat 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.
Public scan report
scanner v0.1.10 · 2026-10-28 · same rubric, same numbers if you re-run it
- Code scan43 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 11 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How ETABS MCP compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 90% of 4,460 AI and agents servers
- Tools
- 71
- the typical AI and agents server has 6
- Tools that change things
- 10%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 20
- more than 89% of 2,711 AI and agents servers
- Downloads a week
- 129
- more than 68% of 1,538 AI and agents servers with a package
What its tools let an agent do: 64 read · 7 change
Install ETABS MCP in Claude Code, Cursor or VS Code
claude mcp add etabs-mcp -- uvx etabs-mcp
What the publisher says
From the ETABS MCP repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.Moha2005269/etabs-mcp -->
Rendered from a live ETABS 23 session: every member, deflection and D/C ratio is real. MP4
etabs-mcp
Your AI agent, inside ETABS.
An agentic Model Context Protocol server for CSI ETABS v22+. Claude Code, Codex, Factory Droid, Cursor and any other MCP client can model, load, analyse, design and inspect structures the way an engineer does, through the official ETABS API, with every call checked against the real signatures.
Quick start · Tools · How it works · Testing · Configuration
Why
ETABS has a huge automation API: 143 interfaces, 1,293 reachable methods, 58 enums. It's also full of ref arrays, status codes and silent quirks. Agents should be designing buildings, not wrestling with COM marshalling.
etabs-mcp gives agents two layers:
Highlights
Full coverage, zero guesswork Search all 1,293 methods, read exact signatures with enum values, and call any of them. ByRef outputs come back as named JSON.
Sees like an engineer etabsrenderview draws the model offscreen from any angle: deformed shapes, D/C ratios, sections, stories. etabs_screenshot shows the real ETABS window.
The Interactive Database Read any of ETABS's tables and edit importable ones (update / append / delete rows, then apply), with the import log returned.
Safe by design Destructive calls need confirm=true, internals are blocked, and --read-only mode refuses every write. Tool annotations tell clients what is safe.
Version-adaptive Finds every ETABS 22/23/24… install, loads that version's ETABSv1.dll and reflects its API live. Methods missing in older versions fail clearly.
Built for agents Errors carry a code and a hint. Lengths accept "6 m" or "20 ft", long runs go to background jobs, and etabswhatchanged notices hand edits in ETABS.
Quick start
Requirements: Windows · ETABS 22 or newer (licensed) · Python 3.10+ · the .NET 8 Desktop Runtime (installed with ETABS 22+).
Install from PyPI:
pip install etabs-mcpOr run it without installing, using uv:
uvx etabs-mcp --list-installsShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
ETABS MCP: common questions
- Is ETABS MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the ETABS MCP safety report
- How do I install ETABS MCP?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does ETABS MCP need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is ETABS MCP maintained?
- The last commit was 17 days ago (2026-10-18). The latest release is v0.3.2.
- What can I use instead of ETABS MCP?
- Servers from other publishers that do the same job: Figma Context MCP server, agent-device MCP server and Agent-Native Design MCP server.
- How does ETABS MCP compare with other AI and agents MCP servers?
- safety score 92/100 (higher than 90% of 4,460 AI and agents servers); tools 71 (the typical AI and agents server has 6); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to ETABS MCP
Same job from other publishers: the closest match first, then the best rated.
- Figma ContextGive your coding agent access to your Figma data. Implement designs in any framework in one-shot.not reviewedWidely usedB
- agent-deviceLet AI agents inspect, control, and debug real iOS, Android, desktop, and TV appsnot reviewedWidely usedA
- Agent-Native DesignAgent-Native design tool - create and edit visual designs with agent assistancenot reviewedEstablishedA
- Roast My Design SystemAudit your Design System and serve your Agent the rules that keep AI-written UI on-system.not reviewedEstablishedA
- PDFAgentic RAG over one PDF or a whole folder: hybrid search, selective page reads, tables, OCR.not reviewedEstablishedA