# FERS — structural FEM (npm · @ferscloud/fers-mcp)

Structural FEM for AI agents: frames, plates, buckling, seismic and Eurocode checks, solved locally.

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

## Components

- remote · `ferscloud.com`: 36/100, [markdown](https://verifymcp.io/servers/com-ferscloud-fers/api-mcp.md), [page](https://verifymcp.io/servers/com-ferscloud-fers/api-mcp)
- npm · `@ferscloud/fers-mcp`: 47/100 (this document), [markdown](https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp.md), [page](https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp)

## Channel facts

- Registry: `npm`
- Package: `@ferscloud/fers-mcp`
- Version: `2.83.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 0 of 1 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 0/100
  - Schema quality not yet verified: the captured schema was too large for us to store in full, or the server stopped listing its tools part-way, so we will not judge it on a partial copy.
- **Stability & Change Management**: 50/100
  - Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: the captured tool definitions were too large for us to store in full, or the server stopped listing its tools part-way, so we will not judge them on a partial copy.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: the captured tool definitions were too large for us to store in full (the trim removes the very descriptions this category reads), or the server stopped listing its tools part-way.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 3 categories.** Categories scored 0 because our sandbox has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you.

## Install

### How do I install the FERS — structural FEM MCP server?

FERS — structural FEM runs locally as an npm package, launched with npx -y @ferscloud/fers-mcp. 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 com-ferscloud-fers -- npx -y @ferscloud/fers-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "com-ferscloud-fers": {
      "command": "npx",
      "args": [
        "-y",
        "@ferscloud/fers-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-ferscloud-fers": {
      "command": "npx",
      "args": [
        "-y",
        "@ferscloud/fers-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add com-ferscloud-fers -- npx -y @ferscloud/fers-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ferscloud-fers": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@ferscloud/fers-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-ferscloud-fers --command npx --arg -y --arg @ferscloud/fers-mcp
```

### Hermes

```yaml
mcp_servers:
  com-ferscloud-fers:
    command: "npx"
    args: ["-y", "@ferscloud/fers-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "com-ferscloud-fers": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@ferscloud/fers-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-ferscloud-fers -t stdio -c npx -a -y @ferscloud/fers-mcp
```

### Other

```json
{
  "mcpServers": {
    "com-ferscloud-fers": {
      "command": "npx",
      "args": [
        "-y",
        "@ferscloud/fers-mcp"
      ]
    }
  }
}
```

## 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-04 (score 47, +16)

- [security improvement] Malware scan: unverified → pass
- [functional] Package version: 2.82.0 → 2.83.0

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

- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional] Package version: 2.80.0 → 2.82.0

### 2026-11-02 (score 31, −15)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 2.79.0 → 2.80.0

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

- [security regression] Stability: 0.33 → unverified
- [security] Tool safety: Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional] Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional] Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- [functional] Package version: 2.77.0 → 2.79.0

### 2026-10-31 (score 45, 0)

- [functional regression] Security disclosure: unverified → fail

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

- [functional regression] Security disclosure: fail → unverified
- [functional] Package version: 2.76.0 → 2.77.0

### 2026-10-28 (score 44, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-27 (score 28, −12)

- [security regression] Malware scan: pass → unverified
- [functional improvement] Stability: unverified → 0.20
- [functional] Package version: 2.1.0 → 2.76.0

## MCP tools (36)

The latest capture was truncated, so this tool list may be partial.

### `solve_model` (~362 tokens)

Input parameters:

- `detail` (string)
- `idempotency_key` (string)
- `include_report` (boolean)
- `model` (string)
- `model_ref` (string)
- `result_filter` (array)

### `validate_model` (~162 tokens)

Input parameters:

- `model` (string)
- `model_ref` (string)

### `run_unity_checks` (~357 tokens)

Input parameters:

- `detail` (string)
- `idempotency_key` (string)
- `include_report` (boolean)
- `model` (string)
- `model_ref` (string)
- `result_filter` (array)

### `check_beam` (~612 tokens)

Input parameters:

- `laterally_restrained` (boolean)
- `length` (number)
- `load_kN_per_m` (number)
- `material` (string)
- `point_load` (number)
- `point_position` (number)
- `restrained` (boolean)
- `section` (string, required)
- `span` (number)
- `span_m` (number)
- `support` (string)
- `udl` (number)
- `uls_factor` (number)
- `uniform_load` (number)

### `create_beam` (~591 tokens)

Input parameters:

- `height_mm` (number)
- `length` (number)
- `load` (number)
- `load_kn` (number)
- `load_position` (number)
- `load_position_frac` (number)
- `load_type` (string)
- `material` (string)
- `point_load` (number)
- `point_position` (number)
- `section` (string)
- `span` (number)
- `span_m` (number)
- `support` (string)
- `udl` (number)
- `uniform_load` (number)
- `width_mm` (number)

