OPC UA Modeler
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
OPC UA companion spec types, namespace dependencies, and engineering units for AI agents
| Author | io.github.node-opcua |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 615 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"OPC UA Modeler": {
"url": "https://api.opcua-modeler.sterfive.io/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (12)
resolve_dependenciesread-onlyGiven 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.
Parameters:
aliases(required) — array — Companion spec aliases to resolve (e.g. ["machineTool", "robotics"])
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
list_namespacesread-onlyList all well-known OPC UA companion spec namespace aliases with their full names, URIs, and dependencies. Use this to discover what namespaces are available.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
list_typesread-onlyList 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.
Parameters:
alias(required) — string — Companion spec alias (e.g. "machinery", "di", "robotics")
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_type_detailsread-onlyGet 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. `specRef`, on the type and on a member, is the link to the section of the specification that defines it: cite it.
Parameters:
alias(required) — string — Companion spec alias where the type is defined (e.g. "machinery")browseName(required) — string — The type browse name (e.g. "MachineryItemIdentificationType")
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
search_typesread-onlySearch 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.
Parameters:
query(required) — string — Search keyword (e.g. "identification", "temperature", "motion")
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
find_reusable_blockread-onlyFind 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.
Parameters:
query(required) — string — Member name or capability keyword (e.g. "SerialNumber", "health", "calibration")
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
find_engineering_unitread-onlyFind the official UNECE Rec. 20 engineering unit symbol for a given description. ALWAYS call this before using any engineering unit — NEVER guess unit symbols.
Parameters:
query(required) — string — Description or common name of the unit (e.g. "revolutions per minute", "celsius", "pressure bar")
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_dsl_referenceread-onlyGet 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.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
opcua_model_validateread-onlyValidate 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.
Parameters:
yaml(required) — string — The full YAML model source to validate
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
opcua_model_generateread-onlyGenerate OPC UA NodeSet2.xml and the symbols CSV from a YAML model. Requires an API key (set OPCUA_MODELER_API_KEY env var). NodeIds stay stable only if each regeneration passes back the symbols of the previous one: pass symbols_csv, or mode "new" for a first generation, or mode "renumber" to change ids on purpose. A call with none of these is refused with SYMBOLS_DECISION_REQUIRED. Returns base64-encoded artifacts if the model is valid. The result lists symbol counts (reused/new/dropped), hints and next steps.
Parameters:
yaml(required) — string — The full YAML model source to generate frommode— string — "new": first generation, no symbols yet. "update": regeneration, symbols required. "renumber": allocate new NodeIds on purpose. Omit when passing symbols.symbols_csv— string — The symbols CSV of the previous generation (the content of <name>.model.symbols.csv, or the base64 symbols_csv a previous call returned). Keeps NodeIds stable.include_docs— boolean — Set to true to include markdown documentation (slower)
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
opcua_model_reverseread-onlyReverse-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.
Parameters:
xml(required) — string — The NodeSet2.xml content to reverse-engineernamespace_uri— string — Target namespace URI to extract (auto-detected if omitted)self_contained— boolean — Return one self-contained .opcua.yaml stream: the model, its NodeId symbol table and dependency declarations (default: bare YAML)
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
opcua_model_createread-onlyGenerate 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.
Parameters:
prompt(required) — string — Natural language description of the OPC UA model to generateforceSpecs— array — Companion spec aliases to force (e.g. ["di", "ia"])
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.