
Gates an LLM agent's writes to an OPC UA server on ranges, rate of change and live interlocks.
Public tool metadata for what this MCP can expose to an agent.
read_tagNo parameter schema in public metadata yet.
write_tagNo parameter schema in public metadata yet.
browseNo parameter schema in public metadata yet.
get_audit_logNo parameter schema in public metadata yet.
list_pendingNo parameter schema in public metadata yet.
approveNo parameter schema in public metadata yet.
denyNo parameter schema in public metadata yet.
Sponsors
OTGATE_BACKENDdefault: fakeBackend to gate: 'fake' for the bundled in-memory reactor simulator, 'asyncua' for a real OPC UA server. Start with 'fake' — it needs no plant and no extra dependency.
OTGATE_POLICYdefault: examples/reactor_policy.yamlPath to the policy YAML. Any tag not listed in it is denied by default.
OTGATE_AUDITdefault: audit.jsonlPath to the append-only JSONL audit log. Every call, allowed or not, produces exactly one line.
OTGATE_SHADOWSet to 1 to run in shadow mode: allowed writes are recorded as 'WOULD execute' and never reach the backend. Use this to watch an agent for a while before letting it touch anything.
OTGATE_RATE_HISTORYPath to a JSONL file that keeps the rate-of-change time base across restarts. Without it a restart loses the time base, and rate limits fall back to a one-interval allowance.
OTGATE_OPCUA_ENDPOINTOPC UA endpoint, e.g. opc.tcp://localhost:4840. Required when OTGATE_BACKEND=asyncua.
An OT-aware authorization gateway that sits between an LLM agent and an industrial OPC UA server, applying a process-aware access policy — value ranges, rate limits, interlocks — to every call the agent makes.
otgate