### `create_frame` (~352 tokens)

Input parameters:

- `base` (string)
- `bay_width_m` (number)
- `bays` (number)
- `beam_height_mm` (number)
- `beam_width_mm` (number)
- `column_height_mm` (number)
- `column_width_mm` (number)
- `lateral_kn` (number)
- `material` (string)
- `roof_udl_kn_per_m` (number)
- `storey_height_m` (number)
- `storeys` (number)

### `stash_model` (~151 tokens)

Input parameters:

- `model` (string, required)
- `name` (string)

### `set_analysis` (~636 tokens)

Input parameters:

- `buckling` (string)
- `clear` (string)
- `modal` (string)
- `model` (string)
- `model_ref` (string)
- `options` (string)
- `seismic` (string)

### `add_load_case` (~182 tokens)

Input parameters:

- `model` (string)
- `model_ref` (string)
- `name` (string, required)

### `add_load` (~924 tokens)

Input parameters:

- `axes` (string)
- `direction_x` (number)
- `direction_y` (number)
- `direction_z` (number)
- `distribution_dx` (number)
- `distribution_dy` (number)
- `distribution_dz` (number)
- `end_frac` (number)
- `end_magnitude` (number)
- `kind` (string, required)
- `load_case_id` (number)
- `magnitude` (number)
- `member` (number)
- `model` (string)
- `model_ref` (string)
- `node` (number)
- `plate_element_id` (number)
- `polygon` (string)
- `position` (number)
- `projected` (boolean)
- `start_frac` (number)
- `surface_id` (number)

### `add_load_combination` (~299 tokens)

Input parameters:

- `check` (string)
- `factors` (string, required)
- `limit_state` (string)
- `model` (string)
- `model_ref` (string)
- `name` (string, required)
- `situation` (string)

### `generate_load_combinations_ec0` (~358 tokens)

Input parameters:

- `actions` (string, required)
- `include_favorable` (boolean)
- `include_sls` (boolean)
- `include_uls` (boolean)
- `model` (string)
- `model_ref` (string)
- `replace_existing` (boolean)

### `add_imperfection_case` (~508 tokens)

Input parameters:

- `height_direction_x` (number)
- `height_direction_y` (number)
- `height_direction_z` (number)
- `load_combination_ids` (string, required)
- `model` (string)
- `model_ref` (string)
- `sway_axis_x` (number)
- `sway_axis_y` (number)
- `sway_axis_z` (number)
- `sway_magnitude_rad` (number)
- `sway_ratio_denominator` (number)
- `translation_axis_x` (number)
- `translation_axis_y` (number)
- `translation_axis_z` (number)
- `translation_magnitude` (number)
- `translation_memberset_ids` (string)

### `build_model` (~1965 tokens)

Input parameters:

- `default_section` (string)
- `load_combinations` (string)
- `loads` (string)
- `material` (string)
- `members` (string, required)
- `nodes` (string, required)
- `order` (string)
- `plane` (string)
- `project_name` (string)
- `sections` (string)
- `self_weight` (boolean)
- `supports` (string)

### `create_section` (~1291 tokens)

Input parameters:

- `a_sy` (number)
- `a_sz` (number)
- `apply_to` (string)
- `area` (number)
- `b_mm` (number)
- `d_mm` (number)
- `ec3` (string)
- `h_mm` (number)
- `i_w` (number)
- `i_y` (number)
- `i_z` (number)
- `j` (number)
- `library_name` (string)
- `material` (string)
- `model` (string)
- `model_ref` (string)
- `name` (string, required)
- `shape` (string)
- `t_mm` (number)
- `tf_mm` (number)
- `tw_mm` (number)
- `wel_y` (number)
- `wel_z` (number)
- `wpl_y` (number)
- `wpl_z` (number)

### `set_support` (~1323 tokens)

Input parameters:

- `RX` (string)
- `RX_stiffness` (number)
- `RY` (string)
- `RY_stiffness` (number)
- `RZ` (string)
- `RZ_stiffness` (number)
- `X` (string)
- `X_stiffness` (number)
- `Y` (string)
- `Y_stiffness` (number)
- `Z` (string)
- `Z_stiffness` (number)
- `classification` (string)
- `keep_axial_slack` (boolean)
- `model` (string)
- `model_ref` (string)
- `node_ids` (string, required)
- `preset` (string)
- `stiffness_curves` (string)
- `support_id` (number)
- `warping` (string)
- `warping_stiffness` (number)

### `set_member` (~1428 tokens)

Input parameters:

- `end_offset` (string)
- `end_release` (string)
- `keep_axial_slack` (boolean)
- `member_ids` (string, required)
- `member_type` (string)
- `mirror` (boolean)
- `model` (string)
- `model_ref` (string)
- `pretension` (number)
- `rotation_angle_deg` (number)
- `start_offset` (string)
- `start_release` (string)
- `unstretched_length` (number)

