OPC UA MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OPC UA MCP Serverread value of ns=2;s=Temperature"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OPC UA MCP Server
A Python application that connects to an OPC UA server and exposes it via MCP (Model Context Protocol) using FastMCP.
Features
Connect to any OPC UA server with optional authentication
Browse the complete node tree from a configurable starting node
Expose the OPC UA node tree as MCP resources
Read values from OPC UA nodes
Search nodes by display name or browse name with wildcard support
Support for both stdio and SSE (Server-Sent Events) transport methods
Related MCP server: opcua2mcp
Installation
pip install -r requirements.txtUsage
Basic usage with HTTP transport (default):
python opcua_mcp_server.py opc.tcp://localhost:4840With authentication:
python opcua_mcp_server.py opc.tcp://localhost:4840 --username myuser --password mypassUsing stdio transport:
python opcua_mcp_server.py opc.tcp://localhost:4840 --transport stdioWith custom starting node and HTTP port:
python opcua_mcp_server.py opc.tcp://localhost:4840 --start-node "i=84" --http-port 8080Command Line Arguments
opcua_url(required): OPC UA server URL (e.g., opc.tcp://localhost:4840)--start-node: Starting node ID for browsing (default: i=85)--username: Username for OPC UA authentication--password: Password for OPC UA authentication--transport: MCP transport method - 'stdio' or 'http' (default: http)--http-port: Port for HTTP transport (default: 3000)
MCP Tools
The server provides the following tools:
read-value
Read the current value of one or more OPC UA nodes.
Parameters:
node_ids: List of node IDs to read
Example:
{
"node_ids": ["ns=2;s=MyVariable", "ns=2;s=Temperature"]
}find-by-display-name
Find nodes by display name pattern (supports wildcards).
Parameters:
pattern: Display name pattern with wildcards (e.g., Temperature)
Example:
{
"pattern": "*Temperature*"
}find-by-browse-name
Find nodes by browse name pattern (supports wildcards).
Parameters:
pattern: Browse name pattern with wildcards (e.g., Sensor)
Example:
{
"pattern": "*Sensor*"
}Node Information
Each node in the tree contains:
node_id: The OPC UA node identifierbrowse_name: The browse name of the nodedisplay_name: The human-readable display namenode_class: The type of node (e.g., Object, Variable, Method, etc.)children: List of child nodes (only for non-leaf nodes)
Example
Start an OPC UA server (e.g., using
opcua-asyncioexample server)Run the MCP server:
python opcua_mcp_server.py opc.tcp://localhost:4840The MCP server will connect to the OPC UA server, browse the node tree, and expose it via MCP
You can now use any MCP client to interact with the OPC UA data
Error Handling
The server will exit if it cannot connect to the OPC UA server
Individual node read errors are returned in the response
The server properly disconnects from the OPC UA server on shutdown
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and browse every MCP server in the Model Context Protocol registry.
An MCP server that provides access to Testiny projects, test cases and test runs
2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects AI agents to OPC UA-enabled industrial systems for real-time monitoring and control of operational data. It enables users to read, write, and browse industrial device nodes through natural language interactions.MIT
- AlicenseNot gradedqualityCmaintenanceConverts OPC UA sensor data into MCP-compatible tools and exposes machine health via both HTTP and MCP.1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceThis MCP server enables AI agents to read MQTT and Sparkplug B data via tools like list_topics, get_latest, and read_all, providing read-only access to latest sensor values.1MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that bridges MQTT sensor data to MCP, allowing clients to query cached sensor readings and send commands via tools like list_topics, read_topic, and publish.-