Skip to main content
Glama

MIDAS CIVIL NX tools (MIDAS IT Europe)

Write any model table (build from scratch)

civil_write_tables
Destructive

Creates, changes or deletes rows in any CIVIL NX database table through the MIDAS API — nodes, elements, materials, sections, thicknesses, supports, links, load cases, loads, groups, stages, combinations, anything the API manual lists — so a model can be built from scratch or changed where no plugin tool does it. Look up the table and its fields first with midas_docs_search / midas_docs_read (e.g. "db/ELEM"), and read the current rows with civil_read_table. writes is a list of steps run in order: { table, op: create (POST — new keys only, refused if a key exists) | upsert (PUT — creates or changes; GRUP lists and CNLD/BMLD/PRES/RIGD items MERGE, they are never removed by a PUT) | delete (DESTRUCTIVE — needs allowDestructive; a node takes its elements, an element its loads, a load case its loads), rows: { "": {fields} } | ids: [keys] }. The preview simulates every step over the current model: what each creates, changes (which fields) and deletes; it blocks keys that already exist on create, elements that refer to nodes, materials, sections or thicknesses that do not exist (CIVIL NX accepts a missing section silently), deletes and UNIT / MVCD writes without allowDestructive. Then apply: true with confirmPlanHash writes the steps (stopping at the first refusal), reads every touched row back and reports anything not stored as sent. civil_write_tables_undo puts every touched row back.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "writes": "<writes>"
    },
    "name": "civil_write_tables"
  }
}

Input Schema

NameRequiredDescriptionDefault
applyNoWrite to CIVIL NX. Only after the user approved the preview.
writesYes
confirmPlanHashNoplanHash from the approved preview; refused if the model or the steps changed.
allowDestructiveNoDESTRUCTIVE: allow delete steps and writes to UNIT / MVCD. Only after the user agreed to what the preview says they do.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description goes far beyond them: it distinguishes POST-create (refused if key exists) from PUT-upsert (GRUP/CNLD/BMLD/PRES/RIGD items merge and are never removed), spells out delete cascades (node takes its elements, element its loads, load case its loads), and states that execution stops at the first refusal. It also discloses post-write read-back verification and points to civil_write_tables_undo for rollback.

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?

Purpose is front-loaded and nearly every clause carries information, but the middle is a single dense run-on with stacked parentheticals and no visual separation between the op semantics, the preview checks, and the apply step. Readable, but a bulleted breakdown of the three ops would cut re-reading cost.

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 destructive, open-ended mutation tool with no output schema, the description covers everything an agent needs: prerequisites, per-op semantics, preview validation rules (missing section references, existing keys, allowDestructive gating), apply/confirm handshake, and rollback. Nothing required to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is 75%, and the description adds real meaning on top: op semantics with HTTP method and merge behavior, rows as {"<key>": {fields}} vs ids for delete, table key derived from the manual URI (db/NODE → NODE), and confirmPlanHash being refused if the model or steps changed. This is materially more than the schema's own descriptions convey.

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?

States a specific verb set (creates, changes, deletes) on a specific resource (rows in any CIVIL NX database table) via a named transport (MIDAS API), and enumerates the resource families (nodes, elements, materials, sections, loads, stages...). It explicitly positions itself against siblings: the catch-all for 'where no plugin tool does it', with civil_read_table for reads and midas_docs_search/read for schema lookup.

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

Usage Guidelines5/5

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

Gives an explicit ordered workflow: look up the table with midas_docs_search/midas_docs_read, read current rows with civil_read_table, preview, then apply with confirmPlanHash. It also names the exclusion condition — use this only where no plugin tool (e.g. create_nodes, section_write) covers the case — and requires allowDestructive for delete/UNIT/MVCD writes.

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