### `set_scissor_hinge` (~835 tokens)

Input parameters:

- `at_nodes` (string)
- `axes` (string)
- `clear` (boolean)
- `member_ids` (string)
- `member_set_id` (number)
- `model` (string)
- `model_ref` (string)
- `releases` (string)
- `scissor_hinge_id` (number)

### `set_member_design` (~744 tokens)

Input parameters:

- `buckling_length_t` (number)
- `buckling_length_y` (number)
- `buckling_length_z` (number)
- `buckling_restraints` (string)
- `chi` (number)
- `classification` (string)
- `effective_length_factor_y` (number)
- `effective_length_factor_z` (number)
- `ltb_length` (number)
- `member_set_ids` (string, required)
- `model` (string)
- `model_ref` (string)
- `set_classification` (string)

### `add_plate_surface` (~1390 tokens)

Input parameters:

- `behavior` (string)
- `boundary_node_ids` (string)
- `classification` (string)
- `corner_points` (string)
- `divisions_u` (number)
- `divisions_v` (number)
- `edge_support` (string)
- `edge_support_id` (number)
- `element_shape` (string)
- `local_x_direction` (string)
- `material_id` (number)
- `mesh_method` (string)
- `model` (string)
- `model_ref` (string)
- `name` (string)
- `offset` (number)
- `plane_state` (string)
- `stiffness_modifier_bending` (number)
- `stiffness_modifier_membrane` (number)
- `stiffness_modifier_shear` (number)
- `surface_id` (number)
- `target_size` (number)
- `theory` (string)
- `thickness` (number)

### `add_plate_opening` (~568 tokens)

Input parameters:

- `boundary_node_ids` (string)
- `corner_points` (string)
- `model` (string)
- `model_ref` (string)
- `opening_id` (number)
- `surface_id` (number)
- `target_size` (number)

### `add_plate_grid_elements` (~595 tokens)

Input parameters:

- `behavior` (string)
- `corner_points` (string, required)
- `divisions_u` (number)
- `divisions_v` (number)
- `edge_support` (string)
- `first_element_id` (number)
- `local_x_direction` (string)
- `material_id` (number)
- `model` (string)
- `model_ref` (string)
- `plane_state` (string)
- `theory` (string)
- `thickness` (number)

### `summarize_plate_results` (~645 tokens)

Input parameters:

- `case_or_combination` (string)
- `quantities` (string)
- `results` (string, required)
- `thickness` (number)
- `top_n` (number)
- `yield_stress` (number)

### `render_report` (~94 tokens)

Input parameters:

- `solved_model` (string, required)

### `list_sections` (~135 tokens)

Input parameters:

- `family` (string)

### `get_section` (~116 tokens)

Input parameters:

- `name` (string, required)

### `list_materials` (~55 tokens)

### `get_schema` (~147 tokens)

Input parameters:

- `root` (string)

### `get_check_schema` (~60 tokens)

### `add_unity_check` (~131 tokens)

Input parameters:

- `check` (string, required)
- `model` (string)
- `model_ref` (string)

### `save_model` (~104 tokens)

Input parameters:

- `description` (string)
- `model` (string)
- `model_ref` (string)
- `name` (string, required)

### `load_model` (~33 tokens)

Input parameters:

- `id` (string, required)

### `list_models` (~24 tokens)

### `list_templates` (~23 tokens)

### `get_template` (~51 tokens)

Input parameters:

- `name` (string, required)

### `get_usage` (~32 tokens)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp#diagnostics

## Score history

- 2026-11-05: 47
- 2026-11-04: 47
- 2026-11-03: 31
- 2026-11-02: 31
- 2026-11-01: 46
- 2026-10-31: 45
- 2026-10-30: 45
- 2026-10-29: 44
- 2026-10-28: 44
- 2026-10-27: 28
- 2026-10-26: 40
- 2026-10-25: 40
- 2026-10-24: 40
- 2026-10-23: 40
- 2026-10-22: 40
- 2026-10-21: 25

## Common questions

### What is the FERS — structural FEM MCP server?

FERS — structural FEM is an MCP server listed in the public MCP registry as com.ferscloud/fers. Structural FEM for AI agents: frames, plates, buckling, seismic and Eurocode checks, solved locally. This page covers its npm package (@ferscloud/fers-mcp).

### Is the FERS — structural FEM MCP server safe to use?

FERS — structural FEM scores 47 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. 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.

### Is the FERS — structural FEM MCP server still maintained?

FERS — structural FEM 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

- npm package: https://www.npmjs.com/package/@ferscloud/fers-mcp
- Socket report: https://socket.dev/npm/package/@ferscloud/fers-mcp
- Repository: https://github.com/Jeroen124/FERS_core
- Website: https://ferscloud.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-ferscloud-fers/ferscloud-fers-mcp
