OPC-UA MCP Server
by mwieczorkiewiczio.github.mwieczorkiewicz/opcua-mcpv1.0.0
Read, write, browse, search, and subscribe to live data on an OPC-UA industrial automation server.
context tax
queued
security
queued
cold start
queued
freshness
Maintained2mo ago
Install OPC-UA MCP server
Install in Claude Code
claude mcp add opcua -e OPCUA_ENDPOINT=opc.tcp://localhost:4840 -e OPCUA_PASSWORD='<opcua-password>' -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_PASSWORD ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4Install in Cursor
{
"mcpServers": {
"opcua": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_PASSWORD",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "opc.tcp://localhost:4840",
"OPCUA_PASSWORD": "<opcua-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"opcua": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_PASSWORD",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "opc.tcp://localhost:4840",
"OPCUA_PASSWORD": "<opcua-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"opcua": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_PASSWORD",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "opc.tcp://localhost:4840",
"OPCUA_PASSWORD": "<opcua-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"opcua": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_PASSWORD",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "opc.tcp://localhost:4840",
"OPCUA_PASSWORD": "<opcua-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| OPCUA_ENDPOINT | yes | — | OPC-UA server endpoint to connect to, e.g. opc.tcp://your-plc-host:4840 |
| OPCUA_AUTH_MODE | — | — | Authentication mode against the OPC-UA server |
| OPCUA_USERNAME | — | — | Username, required if OPCUA_AUTH_MODE=username |
| OPCUA_PASSWORD | — | yes | Password, required if OPCUA_AUTH_MODE=username |
| OPCUA_SECURITY_POLICY | — | — | OPC-UA transport security policy, e.g. Basic256Sha256 |
| OPCUA_SECURITY_MODE | — | — | OPC-UA transport security mode, e.g. SignAndEncrypt |
| SERVER_TRANSPORT | — | — | MCP transport: stdio (for local MCP clients) or http (for remote/hosted deployments) |
Freshness
Maintained — last maintenance signal 2mo ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-08-05 · 2mo ago · GitHub
Latest release
no data · GitHub
Package published
no data · npm/PyPI
Registry entry updated
2026-08-05 · 2mo ago · official registry · v1.0.0
FAQ
›How do I install the OPC-UA MCP server in Claude Code?
Run: claude mcp add opcua -e OPCUA_ENDPOINT=opc.tcp://localhost:4840 -e OPCUA_PASSWORD='<opcua-password>' -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_PASSWORD ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does OPC-UA require an API key?
Yes. It expects OPCUA_ENDPOINT, OPCUA_PASSWORD, of which 1 is a secret.
›Can I use OPC-UA as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is OPC-UA in the official MCP registry?
Yes, as io.github.mwieczorkiewicz/opcua-mcp.
Alternatives to OPC-UA
Other productivity & office MCP servers.