MCP Directory

OPC UA MCP Server

Connect AI agents to OPC UA industrial systems to monitor, analyze, and control operational data in real time.

Unverified
stdio (local)
No auth
Stale
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone https://github.com/kukapay/opcua-mcp.git && cd opcua-mcp && pip install mcp[cli] opcua cryptography

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "opc-ua-mcp-server": {
      "command": "python",
      "args": [
        "path/to/opcua_mcp/main.py"
      ],
      "env": {
        "OPCUA_SERVER_URL": "your-opc-ua-server-url"
      }
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Python 3.13 or higher
  • An OPC UA server (a simulator or a real industrial device)
  • OPCUA_SERVER_URL environment variable pointing to the target OPC UA server

About OPC UA MCP Server

OPC UA MCP Server bridges AI agents and OPC UA-enabled industrial systems. OPC UA (Open Platform Communications Unified Architecture) is a standard protocol for industrial automation, used to read and write data from PLCs, sensors, and other devices. This server exposes that protocol over MCP, letting an AI client read real-time node values, write values to control devices, browse the node address space, and perform batch reads and writes. It targets developers and engineers who want to connect AI-driven workflows with industrial automation and SCADA systems.

Tools & capabilities (5)

read_opcua_node

Read the value of a specific OPC UA node. Takes a node_id (e.g. ns=2;i=2) and returns a string with the node ID and its value (e.g. 'Node ns=2;i=2 value: 42').

write_opcua_node

Write a value to a specific OPC UA node. Takes a node_id (e.g. ns=2;i=3) and a value (converted based on node type), and returns a success or error message (e.g. 'Successfully wrote 100 to node ns=2;i=3').

browse_nodes

Browse the OPC UA address space, listing the available nodes on the connected server.

read_multiple_opcua_nodes

Retrieve real-time values from multiple OPC UA nodes in a single batch read.

write_multiple_opcua_nodes

Write values to multiple OPC UA nodes in a single batch operation to control several devices at once.

When to use it

  • Query the current value of an industrial sensor or PLC tag in natural language (e.g. 'What's the value of node ns=2;i=2?').
  • Control devices by writing setpoints or commands to OPC UA nodes (e.g. 'Set node ns=2;i=3 to 100').
  • Monitor and analyze real-time operational data from industrial automation systems via an AI agent.
  • Discover the structure of an OPC UA server by browsing its node address space.
  • Efficiently read or update many nodes at once using batch read/write tools.

Security notes

The server can write values to OPC UA nodes, which controls live industrial devices. Restrict the OPCUA_SERVER_URL to trusted/isolated networks and review write operations carefully, as incorrect values can affect physical equipment. The README's example configuration connects without authentication or encryption; use OPC UA security (user credentials and certificates) for production deployments.

OPC UA MCP Server FAQ

What is OPC UA?

OPC UA (Open Platform Communications Unified Architecture) is a standardized machine-to-machine communication protocol widely used in industrial automation to read and write data from PLCs, sensors, and other devices.

How do I point the server at my OPC UA system?

Set the OPCUA_SERVER_URL environment variable in the MCP client configuration to your OPC UA server's endpoint URL.

Can it control physical equipment?

Yes. The write tools send values to OPC UA nodes, which can change setpoints and control live industrial devices, so write operations should be reviewed carefully.

Which MCP clients does it work with?

It works with MCP clients such as Claude Desktop, configured via a standard mcpServers stdio entry that runs the Python server.

Alternatives to OPC UA MCP Server

Compare all alternatives →

Official Elastic server: list indices, read mappings, and search with Query DSL.

Verified
stdio (local)
API key
TypeScript
5 tools
Updated 4 months agoRepo

Official PostHog server: product analytics, feature flags, experiments, error tracking and SQL.

Verified
stdio (local)
API key
TypeScript
12 tools
Updated 5 months agoRepo

Run PromQL queries and analyze Prometheus metrics from any MCP client.

Verified
stdio (local)
No auth
Python
6 tools
Updated 1 month agoRepo