OPC UA Modeler

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

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
88%
이름 품질
92%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,766토큰 (도구 정의)
~814 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.38%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

실행 가능한 패키지

npmnode-opcua-modeler-mcp-server1.6.1stdio

원격 엔드포인트

https://api.opcua-modeler.sterfive.io/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (12)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢resolve_dependencies(aliases)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "aliases": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Companion spec aliases to resolve (e.g. [\"machineTool\", \"robotics\"])"
    }
  },
  "required": [
    "aliases"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_namespaces

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_types(alias)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "alias": {
      "type": "string",
      "description": "Companion spec alias (e.g. \"machinery\", \"di\", \"robotics\")"
    }
  },
  "required": [
    "alias"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_type_details(alias, browseName)

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.

입력 스키마

{
  "type": "object",
  "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\")"
    }
  },
  "required": [
    "alias",
    "browseName"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_types(query)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search keyword (e.g. \"identification\", \"temperature\", \"motion\")"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_reusable_block(query)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Member name or capability keyword (e.g. \"SerialNumber\", \"health\", \"calibration\")"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_engineering_unit(query)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Description or common name of the unit (e.g. \"revolutions per minute\", \"celsius\", \"pressure bar\")"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_dsl_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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢opcua_model_validate(yaml)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "yaml": {
      "type": "string",
      "description": "The full YAML model source to validate"
    }
  },
  "required": [
    "yaml"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢opcua_model_generate(yaml, include_docs)

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.

입력 스키마

{
  "type": "object",
  "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)"
    }
  },
  "required": [
    "yaml"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢opcua_model_reverse(xml, namespace_uri, self_contained)

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.

입력 스키마

{
  "type": "object",
  "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)"
    }
  },
  "required": [
    "xml"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢opcua_model_create(prompt, forceSpecs)

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.

입력 스키마

{
  "type": "object",
  "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\"])"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 12개
검증됨버전이 기록되지 않음도구 12개