# OPC UA Modeler (npm · node-opcua-modeler-mcp-server)

OPC UA companion spec types, namespace dependencies, and engineering units for AI agents

- Trust score: 79/100 (medium)
- Change this week: +33
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `node-opcua-modeler-mcp-server`: 79/100 (this document), [markdown](https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server.md), [page](https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `node-opcua-modeler-mcp-server`
- Version: `1.4.2`
- 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-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to node-opcua/node-opcua-modeler-mcp-server).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 952 tokens (~79/item across 12 items; 12 tools + 0 resources), lean.
  - 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.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add node-opcua-node-opcua-modeler-mcp-server -- npx -y node-opcua-modeler-mcp-server
```

### Codex

```bash
codex mcp add node-opcua-node-opcua-modeler-mcp-server -- npx -y node-opcua-modeler-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "node-opcua-node-opcua-modeler-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "node-opcua-modeler-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add node-opcua-node-opcua-modeler-mcp-server --command npx --arg -y --arg node-opcua-modeler-mcp-server
```

### Hermes

```yaml
mcp_servers:
  node-opcua-node-opcua-modeler-mcp-server:
    command: "npx"
    args: ["-y", "node-opcua-modeler-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "node-opcua-node-opcua-modeler-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "node-opcua-modeler-mcp-server"
      ]
    }
  }
}
```

## 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-08-02 (score 79, +40)

- [security regression] Provenance: pass → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: node-opcua/node-opcua-modeler-mcp-server
- [functional regression] License: pass → unverified
- [functional regression] Maintenance: pass → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 39, +5)

- [security regression] Known CVEs: partial → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional] Package version: 1.3.0 → 1.4.2

### 2026-07-31 (score 34, −12)

- [security regression] Malware scan: pass → unverified
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (12)

### `resolve_dependencies` (~67 tokens)

Given one or more companion spec namespace aliases, returns the full resolved dependency list that MUST go in the YAML `namespaces:` section. Always call this before generating the namespaces block.

Input parameters:

- `aliases` (array, required): Companion spec aliases to resolve (e.g. ["machineTool", "robotics"])

### `list_namespaces` (~39 tokens)

List all well-known OPC UA companion spec namespace aliases with their full names, URIs, and dependencies. Use this to discover what namespaces are available.

### `list_types` (~67 tokens)

List ALL ObjectTypes, VariableTypes, and InterfaceTypes defined in a specific companion spec namespace. ALWAYS call this before using any type from a namespace — NEVER guess type names.

Input parameters:

- `alias` (string, required): Companion spec alias (e.g. "machinery", "di", "robotics")

### `get_type_details` (~89 tokens)

Get detailed information about a specific type: its components, properties, methods, interfaces, and optional members. Use this to understand a type's structure before creating instances or subtypes.

Input parameters:

- `alias` (string, required): Companion spec alias where the type is defined (e.g. "machinery")
- `browseName` (string, required): The type browse name (e.g. "MachineryItemIdentificationType")

### `search_types` (~60 tokens)

Search for types across ALL companion specs by keyword. Use this when you don't know which namespace defines a type. Returns matching types with their namespace alias.

Input parameters:

- `query` (string, required): Search keyword (e.g. "identification", "temperature", "motion")

### `find_reusable_block` (~137 tokens)

Find reusable Interfaces / AddIns by capability — pass a member name or keyword (e.g. "SerialNumber", "DeviceHealth", "Location") and get the standard blocks that already expose it. PREFER applying/composing an existing block over redefining its members inline. Interfaces are applied with `interfaces:`; addins (types with a DefaultInstanceBrowseName) are composed with `addIns:`. A single property → use the Interface; a whole named sub-object → use the AddIn.

Input parameters:

- `query` (string, required): Member name or capability keyword (e.g. "SerialNumber", "health", "calibration")

### `find_engineering_unit` (~73 tokens)

Find the official UNECE Rec. 20 engineering unit symbol for a given description. ALWAYS call this before using any engineering unit — NEVER guess unit symbols.

Input parameters:

- `query` (string, required): Description or common name of the unit (e.g. "revolutions per minute", "celsius", "pressure bar")

### `get_dsl_reference` (~58 tokens)

Get the grammar reference for the OPC UA modeler YAML DSL: file header, top-level sections, name-prefix conventions, minimal examples, and common mistakes. Call this FIRST before writing any YAML model by hand. Works without an API key.

### `opcua_model_validate` (~69 tokens)

Validate an OPC UA YAML model for correctness. Returns diagnostics with severity (error/warning/info), codes, messages, and line numbers. Works without an API key (limited to 50 calls/day). ALWAYS validate before generating.

Input parameters:

- `yaml` (string, required): The full YAML model source to validate

### `opcua_model_generate` (~104 tokens)

Generate OPC UA NodeSet2.xml and Symbols.CSV from a YAML model. Requires an API key (set OPCUA_MODELER_API_KEY env var). Returns base64-encoded artifacts if the model is valid, or diagnostics if validation fails. Optionally set include_docs=true to also generate markdown documentation.

Input parameters:

- `include_docs` (boolean): Set to true to include markdown documentation (slower)
- `yaml` (string, required): The full YAML model source to generate from

### `opcua_model_reverse` (~87 tokens)

Reverse-engineer a NodeSet2.xml file back into the YAML DSL format. Requires an API key (set OPCUA_MODELER_API_KEY env var). Optionally specify the target namespace URI to extract.

Input parameters:

- `namespace_uri` (string): Target namespace URI to extract (auto-detected if omitted)
- `xml` (string, required): The NodeSet2.xml content to reverse-engineer

### `opcua_model_create` (~102 tokens)

Generate an OPC UA YAML model from a natural language description using AI. Requires an API key (set OPCUA_MODELER_API_KEY env var). The AI will auto-detect relevant companion specs, generate a validated model with documentation, and auto-correct validation errors.

Input parameters:

- `forceSpecs` (array): Companion spec aliases to force (e.g. ["di", "ia"])
- `prompt` (string, required): Natural language description of the OPC UA model to generate

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server#diagnostics

## Score history

- 2026-08-03: 79
- 2026-08-02: 79
- 2026-08-01: 39
- 2026-07-31: 34
- 2026-07-29: 46
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/node-opcua-modeler-mcp-server
- Socket report: https://socket.dev/npm/package/node-opcua-modeler-mcp-server
- Repository: https://github.com/node-opcua/node-opcua-modeler-mcp-server
- Website: https://opcua-modeler.sterfive.io/
- Changelog RSS feed: https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/node-opcua-node-opcua-modeler-mcp-server/node-opcua-modeler-mcp-server
