Skip to content
VS Code

otgate — OT policy gateway for VS Code

io.github.alikup-ai/otgate-opcua

Gates an LLM agent's writes to an OPC UA server on ranges, rate of change and live interlocks.

client:VS Code transport:stdio runtime:pypi

Install otgate — OT policy gateway in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "otgate-backend",
      "description": "OTGATE_BACKEND",
      "password": true
    },
    {
      "type": "promptString",
      "id": "otgate-policy",
      "description": "OTGATE_POLICY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "otgate-audit",
      "description": "OTGATE_AUDIT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "otgate-shadow",
      "description": "OTGATE_SHADOW",
      "password": true
    },
    {
      "type": "promptString",
      "id": "otgate-rate-history",
      "description": "OTGATE_RATE_HISTORY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "otgate-opcua-endpoint",
      "description": "OTGATE_OPCUA_ENDPOINT",
      "password": true
    }
  ],
  "servers": {
    "otgate-opcua": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "otgate"
      ],
      "env": {
        "OTGATE_BACKEND": "${input:otgate-backend}",
        "OTGATE_POLICY": "${input:otgate-policy}",
        "OTGATE_AUDIT": "${input:otgate-audit}",
        "OTGATE_SHADOW": "${input:otgate-shadow}",
        "OTGATE_RATE_HISTORY": "${input:otgate-rate-history}",
        "OTGATE_OPCUA_ENDPOINT": "${input:otgate-opcua-endpoint}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

otgate — OT policy gateway in other clients