Servidor MCP

OPC UA Modeler

io.github.node-opcua/node-opcua-modeler-mcp-server
Herramientas para desarrolladores IoT y hardware Público y accesible MCP 2025-11-25

Qué hace este MCP

Helps model OPC UA companion-spec types and namespaces, validate YAML models, and generate or reverse-engineer NodeSet2 artifacts.

find_engineering_unit
Find an engineering unit
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Description or common name of the unit (e.g. "revolutions per minute", "celsius", "pressure bar")'}}, 'additionalProperties': False}
find_reusable_block
Find a reusable interface or AddIn
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Member name or capability keyword (e.g. "SerialNumber", "health", "calibration")'}}, 'additionalProperties': False}
get_dsl_reference
Get the DSL grammar reference
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.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_type_details
Get type details
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. `specRef`, on the type and on a member, is the link to the section of the specification that defines it: cite it.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['alias', 'browseName'], 'properties': {'alias': {'type': 'string', 'description': 'Companion spec alias where the type is defined (e.g. "machinery")'}, 'browseName': {'type': 'string', 'description': 'The type browse name (e.g. "MachineryItemIdentificationType")'}}, 'additionalProperties': False}
list_namespaces
List companion specifications
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_types
List types in a namespace
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['alias'], 'properties': {'alias': {'type': 'string', 'description': 'Companion spec alias (e.g. "machinery", "di", "robotics")'}}, 'additionalProperties': False}
opcua_model_create
Create a model from a description
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.
Solo lectura Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'Natural language description of the OPC UA model to generate'}, 'forceSpecs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Companion spec aliases to force (e.g. ["di", "ia"])'}}, 'additionalProperties': False}
opcua_model_generate
Generate NodeSet2 XML
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.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['yaml'], 'properties': {'yaml': {'type': 'string', 'description': 'The full YAML model source to generate from'}, 'include_docs': {'type': 'boolean', 'description': 'Set to true to include markdown documentation (slower)'}}, 'additionalProperties': False}
opcua_model_reverse
Reverse-engineer NodeSet2 XML
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.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['xml'], 'properties': {'xml': {'type': 'string', 'description': 'The NodeSet2.xml content to reverse-engineer'}, 'namespace_uri': {'type': 'string', 'description': 'Target namespace URI to extract (auto-detected if omitted)'}, 'self_contained': {'type': 'boolean', 'description': 'Return one self-contained .opcua.yaml stream: the model, its NodeId symbol table and dependency declarations (default: bare YAML)'}}, 'additionalProperties': False}
opcua_model_validate
Validate an OPC UA model
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.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['yaml'], 'properties': {'yaml': {'type': 'string', 'description': 'The full YAML model source to validate'}}, 'additionalProperties': False}
resolve_dependencies
Resolve namespace dependencies
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['aliases'], 'properties': {'aliases': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Companion spec aliases to resolve (e.g. ["machineTool", "robotics"])'}}, 'additionalProperties': False}
search_types
Search types across specs
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search keyword (e.g. "identification", "temperature", "motion")'}}, 'additionalProperties': False}
Modificado
get_type_details
23 de September de 2026 a las 02:47
Añadido
opcua_model_create
17 de September de 2026 a las 12:45
Añadido
opcua_model_reverse
17 de September de 2026 a las 12:45
Añadido
opcua_model_generate
17 de September de 2026 a las 12:45
Añadido
opcua_model_validate
17 de September de 2026 a las 12:45
Añadido
get_dsl_reference
17 de September de 2026 a las 12:45
Añadido
find_engineering_unit
17 de September de 2026 a las 12:45
Añadido
find_reusable_block
17 de September de 2026 a las 12:45
Añadido
search_types
17 de September de 2026 a las 12:45
Añadido
get_type_details
17 de September de 2026 a las 12:45
Añadido
list_types
17 de September de 2026 a las 12:45
Añadido
list_namespaces
17 de September de 2026 a las 12:45
Añadido
resolve_dependencies
17 de September de 2026 a las 12:45