
OPC UA MCP Server
Connect AI agents to OPC UA industrial systems to monitor, analyze, and control operational data in real time.
Add to your client
Copy the config for your MCP client and paste it into its config file.
git clone https://github.com/kukapay/opcua-mcp.git && cd opcua-mcp && pip install mcp[cli] opcua cryptographyPaste 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_nodeRead 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_nodeWrite 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_nodesBrowse the OPC UA address space, listing the available nodes on the connected server.
read_multiple_opcua_nodesRetrieve real-time values from multiple OPC UA nodes in a single batch read.
write_multiple_opcua_nodesWrite 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.
Official PostHog server: product analytics, feature flags, experiments, error tracking and SQL.
Run PromQL queries and analyze Prometheus metrics from any MCP client.