# Structomat (remote · structomat.com)

Structural steel: cost from an IFC model, 3D frame analysis, portal frame tonnage, connections.

- Trust score: 72/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `structomat.com`: 72/100 (this document), [markdown](https://verifymcp.io/servers/com-structomat-steel/structomat.md), [page](https://verifymcp.io/servers/com-structomat-steel/structomat)

## Channel facts

- Endpoint: `https://structomat.com/mcp/`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.5.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3093 tokens (~386/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Structomat MCP server?

Structomat is a hosted endpoint at https://structomat.com/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-structomat-steel 'https://structomat.com/mcp/'
```

### Cursor

```json
{
  "mcpServers": {
    "com-structomat-steel": {
      "url": "https://structomat.com/mcp/"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-structomat-steel": {
      "type": "http",
      "url": "https://structomat.com/mcp/"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-structomat-steel]
url = "https://structomat.com/mcp/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-structomat-steel": {
      "type": "remote",
      "url": "https://structomat.com/mcp/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-structomat-steel --url 'https://structomat.com/mcp/' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-structomat-steel:
    url: "https://structomat.com/mcp/"
```

### Netclaw

```json
{
  "McpServers": {
    "com-structomat-steel": {
      "Transport": "http",
      "Url": "https://structomat.com/mcp/"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-structomat-steel -t streamable-http -u 'https://structomat.com/mcp/'
```

### Other

```json
{
  "mcpServers": {
    "com-structomat-steel": {
      "type": "http",
      "url": "https://structomat.com/mcp/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 72, +3)

- [security improvement] HSTS header: fail → pass
- [security] Tool “estimate_steel_cost” rewrote its description, which is the text the model reads

### 2026-11-04 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 68, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 323 → 385
- [functional] Server version: 1.4.4 → 1.5.0
- [functional] New tool “estimate_steel_cost”

### 2026-11-02 (score 68, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “analyze_frame” rewrote its description, which is the text the model reads

### 2026-11-01 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 67, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-29 (score 66)

First indexed and scored.

## MCP tools (8)

### `about_structomat` (~61 tokens)

About Structomat

Facts about Structomat, an AI engineering agent for structural steel: what it does, design codes, who signs designs for construction, what to send, what comes back, how to start. Use when the user asks about Structomat or how to engage it.

### `list_services` (~60 tokens)

List services

Structomat services (analysis & design, connection design, shop drawings, erectability check of a steel model before erection, automation consulting, custom tools) with what the client sends and what comes back.

Input parameters:

- `service` (string): Optional: one service only.

### `find_examples` (~160 tokens)

Find examples of past work

Search Structomat's published work: steel projects, case studies, example situations, checked steel connections, measured benchmarks (e.g. scan-to-BIM from a point cloud), sample deliverables (e.g. a complete US AISC shop drawing submittal with a clouded revision, or an erectability check that finds the pieces of a clash-free model that cannot get into place during erection) and free tools. Returns titles, links and short summaries.

Input parameters:

- `limit` (integer): Default 8.
- `query` (string): What to look for, e.g. "canopy", "mezzanine", "base plate", "HEB 600", "crane", "point cloud".
- `type` (string): Optional filter.

### `get_connection` (~63 tokens)

Get a checked steel connection

Details of one connection from the Structomat steel connection library: members, plates, bolts, welds, design code and the utilisation of each component. Use find_examples with type "connection" to get slugs.

Input parameters:

- `slug` (string, required): Connection slug from find_examples.

### `estimate_portal_frame_steel` (~237 tokens)

Estimate the steel of a portal frame building

Steel tonnage estimate for a single-span pitched portal frame building (span 15-30 m) before any design: total tonnes, kg per m2 of floor, a range, the weight by part (frames, gable posts, bracing, eave struts, purlins, side rails, plates and connections) and typical member sizes. Interpolated between complete finite-element designs and calibrated against published designs. Use for budgets, tenders and feasibility; a real design needs the actual loads and code.

Input parameters:

- `bracing` (string): Optional: tube (default, tension and compression) or tension-only rods.
- `eave_height_m` (number, required): Eave height, m (5-11).
- `ground_snow_kN_m2` (number, required): Characteristic ground snow load sk, kN/m2 (0.5-2.0). Roof load = 0.8 sk.
- `length_m` (number, required): Building length, m. Frames are at 6 m.
- `span_m` (number, required): Clear span of the frames, m (15-30).

### `analyze_frame` (~1378 tokens)

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

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. The model is not stored.

Input parameters:

- `analysis` (string): Second order (default) or linear.
- `bases` (string): Column bases (default fixed).
- `bay_x_m` (number): storey: bay width in X, m.
- `bay_z_m` (number): storey: bay width in Y, m.
- `bays_x` (integer): storey: bays in X.
- `bays_z` (integer): storey: bays in Y (the second horizontal direction; Z is vertical).
- `beam_section` (string): Hot-rolled I-section for beams / rafters.
- `brace_section` (string): portal, mono: hollow section for the bracing (default CHS 139.7x5).
- `column_section` (string): Hot-rolled I-section for columns.
- `column_web` (string): Direction of the column webs: x (default) = strong axis resists sway in X, the frame direction; y = strong axis resists sway in Y.
- `combination_set` (string): single (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.
- `dead_kN_m2` (number): Dead load on roof/floor, kN/m2 (self-weight of members is added).
- `eave_height_m` (number): portal: eave height, m.
- `factors` (object): Combination factors {"G":1.0,"Q":1.0,"W":1.0} (default all 1.0).
- `frame_spacing_m` (number): portal, mono: frame spacing, m.
- `frames` (integer): portal, mono: number of frames.
- `high_height_m` (number): mono: height of the high side, m.
- `leeward_kN_m2` (number): portal, storey: leeward suction, kN/m2 (not used for mono).
- `live_kN_m2` (number): Live or snow load, kN/m2.
- `low_height_m` (number): mono: height of the low side, m.
- `modal` (boolean): Also run a modal analysis: natural periods, mode shapes and mass participation (default true).
- `modal_live_share` (number): Share of the live or snow load in the modal mass, psi (default 0.3); mass = self-weight + dead + psi x live.
- `model` (object): Instead 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":{…
- `ridge_rise_m` (number): portal: ridge rise above eave, m.
- `span_m` (number): portal (4-60) or mono (3-30): frame span, m.
- `storey_height_m` (number): storey: storey height, m.
- `storeys` (integer): storey: number of storeys.
- `template` (string): portal = pitched portal frame building; mono = open mono-pitch canopy; storey = multi-storey frame. Omit when sending model.
- `wind_direction` (string): portal, 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).
- `wind_kN_m2` (number): portal, storey: wind pressure on the windward face (see wind_direction); mono: net wind pressure on the roof, positive upward (uplift); kN/m2.

### `estimate_steel_cost` (~805 tokens)

Estimate the cost of a steel structure from its IFC model

Cost of fabricating and erecting a steel structure, worked out part by part from its IFC model: every part, hole, weld and lift is timed as a shop or site operation and priced at the region's employer labour cost, steel price and crane rate. Returns the cost floor (total, per tonne, per m2 of floor) with its breakdown, the published market band next to it and the gap, the process groups that drive the cost, the ten costliest parts with their IFC ids, a programme from shop drawings to erection in working days, upfront embodied carbon (modules A1-A5: steel production, fabrication, delivery, erection), and what an example design review (lighter sections, fewer plate fittings) would save in cost and carbon. Regions: UK, DE (Germany), US, AU, or own rates in any currency. Give the IFC as a public link (ifc_url, up to 30 MB) or as its text (ifc_text, up to 12 MB), or sample=true for a sample 18 x 30 m portal frame shed. It is the engine of Structomat's free Steel Cost Estimator page, which shows the same result with a 3D cost heat map when the same IFC is dropped on it. An estimate, not a quote. The IFC is read in memory and not stored.

Input parameters:

- `carbon_route` (string): Steel route for embodied carbon: bof = blast furnace mix, eaf = electric arc (recycled). Default eaf for US, bof elsewhere.
- `design_review` (object): Example design review: steel_saved_pct (default 10) and plate_fittings_removed_pct (default 25, smallest plates first).
- `erection` (string): norms (default) = crew man-hours by section class; cycle = crane lift cycles per piece (reads low on single-storey sheds).
- `erection_crew` (integer): Erection crew size (default 5).
- `floor_area_m2` (number): Gross floor area, m2. Default: the column grid found in the model.
- `ifc_text` (string): The IFC file content as text (STEP, starting with ISO-10303-21), up to 12 MB. Use instead of ifc_url.
- `ifc_url` (string): Public http(s) link to the IFC file (IFC2x3 or IFC4, up to 30 MB).
- `market_price_per_t` (number): region "own": the market price per tonne you see, to show the gap to the floor.
- `paint` (boolean): Shop blasting and painting (default true).
- `programme` (object): Programme inputs in working days: drawing_days (shop drawings + approval, default 10), lead_days (steel lead time, default 10), shop_crew (default 4).
- `rates` (object): Optional overrides of the region's rates (required for region "own"): currency code, eur_rate = 1 EUR in that currency, shop_wage and site_wage = employer cost per hour worked (not a sell rate), stee…
- `region` (string): Labour, steel and crane rates and the market band: UK (GBP), DE (EUR), US (USD), AU (AUD), or own = your rates in "rates". Default UK.
- `sample` (boolean): true = use the sample building (18 x 30 m portal frame shed, 799 parts) instead of an IFC.
- `scrap_pct` (number): Material scrap, % (default 10).
- `shop` (string): mixed (default) = automated saw-drill line and plate cutting plus handling and marking; cnc = machine times only; manual = conventional shop.
- `transport_km` (number): Shop to site, km (default 250).

### `draft_project_request` (~161 tokens)

Draft a project request e-mail

Prepare an e-mail to Structomat (info@structomat.com) describing a project, ready for the user to review and send. This tool sends nothing and stores nothing; it returns the draft text and a mailto link.

Input parameters:

- `available_files` (string): Optional: drawings, photos, IFC or analysis model the user can send.
- `deadline` (string): Optional.
- `design_code` (string): Optional: Eurocode, AISC 360 or the code the project requires.
- `need` (string, required): What the user needs, e.g. "structural analysis and calculation report for a 12 x 6 m steel canopy".
- `structure_type` (string): Optional: canopy, mezzanine, warehouse, stair, connection, ...

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-structomat-steel/structomat#diagnostics

## Score history

- 2026-11-05: 72
- 2026-11-04: 69
- 2026-11-03: 68
- 2026-11-02: 68
- 2026-11-01: 68
- 2026-10-31: 67
- 2026-10-30: 67
- 2026-10-29: 66

## Common questions

### What is the Structomat MCP server?

Structomat is an MCP server listed in the public MCP registry as com.structomat/steel. Structural steel: cost from an IFC model, 3D frame analysis, portal frame tonnage, connections. This page covers its hosted endpoint (https://structomat.com/mcp/).

### Is the Structomat MCP server safe to use?

Structomat scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Structomat MCP server expose?

Structomat exposes 8 tools: about_structomat, list_services, find_examples, get_connection, estimate_portal_frame_steel, and 3 more. Their descriptions and schemas cost roughly 2,925 tokens of context every time the server is loaded.

### Does the Structomat MCP server require authentication?

No. We connected to Structomat without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Structomat MCP server still maintained?

Structomat is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://structomat.com/mcp/
- Website: https://structomat.com/about/
- Changelog RSS feed: https://verifymcp.io/servers/com-structomat-steel/structomat.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-structomat-steel/structomat.json
- HTML version of this page: https://verifymcp.io/servers/com-structomat-steel/structomat
