Skip to main content
Glama

Analyze a 3D steel frame (finite elements, returns the numbers)

analyze_frame
Read-onlyIdempotent

Runs a 3D finite-element frame analysis and returns the numbers: equilibrium check, largest deflection along the members, largest joint displacement and sway in X and Y, every support reaction, the axial force, shears and moments of every member (the envelope with the governing combination when there are several), and natural periods with mass participation (modal analysis); linear or second order (P-Delta). The model is either a template (a pitched portal frame building, an open mono-pitch canopy, or a multi-storey frame, from a few dimensions, sections and loads) or a full model in JSON (nodes, members, sections, supports, loads, combinations). It is solved by the code of Structomat's free 3D frame analysis page, so the result also has a link that shows the same model and results in 3D (deflected shape, force diagrams, mode shapes). Use it to check a frame, compare sections or see how loads flow, and run it again with changed sections or loads. Elastic analysis only, not a code check: member buckling, connection design and code load combinations are not covered. Nothing is stored.

Input Schema

NameRequiredDescriptionDefault
basesNoColumn bases (default fixed).
modalNoAlso run a modal analysis: natural periods, mode shapes and mass participation (default true).
modelNoInstead of a template: a full model, units kN and m, Z vertical. {"up":"Z", "nodes":{"N1":[x,y,z],...}, "members":[{"id":"M1","i":"N1","j":"N2","sec":"S1","rot":0,"pinned":false}], "sections":{"S1":{"A":m2,"Iy":m4 weak,"Iz":m4 strong,"J":m4}}, "supports":{"N1":"fixed"|"pinned"}, "nodeLoads":[{"node":"N2","case":"G"|"Q"|"W","F":[Fx,Fy,Fz]}], "memberLoads":[{"member":"M1","case":"G","dir":"FX"|"FY"|"FZ","w":kN_per_m}], "combos":[{"name":"ULS1","factors":{"G":1.35,"Q":1.5}}], "selfWeight":true, "analysis":"pdelta"|"linear", "modal":{"modes":12,"G":1,"Q":0.3}}. Load cases may have any name; several combinations are solved and shown with their envelope (a single "combo":{...} is still accepted). Gravity loads act in -FZ. A member load may vary from w to w2 between x1 and x2 (m from the i end). "pinned": true releases bending at both ends, "i" or "j" at one end. The modal mass may use any load case, e.g. {"modes":12,"G":1,"S":0.3}. A vertical member has its web (local axis 2) along X; "rot":90 turns it to Y. Without "up":"Z" the older format with Y vertical is read and converted. Steel E = 210 GPa.
bays_xNostorey: bays in X.
bays_zNostorey: bays in Y (the second horizontal direction; Z is vertical).
framesNoportal, mono: number of frames.
span_mNoportal (4-60) or mono (3-30): frame span, m.
bay_x_mNostorey: bay width in X, m.
bay_z_mNostorey: bay width in Y, m.
factorsNoCombination factors {"G":1.0,"Q":1.0,"W":1.0} (default all 1.0).
storeysNostorey: number of storeys.
analysisNoSecond order (default) or linear.
templateNoportal = pitched portal frame building; mono = open mono-pitch canopy; storey = multi-storey frame. Omit when sending model.
column_webNoDirection of the column webs: x (default) = strong axis resists sway in X, the frame direction; y = strong axis resists sway in Y.
dead_kN_m2NoDead load on roof/floor, kN/m2 (self-weight of members is added).
live_kN_m2NoLive or snow load, kN/m2.
wind_kN_m2Noportal, storey: wind pressure on the windward face (see wind_direction); mono: net wind pressure on the roof, positive upward (uplift); kN/m2.
beam_sectionNoHot-rolled I-section for beams / rafters.
low_height_mNomono: height of the low side, m.
ridge_rise_mNoportal: ridge rise above eave, m.
brace_sectionNoportal, mono: hollow section for the bracing (default CHS 139.7x5).
eave_height_mNoportal: eave height, m.
high_height_mNomono: height of the high side, m.
leeward_kN_m2Noportal, storey: leeward suction, kN/m2 (not used for mono).
column_sectionNoHot-rolled I-section for columns.
wind_directionNoportal, storey: x (default) = wind on the long wall / the face at X = 0; y = wind on the gable / the face at Y = 0; xy = both together in the same combination (conservative).
combination_setNosingle (default) = one combination with the factors given; en = a typical EN 1990 ultimate set (expression 6.10); asce = ASCE 7 LRFD basic combinations. en and asce are solved as an envelope.
frame_spacing_mNoportal, mono: frame spacing, m.
storey_height_mNostorey: storey height, m.
modal_live_shareNoShare of the live or snow load in the modal mass, psi (default 0.3); mass = self-weight + dead + psi x live.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real context: it is elastic-only, not a code check, solved by an external page whose result includes a 3D link, and 'Nothing is stored.' These are behavioral facts the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph, but front-loaded with the payoff (what numbers come back) before the modeling detail and exclusions. Every sentence carries information; it could be broken into bullets for readability but is not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 30-parameter tool with a nested model object and no output schema, enumerating the return contents (equilibrium check, deflections, reactions, member forces/envelope, modal periods) is exactly what the description must supply, and it does so thoroughly, including limits and model formats.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 30 parameters at 100% schema description coverage, the schema does the heavy lifting and baseline is 3. The description reinforces the two modeling modes (template vs full JSON) and the envelope/governing-combination behavior, but this largely restates structured information rather than adding new per-parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Runs a 3D finite-element frame analysis') and then enumerates exactly what comes back, so an agent knows precisely what this tool produces. It is clearly distinct from sibling tools like estimate_portal_frame_steel, since it returns numbers rather than an estimate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit positive guidance ('check a frame, compare sections or see how loads flow, and run it again with changed sections or loads') and explicit exclusions ('Elastic analysis only, not a code check: member buckling, connection design and code load combinations are not covered'). The only gap is that it never names a sibling to route to when the agent actually wants a code check or a quick estimate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources