Skip to main content
Glama

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
rsap_connectA

Connect to (or launch) Autodesk Robot Structural Analysis Professional.

Call this once before other tools, unless auto-connect is enabled. If Robot is already open it attaches to it; otherwise it starts Robot.

Args: visible: Show the Robot application window. interactive: Keep Robot interactive so its GUI refreshes as the model changes.

rsap_statusA

Report connection status and a summary of the current Robot model.

rsap_new_projectA

Create a new, empty Robot project.

Args: project_type: One of shell, frame_3d, frame_2d, truss_3d, truss_2d, plate, grillage.

rsap_open_projectA

Open an existing Robot model from an absolute .rtd path.

Args: path: Absolute path to the .rtd file on the machine running Robot.

rsap_save_projectA

Save the current model. Pass a path to Save As, or omit to Save in place.

Args: path: Absolute .rtd path to save to (Save As), or None to overwrite the currently open file.

rsap_close_projectA

Close the current project (Robot itself stays open).

rsap_add_nodeA

Create a single node at the given coordinates (metres).

Args: x: X coordinate (m). y: Y coordinate (m). z: Z coordinate (m, vertical). number: Explicit node number; auto-assigned (next free) if omitted.

rsap_add_nodesB

Create many nodes at once.

Args: nodes: List of {x, y, z, number?} node specifications (coordinates in m).

rsap_add_barA

Create a bar (beam/column) between two existing nodes, optionally assigning an existing section and/or material label.

Args: start_node: Start node number. end_node: End node number. number: Explicit bar number; auto-assigned if omitted. section: Name of an existing section label to assign (see rsap_define_section). material: Name of an existing material label to assign (see rsap_define_material).

rsap_add_barsB

Create many bars at once.

Args: bars: List of {start_node, end_node, number?, section?, material?} specs.

rsap_list_nodesA

List nodes with their coordinates.

Args: limit: Maximum number of nodes to return.

rsap_list_barsA

List bars with their start/end node numbers.

Args: limit: Maximum number of bars to return.

rsap_delete_objectsA

Delete nodes or bars matching a selection string.

Args: object_type: 'node' or 'bar'. selection: Robot selection text, e.g. '1to10 15' or '1 2 3'.

rsap_define_sectionA

Define a bar section label by loading a profile from Robot's active section database (e.g. an I-profile, HEA, IPE, tube...).

The section database must already be active in Robot's job preferences and must contain the requested profile name.

Args: name: Name to give the new section label (often the profile name itself). db_section: Profile name to load from the section database. Defaults to name. material: Optional material label name to attach to the section.

rsap_define_materialA

Define a material label, either loaded from Robot's material database or from explicit elastic properties.

Args: name: Name for the new material label. from_database: Load a named material from Robot's database (e.g. 'S235', 'C30/37'). If given, the explicit properties below are ignored. material_type: One of steel, concrete, timber, aluminium, other. e: Young's modulus E (Pa). nu: Poisson's ratio (dimensionless). ro: Unit WEIGHT density (N/m^3) — Robot's RO is a weight density, not mass. kirchoff: Shear modulus G (Pa) — stored in Robot's 'Kirchoff' property.

rsap_assign_sectionA

Assign an existing section label to a set of bars.

Args: section_name: Name of a section label defined with rsap_define_section. bars: Robot selection text, e.g. '1to20' or '1 2 3'.

rsap_assign_materialA

Assign an existing material label to a set of bars.

Args: material_name: Name of a material label defined with rsap_define_material. bars: Robot selection text, e.g. '1to20' or '1 2 3'.

rsap_list_sectionsA

List the names of section labels defined in the model.

rsap_define_supportA

Define a support (boundary condition) label. True = restrained.

Common presets: a pinned support is ux=uy=uz=True, rx=ry=rz=False; a fully fixed support is all True; a roller restrains only the relevant translation.

Args: name: Name for the support label (e.g. 'pinned', 'fixed'). ux: Restrain translation X. uy: Restrain translation Y. uz: Restrain translation Z. rx: Restrain rotation X. ry: Restrain rotation Y. rz: Restrain rotation Z.

rsap_assign_supportA

Assign an existing support label to a set of nodes.

Args: support_name: Name of a support label defined with rsap_define_support. nodes: Robot selection text, e.g. '1 4' or '1to4'.

rsap_add_load_caseB

Create a simple load case.

Args: name: Case name, e.g. 'Self-weight', 'Live load', 'Wind X'. nature: permanent/dead, live/exploitation, wind, snow, seismic, temperature, accidental. analysis: static_linear (default), static_nonlinear, modal. number: Explicit case number; auto-assigned if omitted.

rsap_add_self_weightA

Add a self-weight (dead) load to a case.

Args: case_number: Target load case number. direction: Gravity direction: z- (default), z+, x-, x+, y-, y+. factor: Multiplier on self-weight (1.0 = full self-weight). selection: 'all' for the whole structure, or a bar selection like '1to20'.

rsap_add_nodal_forceA

Add a nodal force/moment to a case (global axes).

Args: case_number: Target load case number. nodes: Node selection text, e.g. '5' or '5 6 7'. fx: Force X (N). fy: Force Y (N). fz: Force Z (N). cx: Moment X (N·m). cy: Moment Y (N·m). cz: Moment Z (N·m).

rsap_add_bar_uniform_loadA

Add a uniformly distributed load along bars.

Args: case_number: Target load case number. bars: Bar selection text, e.g. '1to10'. px: Intensity along X (N/m). py: along Y (N/m). pz: along Z (N/m). local: Interpret px/py/pz in the bar's local axes (default global). projected: Apply as projected load.

rsap_add_bar_point_loadA

Add a concentrated (point) force/moment on bars.

Args: case_number: Target load case number. bars: Bar selection text. fx, fy, fz: Forces (N). cx, cy, cz: Moments (N·m). position: Location along the bar. Relative (0–1) if relative=True, else metres from end A. relative: Treat 'position' as a 0–1 fraction of the bar length. local: Interpret forces in the bar's local axes.

rsap_add_combinationA

Create a load combination from weighted load cases.

Args: name: Combination name, e.g. 'ULS 1.35G + 1.5Q'. factors: List of {case, factor} terms, e.g. [{case:1, factor:1.35},{case:2, factor:1.5}]. combo_type: 'uls' or 'sls'. nature: Combination nature (usually 'permanent'). number: Explicit combination number; auto-assigned if omitted.

rsap_list_load_casesA

List load cases and combinations in the model.

rsap_generate_meshA

Generate the finite-element mesh.

Note: FE meshing only applies to surface/panel (shell) models, and Robot generates it automatically when you run rsap_calculate(). Pure bar/frame models do not need an explicit mesh, so for them this is a no-op.

rsap_calculateA

Run the structural analysis (solve the model).

This blocks until Robot finishes calculating. After it returns, use the results tools (rsap_bar_forces, rsap_node_displacement, rsap_node_reaction).

rsap_calculation_statusA

Report whether analysis results are currently available.

rsap_bar_forcesA

Internal forces at a point along a bar (local axes).

Args: bar: Bar number. case: Load case or combination number. position: Relative position along the bar, 0.0 (start) to 1.0 (end).

rsap_bar_force_envelopeB

Sample a bar along its length and return the extreme internal forces.

Args: bar: Bar number. case: Load case or combination number. samples: Number of equally spaced sample points (>= 2).

rsap_node_displacementB

Nodal displacement (global axes).

Args: node: Node number. case: Load case or combination number.

rsap_node_reactionA

Support reaction at a node (global axes).

Args: node: Node number (must be a supported node). case: Load case or combination number.

rsap_results_summaryA

Summarise results for a case: peak nodal displacement and peak bar moment.

Args: case: Load case or combination number. max_nodes: Cap on nodes scanned (largest |Uz|). max_bars: Cap on bars scanned (largest |My| at mid-span).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
enums_referenceCheatsheet mapping the friendly names used by tools to RobotOM constants.
sections_referenceGuidance on defining sections and materials.
workflow_cheatsheetThe typical end-to-end modelling workflow.

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/nhantruong96/rsap-mcp'

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