KO

kukapay/opcua-mcp

Developer tools
30 stars 0 forks Quality 55 Trend 55

An MCP server that connects to OPC UA-enabled industrial systems.

Overview

An MCP server that connects to OPC UA-enabled industrial systems, allowing AI agents to monitor, analyze, and control operational data in real time. This project is ideal for developers and engineers looking to bridge AI-driven workflows with industrial automation systems. - : Retrieve real-time values from industrial devices. - : Control devices by writing values to specified nodes. - : Request to list allopcua nodes - : Retrieve multiple real-time values from devices. - : Control devices by writing values to multiple nodes. - : Works with MCP clients like Claude Desktop for natural language interaction. The server exposes five tools: - : - : Read the value of a specific OPC UA node. - : - node_id (str): OPC UA node ID (e.g., ns=2;i=2). - : A string with the node ID and its value (e.g., "Node ns=2;i=2 value: 42"). - : - : Write a value to a specific OPC UA node. - : - node_id (str): OPC UA node ID (e.g., ns=2;i=3). - value (str): Value to write (converted based on node type).

README

OPC UA MCP Server

An MCP server that connects to OPC UA-enabled industrial systems, allowing AI agents to monitor, analyze, and control operational data in real time.

This project is ideal for developers and engineers looking to bridge AI-driven workflows with industrial automation systems.

Features

  • Read OPC UA Nodes: Retrieve real-time values from industrial devices.
  • Write to OPC UA Nodes: Control devices by writing values to specified nodes.
  • Browse nodes: Request to list allopcua nodes
  • Read multiple OPC UA Nodes: Retrieve multiple real-time values from devices.
  • Write to multiple OPC UA Nodes: Control devices by writing values to multiple nodes.
  • Seamless Integration: Works with MCP clients like Claude Desktop for natural language interaction.

Tools

The server exposes five tools:

  • read_opcua_node:

    • Description: Read the value of a specific OPC UA node.
    • Parameters:
      • node_id (str): OPC UA node ID (e.g., ns=2;i=2).
    • Returns: A string with the node ID and its value (e.g., “Node ns=2;i=2 value: 42”).
  • write_opcua_node:

    • Description: Write a value to a specific OPC UA node.
    • Parameters:
      • node_id (str): OPC UA node ID (e.g., ns=2;i=3).
      • value (str): Value to write (converted based on node type).
    • Returns: A success or error message (e.g., “Successfully wrote 100 to node ns=2;i=3”).
  • Browse nodes:

    • Description: Read the value of a specific OPC UA node.
  • Read multiple OPC UA Nodes:

    • Description: Read the value of a specific OPC UA node.
  • Write to multiple OPC UA Nodes:

    • Description: Read the value of a specific OPC UA node.

Example Prompts

  • “What’s the value of node ns=2;i=2?” → Returns the current value.
  • “Set node ns=2;i=3 to 100.” → Writes 100 to the node.

Installation

Prerequisites

  • Python 3.13 or higher
  • An OPC UA server (e.g., a simulator or real industrial device)

Install Dependencies

Clone the repository and install the required Python packages:

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

MCP Client Configuration

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

License

This project is licensed under the MIT License. See the LICENSE file for details.

View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide

Configuration

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