OPC-UA MCP Server — MCP-сервер для Claude Code: доступ к OPC-UA
Даёт агенту чтение, запись и подписку на живые данные OPC-UA-сервера промышленной автоматизации. Пригодится, когда нужно смотреть значения тегов прямо из чата.
claude mcp add --env OPCUA_ENDPOINT=<OPCUA_ENDPOINT> --env OPCUA_AUTH_MODE=<OPCUA_AUTH_MODE> --env OPCUA_USERNAME=<OPCUA_USERNAME> --env OPCUA_PASSWORD=<OPCUA_PASSWORD> --env OPCUA_SECURITY_POLICY=<OPCUA_SECURITY_POLICY> --transport stdio opc-ua-mcp-server -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_AUTH_MODE -e OPCUA_USERNAME -e OPCUA_PASSWORD -e OPCUA_SECURITY_POLICY ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4Что делает OPC-UA MCP Server
Сервер поднимается по stdio или HTTP и держит соединение с OPC-UA-эндпоинтом. Внутри — дисковый кэш на bbolt: повторные чтения и обход адресного пространства не дёргают устройство каждый раз, а запись сама сбрасывает устаревшую запись кэша. Отдельно в фоне строится поисковый индекс адресного пространства на Bleve, поэтому узел можно искать по имени, а не по node ID, и находить похожие имена по частичному совпадению.
Инструментов много: opcua_read, opcua_write с проверкой типа перед отправкой на устройство, opcua_browse и opcua_browse_nodes для обхода дерева, opcua_subscribe для push-обновлений. Подписки переживают перезапуск и восстанавливаются при переподключении. Есть opcua_get_value_by_name, opcua_node_info, диагностика вроде opcua_debug_search и opcua_discovery_stats. Ресурсы — opcua://node/{node_id} и opcua://server.
Аутентификация — анонимная, по логину с паролем или по сертификату, политика и режим безопасности настраиваются. Конфиг читается из встроенных значений, файла (TOML, YAML, JSON) и переменных окружения; переменные всегда перебивают файл. Для OPCUA_AUTH_MODE=username нужны OPCUA_USERNAME и OPCUA_PASSWORD, для режима с сертификатом — OPCUA_CERT_FILE и OPCUA_KEY_FILE. Сборка из исходников требует Go 1.26+.
Какие задачи решает
- прочитать значение тега по имени, не зная node ID
- записать уставку и отклонить значение не того типа
- подписаться на изменения узла и получать их без опроса
- обойти дерево адресного пространства до нужной глубины
- найти узел по частичному совпадению имени
Примеры запросов агенту
- Подключись к OPC-UA и покажи, что лежит в корне адресного пространства
- Прочитай значение узла
ns=2;i=1и скажи его тип данных - Подпишись на этот узел и присылай обновления каждые 500 мс
Как установить OPC-UA MCP Server
Командой платформы
claude mcp add --env OPCUA_ENDPOINT=<OPCUA_ENDPOINT> --env OPCUA_AUTH_MODE=<OPCUA_AUTH_MODE> --env OPCUA_USERNAME=<OPCUA_USERNAME> --env OPCUA_PASSWORD=<OPCUA_PASSWORD> --env OPCUA_SECURITY_POLICY=<OPCUA_SECURITY_POLICY> --transport stdio opc-ua-mcp-server -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_AUTH_MODE -e OPCUA_USERNAME -e OPCUA_PASSWORD -e OPCUA_SECURITY_POLICY ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера
Командой платформы
codex mcp add opc-ua-mcp-server --env OPCUA_ENDPOINT=<OPCUA_ENDPOINT> --env OPCUA_AUTH_MODE=<OPCUA_AUTH_MODE> --env OPCUA_USERNAME=<OPCUA_USERNAME> --env OPCUA_PASSWORD=<OPCUA_PASSWORD> --env OPCUA_SECURITY_POLICY=<OPCUA_SECURITY_POLICY> -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_AUTH_MODE -e OPCUA_USERNAME -e OPCUA_PASSWORD -e OPCUA_SECURITY_POLICY ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера
Файл настроек
{
"mcpServers": {
"opc-ua-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_AUTH_MODE",
"-e",
"OPCUA_USERNAME",
"-e",
"OPCUA_PASSWORD",
"-e",
"OPCUA_SECURITY_POLICY",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "<OPCUA_ENDPOINT>",
"OPCUA_AUTH_MODE": "<OPCUA_AUTH_MODE>",
"OPCUA_USERNAME": "<OPCUA_USERNAME>",
"OPCUA_PASSWORD": "<OPCUA_PASSWORD>",
"OPCUA_SECURITY_POLICY": "<OPCUA_SECURITY_POLICY>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера
Файл настроек
{
"servers": {
"opc-ua-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPCUA_ENDPOINT",
"-e",
"OPCUA_AUTH_MODE",
"-e",
"OPCUA_USERNAME",
"-e",
"OPCUA_PASSWORD",
"-e",
"OPCUA_SECURITY_POLICY",
"ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4"
],
"env": {
"OPCUA_ENDPOINT": "<OPCUA_ENDPOINT>",
"OPCUA_AUTH_MODE": "<OPCUA_AUTH_MODE>",
"OPCUA_USERNAME": "<OPCUA_USERNAME>",
"OPCUA_PASSWORD": "<OPCUA_PASSWORD>",
"OPCUA_SECURITY_POLICY": "<OPCUA_SECURITY_POLICY>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера
Командой платформы
gemini mcp add -e OPCUA_ENDPOINT=<OPCUA_ENDPOINT> -e OPCUA_AUTH_MODE=<OPCUA_AUTH_MODE> -e OPCUA_USERNAME=<OPCUA_USERNAME> -e OPCUA_PASSWORD=<OPCUA_PASSWORD> -e OPCUA_SECURITY_POLICY=<OPCUA_SECURITY_POLICY> opc-ua-mcp-server docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_AUTH_MODE -e OPCUA_USERNAME -e OPCUA_PASSWORD -e OPCUA_SECURITY_POLICY ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о OPC-UA MCP Server
Как установить OPC-UA MCP Server в Claude Code?
Одной командой: `claude mcp add --env OPCUA_ENDPOINT=<OPCUA_ENDPOINT> --env OPCUA_AUTH_MODE=<OPCUA_AUTH_MODE> --env OPCUA_USERNAME=<OPCUA_USERNAME> --env OPCUA_PASSWORD=<OPCUA_PASSWORD> --env OPCUA_SECURITY_POLICY=<OPCUA_SECURITY_POLICY> --transport stdio opc-ua-mcp-server -- docker run -i --rm -e OPCUA_ENDPOINT -e OPCUA_AUTH_MODE -e OPCUA_USERNAME -e OPCUA_PASSWORD -e OPCUA_SECURITY_POLICY ghcr.io/mwieczorkiewicz/opcua-mcp:main-29734c4`. Подставьте свои значения эндпоинта и учётных данных.
Что делает OPC-UA MCP Server?
Открывает агенту доступ к OPC-UA-серверу: чтение и запись значений узлов, обход адресного пространства, поиск по именам и подписка на живые обновления. Результаты чтения и обхода кэшируются на диске.
Что нужно для работы сервера?
Эндпоинт в OPCUA_ENDPOINT и режим аутентификации в OPCUA_AUTH_MODE. Для входа по логину задайте OPCUA_USERNAME и OPCUA_PASSWORD, для сертификата — OPCUA_CERT_FILE и OPCUA_KEY_FILE. Сборка из исходников требует Go 1.26+.