OPC Foundation OPC UA MCP
Official .NET tool that exposes OPC UA services to MCP clients, with selectable tool profiles.
Who it's for
An engineer attaching an MCP client to OPC UA. Treat the write policy as the safety boundary: a gated write is still a write once you arm it.
Caveat / limitations
Package OPCFoundation.NetStandard.Opc.Ua.Mcp, run with dotnet tool exec or a global install as opcua-mcp. Profiles select a bounded tool catalog (core, machinery, alarms, history, and others). The default profile is broad, and UA services include writes, so treat the default as able to write. The repository is under the OPC Foundation MIT license. A WoT profile can also reach HTTP, MQTT, and Modbus TCP; that is optional and not the reason to install it.
Protocols
Sources
- McpREADMEhttps://github.com/OPCFoundation/UA-.NETStandard/blob/master/tools/Opc.Ua.Mcp/McpREADME.md
- UA-.NETStandardhttps://github.com/OPCFoundation/UA-.NETStandard
This page: https://otaihub.com/tools/opc-foundation-ua-mcp
Same protocol
Compare all OPC UA MCP servers
- Proxus Industrial MCP ServerRead-only Modbus TCP and OPC UA server with named register maps and a connection diagnostic.
- IndustriConnect OPC UA MCPPython and Node OPC UA MCP servers with the same tools: browse, read, history, alarms, and gated writes.
- plctapOne MCP server for Modbus, FINS, MELSEC, S7, IEC 104, EtherNet/IP, and OPC UA, with protocol detection.
- FieldWorks protocol adaptersRust MCP adapters with one tool surface. MQTT and OPC UA are implemented; Modbus, DNP3, and EtherNet/IP are stubs.
Same category
- CODESYS Development System MCP ServerOfficial CODESYS add-on that lets an MCP client read and write the open project, compile, and fix Structured Text.
- IndustriConnect Modbus MCPOpen-source Modbus TCP, UDP, and RTU client for MCP hosts, with a mock device and writes off by default.
- IndustriConnect OPC UA MCPPython and Node OPC UA MCP servers with the same tools: browse, read, history, alarms, and gated writes.
- IndustriConnect MQTT / Sparkplug MCPMQTT client that publishes, subscribes, and decodes Sparkplug B instead of handing the model raw bytes.