Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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