Skip to content
Cursor

OPC UA MCP Server for Cursor

io.github.midhunxavier/opcua

Connect AI assistants to industrial OPC UA: browse, read, history, subscriptions, events and alarms.

client:Cursor transport:stdio runtime:npm

Install OPC UA MCP Server in Cursor

~/.cursor/mcp.json · windows: %USERPROFILE%\.cursor\mcp.json

Held in this page only — never stored, logged, or sent anywhere but back to your screen.

{
  "mcpServers": {
    "opcua": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "opcua-mcp-server"
      ],
      "env": {
        "OPCUA_SERVER_URL": "<OPCUA_SERVER_URL>",
        "OPCUA_PYTHON_BACKEND": "<OPCUA_PYTHON_BACKEND>",
        "OPCUA_SECURITY_POLICY": "<OPCUA_SECURITY_POLICY>",
        "OPCUA_SECURITY_MODE": "<OPCUA_SECURITY_MODE>",
        "OPCUA_CLIENT_CERT": "<OPCUA_CLIENT_CERT>",
        "OPCUA_CLIENT_KEY": "<OPCUA_CLIENT_KEY>",
        "OPCUA_APPLICATION_URI": "<OPCUA_APPLICATION_URI>",
        "OPCUA_SERVER_CERT": "<OPCUA_SERVER_CERT>",
        "OPCUA_SERVER_TRUST_STORE": "<OPCUA_SERVER_TRUST_STORE>",
        "OPCUA_SERVER_APPLICATION_URI": "<OPCUA_SERVER_APPLICATION_URI>",
        "OPCUA_USERNAME": "<OPCUA_USERNAME>",
        "OPCUA_PASSWORD": "<OPCUA_PASSWORD>",
        "OPCUA_USER_CERT": "<OPCUA_USER_CERT>",
        "OPCUA_USER_KEY": "<OPCUA_USER_KEY>",
        "OPCUA_PROFILE": "<OPCUA_PROFILE>",
        "OPCUA_POLICY_FILE": "<OPCUA_POLICY_FILE>",
        "OPCUA_ALLOWED_TOOLS": "<OPCUA_ALLOWED_TOOLS>",
        "OPCUA_ALLOWED_WRITE_NODES": "<OPCUA_ALLOWED_WRITE_NODES>",
        "OPCUA_ALLOWED_METHODS": "<OPCUA_ALLOWED_METHODS>",
        "OPCUA_ALLOW_ACKNOWLEDGE_ALARMS": "<OPCUA_ALLOW_ACKNOWLEDGE_ALARMS>",
        "OPCUA_ALLOW_INSECURE_CONTROL": "<OPCUA_ALLOW_INSECURE_CONTROL>",
        "OPCUA_ALLOW_UNVERIFIED_SERVER_CONTROL": "<OPCUA_ALLOW_UNVERIFIED_SERVER_CONTROL>",
        "OPCUA_ALLOW_OUT_OF_RANGE_WRITES": "<OPCUA_ALLOW_OUT_OF_RANGE_WRITES>",
        "OPCUA_AUDIT_FILE": "<OPCUA_AUDIT_FILE>",
        "OPCUA_AUDIT_FSYNC": "<OPCUA_AUDIT_FSYNC>",
        "OPCUA_AUDIT_CHAIN": "<OPCUA_AUDIT_CHAIN>",
        "OPCUA_AUDIT_CHAIN_KEY_FILE": "<OPCUA_AUDIT_CHAIN_KEY_FILE>",
        "OPCUA_OPERATOR_ID": "<OPCUA_OPERATOR_ID>",
        "OPCUA_RECONNECT_INITIAL_DELAY_MS": "<OPCUA_RECONNECT_INITIAL_DELAY_MS>",
        "OPCUA_RECONNECT_MAX_DELAY_MS": "<OPCUA_RECONNECT_MAX_DELAY_MS>",
        "OPCUA_RECONNECT_MAX_RETRY": "<OPCUA_RECONNECT_MAX_RETRY>",
        "OPCUA_SESSION_TIMEOUT_MS": "<OPCUA_SESSION_TIMEOUT_MS>"
      }
    }
  }
}

Use .cursor/mcp.json in a project root instead to scope it to that project. Cursor merges both. Cursor docs

OPC UA MCP Server in other clients