etabs-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@etabs-mcp What are the base reactions for each load combination?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
etabs-mcp
Servidor MCP para ETABS 22. Se adjunta a la instancia de ETABS que ya tienes abierta y expone geometria, secciones, materiales, cargas y resultados como herramientas MCP, ademas de herramientas para crear y editar el modelo (grids, niveles, secciones, frames, muros, cargas, combos y analisis).
Requisitos
Windows con ETABS 22 instalado y el modelo abierto.
Python 3.10 o superior (64 bits, igual que ETABS).
Related MCP server: ETABS MCP Server
Instalacion
cd etabs-mcp
py -3 -m venv .venv
.venv\Scripts\pip install -e .Uso
Abre ETABS 22 y carga tu modelo.
Registra el servidor en tu cliente MCP:
{
"mcpServers": {
"etabs22": {
"command": "C:\\ruta\\a\\etabs-mcp\\.venv\\Scripts\\etabs-mcp.exe"
}
}
}Prueba la conexion desde el cliente con
etabs_model_info.
Modo HTTP (para usarlo desde Devin u otro cliente remoto)
ETABS corre en tu PC, asi que el servidor debe escuchar por HTTP y exponerse con un tunel.
El token es obligatorio: sin Authorization: Bearer <token> toda peticion recibe 401.
$env:ETABS_MCP_TOKEN = python -c "import secrets; print(secrets.token_urlsafe(32))"
$env:ETABS_MCP_TOKEN # guarda este valor
.\.venv\Scripts\etabs-mcp.exe --http --port 8756En otra terminal, publica el puerto (cualquiera de los dos):
cloudflared tunnel --url http://127.0.0.1:8756
ngrok http 8756La URL del MCP es https://<tu-tunel>/mcp. Agrega --readonly si quieres exponerlo sin
herramientas de escritura.
Para verificar sin cliente MCP:
.venv\Scripts\python -c "from etabs_mcp.server import etabs_model_info; print(etabs_model_info())"Herramientas
Herramienta | Descripcion |
| Archivo, version, unidades y si el modelo esta analizado |
| Unidades de presentacion al leer datos (p. ej. |
| Niveles con elevacion y altura |
| Sistemas de ejes |
| Nudos con coordenadas, etiqueta y nivel |
| Vigas/columnas con seccion y nudos extremos |
| Losas/muros con propiedad y contorno |
| Secciones de frame y sus propiedades geometricas |
| Propiedades de area |
| Materiales, tipo y peso especifico |
| Patrones de carga y multiplicador de peso propio |
| Casos de carga |
| Combinaciones con sus casos y factores |
| Selecciona casos/combos para consultar resultados |
| Periodos y frecuencias modales |
| Reacciones en la base |
| Derivas por nivel |
| Reacciones en nudos |
| Fuerzas internas en frames |
| Re-adjunta a ETABS si cerraste o reabriste el programa |
Escritura
Herramienta | Descripcion |
| Modelo nuevo con reticula regular y niveles |
| Modelo vacio |
| Abrir y guardar .EDB |
| Define niveles y alturas |
| Material de concreto (f'c, E, peso) |
| Secciones de frame |
| Propiedades de losa y muro |
| Viga o columna por coordenadas |
| Losa o muro por vertices |
| Apoyos en nudos |
| Patrones de carga |
| Carga distribuida en frames |
| Carga uniforme en areas |
| Combinaciones de carga |
| Corre el analisis |
| Desbloquear tras analisis y refrescar vistas |
Para dejar el servidor en modo consulta, exporta ETABS_MCP_READONLY=1: las herramientas de
escritura quedan deshabilitadas y devuelven error.
Ejemplo de proyecto nuevo
etabs_new_model(unitsTon_m_C, 3 niveles de 3 m, retícula 4x4 a 6 m)etabs_define_concrete_material->etabs_define_rectangular_section(columna y viga)etabs_add_framepara columnas y vigas,etabs_define_slab+etabs_add_areapara losasetabs_set_point_restrainten la baseetabs_add_load_pattern+etabs_assign_area_uniform_load+etabs_add_load_combinationetabs_run_analysisy luegoetabs_select_outputconetabs_story_drifts/etabs_base_reactionsetabs_save_modelcon la ruta del .edb
Los resultados requieren que el analisis ya este corrido en ETABS y que antes llames a
etabs_select_output con los casos o combinaciones que te interesan. Las listas largas se
paginan con limit y offset (maximo 500 elementos por llamada).
Notas
Las herramientas de escritura desbloquean el modelo automaticamente cuando quedo bloqueado por un analisis previo.
etabs_new_modeldescarta el modelo abierto sin guardar: guarda antes si te interesa.Si ETABS se cierra o cambias de modelo, usa
etabs_reconnect.La API de CSI expone sus salidas como parametros ByRef;
call_apiprueba las dos convenciones que puede generarcomtypespara que funcione en distintas instalaciones.
Available Tools
40 toolsetabs_add_areaC
Crea una losa o muro a partir de sus vertices [[x, y, z], ...] en orden.
Inputs: points (required), property_name (required), name. Returns: object
etabs_add_frameC
Crea una viga o columna entre dos coordenadas globales.
Inputs: xi (required), xj (required), yi (required), yj (required), +4 more. Returns: object
etabs_add_load_combinationC
Crea una combinacion de carga. case_type: 0=load case, 1=combo.
Inputs: name (required), cases (required), factors (required), case_type, +1 more. Returns: object
etabs_add_load_patternC
Crea un patron de carga. load_type: 1=Dead, 2=SuperDead, 3=Live, 5=Quake, 6=Wind, 8=Other.
Inputs: name (required), load_type, add_analysis_case, self_weight_multiplier. Returns: object
etabs_areasC
Elementos area (losas y muros) con su propiedad y nudos de contorno.
Inputs: limit, story, offset. Returns: object
etabs_area_sectionsB
Nombres de las propiedades de area (losas, muros, deck).
Inputs: no named parameters. Returns: result
etabs_assign_area_uniform_loadC
Asigna carga uniforme a una losa o muro (fuerza por area).
Inputs: area (required), value (required), load_pattern (required), replace, +2 more. Returns: object
etabs_assign_frame_distributed_loadC
Asigna carga uniformemente distribuida a un frame (fuerza por longitud).
Inputs: frame (required), value (required), load_pattern (required), replace, +2 more. Returns: object
etabs_base_reactionsB
Reacciones en la base para los casos/combinaciones seleccionados.
Inputs: no named parameters. Returns: result
etabs_define_circular_sectionC
Define una seccion circular.
Inputs: name (required), diameter (required), material (required). Returns: object
etabs_define_concrete_materialC
Define un material de concreto (f'c y modulo en las unidades actuales).
Inputs: fc (required), name (required), modulus (required), poisson, +2 more. Returns: object
etabs_define_rectangular_sectionB
Define una seccion rectangular de concreto (depth = peralte, width = base).
Inputs: name (required), depth (required), width (required), material (required). Returns: object
etabs_define_slabD
Define una propiedad de losa.
Inputs: name (required), material (required), thickness (required), slab_type, +1 more. Returns: object
etabs_define_wallD
Define una propiedad de muro.
Inputs: name (required), material (required), thickness (required), shell_type. Returns: object
etabs_frame_forcesC
Fuerzas internas en frames. item_type: 0=objeto, 1=elemento, 2=grupo, 3=seleccion.
Inputs: name, limit, item_type. Returns: object
etabs_framesC
Elementos frame (vigas/columnas) con seccion asignada y nudos extremos.
Inputs: limit, story, offset. Returns: object
etabs_frame_sectionsB
Secciones de frame definidas, con sus propiedades geometricas si se piden.
Inputs: include_properties. Returns: result
etabs_grid_systemsC
Nombres de los sistemas de ejes (grids) del modelo.
Inputs: no named parameters. Returns: result
etabs_joint_reactionsB
Reacciones en nudos. item_type: 0=objeto, 1=elemento, 2=grupo, 3=seleccion.
Con item_type=2 y name='All' se consulta todo el modelo.
Inputs: name, limit, item_type. Returns: object
etabs_load_casesB
Nombres de los casos de carga definidos.
Inputs: no named parameters. Returns: result
etabs_load_combinationsC
Combinaciones de carga y, opcionalmente, los casos y factores que las componen.
Inputs: include_cases. Returns: result
etabs_load_patternsC
Patrones de carga con su tipo y multiplicador de peso propio.
Inputs: no named parameters. Returns: result
etabs_materialsC
Materiales definidos con su tipo y peso especifico.
Inputs: no named parameters. Returns: result
etabs_modal_periodsB
Periodos y frecuencias modales del analisis ejecutado.
Inputs: no named parameters. Returns: result
etabs_model_infoA
Datos del modelo abierto: archivo, version de ETABS, unidades y si esta analizado.
Inputs: no named parameters. Returns: object
etabs_new_blank_modelC
Crea un modelo vacio, sin ejes ni niveles predefinidos.
Inputs: units. Returns: object
etabs_new_modelA
Crea un modelo nuevo con una retícula regular y los niveles indicados.
Descarta el modelo abierto sin guardar, asi que guarda antes con etabs_save_model.
Inputs: units, stories, spacing_x, spacing_y, +4 more. Returns: object
etabs_open_modelB
Abre un archivo .EDB existente.
Inputs: path (required). Returns: object
etabs_pointsD
Nudos con coordenadas cartesianas, etiqueta y nivel.
Inputs: limit, story, offset. Returns: object
etabs_reconnectA
Vuelve a adjuntar el servidor a la instancia de ETABS abierta.
Inputs: no named parameters. Returns: object
etabs_refresh_viewA
Refresca las ventanas de ETABS para ver los cambios recien creados.
Inputs: no named parameters. Returns: object
etabs_run_analysisC
Corre el analisis. Con cases solo ejecuta esos casos.
Inputs: cases. Returns: object
etabs_save_modelB
Guarda el modelo. Con path hace 'guardar como' (usa ruta absoluta .edb).
Inputs: path. Returns: object
etabs_select_outputC
Selecciona que casos y combinaciones se usaran al consultar resultados.
Inputs: cases, combos. Returns: object
etabs_set_point_restraintC
Asigna restricciones a un nudo: [U1, U2, U3, R1, R2, R3]. Por defecto empotrado.
Inputs: point (required), item_type, restraints. Returns: object
etabs_set_storiesB
Define los niveles del modelo (de abajo hacia arriba) con su altura.
Inputs: names (required), heights (required), similar_to, base_elevation, +1 more. Returns: object
etabs_set_unitsA
Cambia las unidades de presentacion usadas al leer datos (p. ej. 'Ton_m_C', 'kN_m_C').
Solo afecta como se reportan los valores; no modifica el modelo.
Inputs: units (required). Returns: object
etabs_storiesA
Lista los niveles con su elevacion y altura.
Inputs: no named parameters. Returns: result
etabs_story_driftsC
Derivas por nivel para los casos/combinaciones seleccionados.
Inputs: no named parameters. Returns: result
etabs_unlock_modelA
Desbloquea el modelo para poder seguir editandolo tras un analisis.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 40 tools
Each tool targets a distinct entity or action: list vs create vs define vs assign vs analyze vs query. Even closely related tools like load_patterns, add_load_pattern, and load_combinations are clearly separated by their purpose.
All tools share the etabs_ prefix, but the action style is mixed: noun-only names for queries (etabs_stories, etabs_points), verb+noun for actions (etabs_set_units, etabs_add_frame), and inconsistent creation verbs such as new_model, add_load_pattern, and define_rectangular_section.
With 40 tools, the surface is far larger than the typical well-scoped 3–15 tool set. While ETABS is a complex domain, this many tools risks overwhelming agents and indicates the server is trying to cover too many operations.
The set covers a broad workflow: model creation, geometry, property definitions, load patterns/combinations, assignments, analysis, and results. However, critical gaps remain: there is no explicit tool to assign defined sections/materials to frame or area elements, and no update/delete operations for created objects.
Related MCP Connectors
Build, check and report on MIDAS CIVIL NX bridge models through the MIDAS IT Europe plugins.
Read and edit the Revit 2024–2027 model on your PC. Needs the free Revit MCP add-in.
Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.
Manage SysML2 projects; check, evaluate, verify, query, document and diagram models.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects AI assistants to CSI ETABS for structural engineering tasks, enabling model creation, analysis, design, and seismic checks via the COM API.6910MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to control CSI ETABS structural engineering software through Claude, allowing model creation, status checks, and engineering checks via COM automation.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to directly control CSI ETABS for structural and seismic analysis, including model inspection, material/section definition, frame generation, solver execution, and result extraction through natural language.2MIT
- AlicenseBqualityCmaintenanceAn agentic MCP server for CSI ETABS v22+ that enables AI agents to model, load, analyze, design, and inspect building structures through 60 curated engineering tools and live .NET reflection of the full 1,293-method OAPI. Includes offscreen 3D rendering of deformed shapes and D/C ratios, interactive database table editing, and background analysis execution.7120Apache 2.0