MCPcopy Index your code
hub / github.com/eclipse-milo/milo

github.com/eclipse-milo/milo @v1.1.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.4 ↗ · + Follow
38,815 symbols 116,681 edges 2,514 files 9,735 documented · 25%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Eclipse Milo

Actions Maven Central

Milo is an open-source implementation of OPC UA (currently targeting 1.05). It includes a high-performance stack (channels, serialization, data structures, security) as well as client and server SDKs built on top of the stack.

Stack Overflow tag: milo

Mailing list: https://dev.eclipse.org/mailman/listinfo/milo-dev

Maven

Building Milo

Using JDK 17, run mvn clean install from the project root.

To maintain compatibility with Java 17 it is recommended that you build using JDK 17, however the library is runtime compatible with versions 17 and later (e.g. JDK 21, JDK 24).

Releases

Releases are published to Maven Central and snapshots to Sonatype.

OPC UA Client SDK

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>milo-sdk-client</artifactId>
    <version>1.1.3</version>
</dependency>

OPC UA Server SDK

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>milo-sdk-server</artifactId>
    <version>1.1.3</version>
</dependency>

Referencing a SNAPSHOT release requires the Sonatype snapshot repository be added to your pom file:

<repository>
    <id>oss-sonatype</id>
    <name>oss-sonatype</name>
    <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>

Public Demo Server

An internet-facing instance of this demo server is accessible at opc.tcp://milo.digitalpetri.com:62541/milo.

It accepts both unsecured and secured connections. All incoming client certificates are automatically trusted.

Authenticate anonymously or with one of the following credential pairs:

  • User / password
    • roles: WellKnownRole_AuthenticatedUser
  • UserA / password
    • roles: SiteA_Read, SiteA_Write
  • UserB / password
    • roles: SiteB_Read, SiteB_Write
  • SiteAdmin / password
    • roles: SiteA_Read, SiteB_Read
  • SecurityAdmin / password
    • roles: WellKnownRole_SecurityAdmin

The code powering the demo server is available here: https://github.com/digitalpetri/opc-ua-demo-server

Extension points exported contracts — how you extend this code

UaEnumeratedType (Interface)
Identifies an OPC UA enumerated type. [53 implementers]
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/UaEnumeratedType.java
FiniteTransitionVariableType (Interface)
@see https://reference.opcfoundation.org/v [7 implementers]
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/variables/FiniteTransitionVariableType.java
AddressSpaceFragment (Interface)
An AddressSpace fragment that is part of an AddressSpaceComposite. Fragments have an {@link AddressS [23 implementers]
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/AddressSpaceFragment.java
OpcServerTransportFactory (Interface)
(no doc) [14 implementers]
opc-ua-stack/transport/src/main/java/org/eclipse/milo/opcua/stack/transport/server/OpcServerTransportFactory.java
ClientExample (Interface)
(no doc) [19 implementers]
milo-examples/client-examples/src/main/java/org/eclipse/milo/examples/client/ClientExample.java
ObjectNode (Interface)
(no doc) [7 implementers]
opc-ua-sdk/sdk-core/src/main/java/org/eclipse/milo/opcua/sdk/core/nodes/ObjectNode.java
BinaryCodecFactory (Interface)
(no doc) [3 implementers]
opc-ua-sdk/dtd-reader/src/main/java/org/eclipse/milo/opcua/sdk/client/dtd/BinaryCodecFactory.java
BinaryDataTypeCodec (Interface)
(no doc) [2 implementers]
opc-ua-sdk/dtd-core/src/main/java/org/eclipse/milo/opcua/sdk/core/dtd/BinaryDataTypeCodec.java

Core symbols most depended-on inside this repo

uint
called by 14657
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/builtin/unsigned/Unsigned.java
expanded
called by 6723
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/builtin/NodeId.java
addReference
called by 6607
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/nodes/UaServerNode.java
valueOf
called by 6499
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/builtin/unsigned/UInteger.java
getValue
called by 5373
opc-ua-sdk/sdk-core/src/main/java/org/eclipse/milo/opcua/sdk/core/nodes/VariableNode.java
parse
called by 3827
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/builtin/ExpandedNodeId.java
get
called by 3464
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/NodeManager.java
english
called by 3298
opc-ua-stack/stack-core/src/main/java/org/eclipse/milo/opcua/stack/core/types/builtin/LocalizedText.java

Shape

Method 35,554
Class 2,360
Interface 805
Enum 96

Languages

Java100%

Modules by API surface

opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/namespaces/loader/ObjectNodeLoader.java843 symbols
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/namespaces/loader/MethodNodeLoader.java431 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/variables/SessionDiagnosticsVariableTypeNode.java346 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/variables/SessionDiagnosticsVariableType.java345 symbols
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/namespaces/loader/DataTypeNodeLoader.java287 symbols
opc-ua-sdk/sdk-server/src/main/java/org/eclipse/milo/opcua/sdk/server/namespaces/loader/ObjectTypeNodeLoader.java272 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/variables/SubscriptionDiagnosticsTypeNode.java250 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/variables/SubscriptionDiagnosticsType.java249 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/objects/ServerCapabilitiesTypeNode.java162 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/objects/ServerCapabilitiesType.java161 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/objects/AlarmConditionTypeNode.java134 symbols
opc-ua-sdk/sdk-client/src/main/java/org/eclipse/milo/opcua/sdk/client/model/objects/AlarmConditionType.java133 symbols

For agents

$ claude mcp add milo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact