Skip to main content
Glama
austinulfers

csibridge-mcp

by austinulfers

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
statusA

Show whether CSiBridge is attached and what is open in it.

Reports the program version, the open model file, present units, whether the model is locked, and whether a long operation is still running. Call this first.

connectA

Attach to a running CSiBridge, or start one.

The other tools attach to a running CSiBridge automatically, so this is only needed to start CSiBridge (mode="launch"), to choose between several running instances (pid), or to re-attach after CSiBridge was restarted.

Args: mode: "attach" to use a running instance, "launch" to start a new one. pid: With "attach", the process id of the instance to use. program_path: With "launch", the full path of a specific CSiBridge.exe. Defaults to the latest installed version.

callA

Call any CSiBridge API function by its documented path.

Returns {"ret": return value, "outputs": {ref parameter: value}, "ok": bool}. For most functions ret is a status code and 0 means success. Check a function's signature with api_describe or api_search before calling it for the first time.

Args: method: The function path, e.g. "SapModel.FrameObj.AddByCoord". args: Input arguments in signature order. Trailing optional and ref parameters may be left off. An object of name: value is also accepted. kwargs: Input arguments by parameter name, instead of or after positional ones. wait_seconds: How long to wait before returning a pending job_id instead.

batchA

Run many API calls in order in one round trip.

Use this to build or query a model efficiently (for example adding dozens of objects).

Args: calls: [{"method": "...", "args": [...], "kwargs": {...}}, ...], each with the same meaning as the call tool. stop_on_error: Stop at the first call that fails (default) rather than continuing. wait_seconds: How long to wait before returning a pending job_id instead.

api_searchA

Search the installed CSiBridge API for functions by name.

Matches every word of the query against function paths and parameter names, and returns full signatures, e.g. query "frame distributed load" or "BridgeModeler span".

api_describeA

Describe part of the CSiBridge API, read from the installed version's type library.

Args: path: A function path ("SapModel.FrameObj.AddByCoord") for its exact parameters, an interface path ("SapModel.FrameObj") to list its functions, or empty for the tree of all interfaces. filter: When listing an interface, only show functions whose name contains this text.

api_enumA

List the values of an API enum such as eUnits, eMatType or eLoadPatternType.

Give an enum name, or part of an enum or member name to find it. Empty lists all enums.

job_waitB

Wait for a pending operation (one that returned a job_id) and return its result.

open_modelA

Open a CSiBridge model file (.bdb), replacing the model currently open.

Unsaved changes to the current model are lost, so save it first if they matter.

Args: path: Full Windows path of the model on the machine running CSiBridge.

save_modelA

Save the open model.

Args: path: Full Windows path (.bdb) to save as. Empty saves to the model's current file, which fails if the model has never been saved.

new_modelA

Start a new blank model, replacing the model currently open.

Unsaved changes to the current model are lost, so save it first if they matter.

Args: units: Present units for the new model, one of: lb_in_F, lb_ft_F, kip_in_F, kip_ft_F, kN_mm_C, kN_m_C, kgf_mm_C, kgf_m_C, N_mm_C, N_m_C, Ton_mm_C, Ton_m_C, kN_cm_C, kgf_cm_C, N_cm_C, Ton_cm_C.

run_analysisA

Run the analysis of the open model.

The model must already have been saved to a file. Running locks the model. Large models take a while: if this returns pending, keep waiting with job_wait.

list_tablesA

List CSiBridge database tables: model definitions and analysis/design results.

Each entry has the table key (used by get_table) and its import_type: 0 = read-only, 1 = editable only by file import, 2 = editable with edit_table while the model is unlocked, 3 = editable with edit_table at any time.

Args: filter: Only tables whose key contains every word, e.g. "bridge section" or "joint". include_empty: Also list tables that have no data in the current model. limit: Maximum number of tables to return.

get_tableA

Read a CSiBridge database table as {"fields": [...], "rows": [[...], ...]}.

Works for model definition tables and, after an analysis, result tables. All values are text, in the model's present units.

Args: table_key: The table's key, from list_tables. fields: Only these fields. Default: all fields. group: Only objects in this group. Default: all objects. where: Only rows whose fields equal these values, e.g. {"OutputCase": "DEAD"}. limit: Maximum number of rows to return. offset: Number of matching rows to skip, for paging. for_editing: Read the table in the form edit_table expects (all fields, plus the table_version to pass back). load_cases: For result tables, the load cases to report. load_combos: For result tables, the load combinations to report. load_patterns: For result tables, the load patterns to report.

edit_tableA

Replace the contents of an editable database table (CSiBridge's interactive database editing).

The rows given become the table's entire contents: records left out are removed from the model. So read the table with get_table(for_editing=True), change what is needed, and send every row back. The model must be unlocked for most tables. Returns CSiBridge's import log.

Args: table_key: The table's key, from list_tables. fields: Field keys, in the order used by each row. rows: The records, each a list of values in fields order or an object keyed by field. table_version: The table_version returned by get_table(for_editing=True). Looked up if omitted. apply: Apply the edit to the model now. With false the edit is only staged, to be applied together with other tables by a later edit_table call.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct actions (status vs connect, list/get/edit_table, call vs batch, job_wait). The three discovery tools api_search/api_describe/api_enum overlap somewhat in intent, and the generic `call` tool conceptually overlaps with many specific tools, but descriptions differentiate them reasonably well.

Naming Consistency4/5

Predominantly consistent snake_case with verb_noun or noun_action patterns (list_tables, get_table, edit_table, run_analysis, open_model, save_model, api_search). A few single-word tools (status, connect, call, batch) deviate slightly but remain clear and idiomatic.

Tool Count5/5

15 tools is well within a healthy range for a complex bridge-engineering API. Each tool earns its place: lifecycle (new/open/save), execution (run_analysis/job_wait), table I/O (list/get/edit), discovery (api_*), and generic escape hatches (call/batch).

Completeness4/5

Covers connection, model lifecycle, analysis, table read/write, discovery, and arbitrary API calls plus batching, giving near-complete coverage via the generic `call`. Minor gaps like closing/disconnecting a model or instance explicitly are absent but workable around.

Maintenance

ActivityMaintained
ResponsivenessNo issues