WAGO PLC
Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
wago-plc-mcp-serverclaude mcp add wago-plc -e 'TRANSPORT=<TRANSPORT>' -e 'WAGO_PLC_HOSTS=<WAGO_PLC_HOSTS>' -e 'DEFAULT_PLC_USERNAME=admin' -e 'DEFAULT_PLC_PASSWORD=<your default_plc_password>' -e 'WAGO_TIMEOUT_SECONDS=45' -e 'WAGO_ALLOW_WRITES=false' -e 'AUDIT_LOG_FILE=<AUDIT_LOG_FILE>' -- uvx wago-plc-mcp-server==2.4.4
{
"mcpServers": {
"wago-plc": {
"command": "uvx",
"args": [
"wago-plc-mcp-server==2.4.4"
],
"env": {
"TRANSPORT": "<TRANSPORT>",
"WAGO_PLC_HOSTS": "<WAGO_PLC_HOSTS>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<your default_plc_password>",
"WAGO_TIMEOUT_SECONDS": "45",
"WAGO_ALLOW_WRITES": "false",
"AUDIT_LOG_FILE": "<AUDIT_LOG_FILE>"
}
}
}
}
Environment variables
TRANSPORTrequired MCP transport. Fixed to stdio for this package.WAGO_PLC_HOSTSrequired Comma-separated IPs of the WAGO PLCs, reachable from this machineDEFAULT_PLC_USERNAMErequired WBM username on the PLCsDEFAULT_PLC_PASSWORDrequired secret WBM password, same on all listed PLCsWAGO_TIMEOUT_SECONDSWDA request timeout. CC100 needs 45 or more, other controllers work with 15WAGO_ALLOW_WRITESrequired true lets the agent change parameters, run methods and upload files. Anything else keeps every PLC read-onlyAUDIT_LOG_FILEOptional path for the tamper-evident audit log of writes and refusals
docker.io/wagoalex/wago-plc-mcp-server:2.4.4claude mcp add wago-plc -e 'TRANSPORT=<TRANSPORT>' -e 'WAGO_PLC_HOSTS=<WAGO_PLC_HOSTS>' -e 'DEFAULT_PLC_USERNAME=admin' -e 'DEFAULT_PLC_PASSWORD=<your default_plc_password>' -e 'WAGO_TIMEOUT_SECONDS=45' -e 'WAGO_ALLOW_WRITES=false' -e 'AUDIT_LOG_FILE=<AUDIT_LOG_FILE>' -- docker run -i --rm docker.io/wagoalex/wago-plc-mcp-server:2.4.4
{
"mcpServers": {
"wago-plc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/wagoalex/wago-plc-mcp-server:2.4.4"
],
"env": {
"TRANSPORT": "<TRANSPORT>",
"WAGO_PLC_HOSTS": "<WAGO_PLC_HOSTS>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<your default_plc_password>",
"WAGO_TIMEOUT_SECONDS": "45",
"WAGO_ALLOW_WRITES": "false",
"AUDIT_LOG_FILE": "<AUDIT_LOG_FILE>"
}
}
}
}
Environment variables
TRANSPORTrequired MCP transport. Fixed to stdio for this package.WAGO_PLC_HOSTSrequired Comma-separated IPs of the WAGO PLCs, reachable from this machineDEFAULT_PLC_USERNAMErequired WBM username on the PLCsDEFAULT_PLC_PASSWORDrequired secret WBM password, same on all listed PLCsWAGO_TIMEOUT_SECONDSWDA request timeout. CC100 needs 45 or more, other controllers work with 15WAGO_ALLOW_WRITESrequired true lets the agent change parameters, run methods and upload files. Anything else keeps every PLC read-onlyAUDIT_LOG_FILEOptional path for the tamper-evident audit log of writes and refusals
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
wago-plc-mcp-server
This MCP server connects Claude and other AI assistants to WAGO PLCs. You ask a question in plain English. The assistant gets the answer from the PLC. You do not need scripts or parameter IDs.
Quick start
You need Claude Desktop and a PLC that your computer can reach on the network.
- Download
wago-plc-mcp-server-<version>.mcpbfrom the latest release. - In Claude Desktop, go to Settings → Extensions.
- Drag the
.mcpbfile onto the window. - In the form, enter the PLC IP address and the WBM password. Then save the form.
- Ask Claude: "List my PLCs".
If the installer does not start on Windows, or if you have many PLCs, see Claude Desktop and Claude Code.
Try these questions
What firmware is running on 192.168.1.10?
Check the NTP status on all PLCs.
Show the diagnostic LED states on all PLCs.
For more examples and screen recordings, see Example questions.
Safe by default
- The server only reads. It refuses all writes until you select Allow writes and method calls.
- The server refuses reboot, factory reset, and firmware methods. An administrator can allow one exact method.
- In GitOps mode, the server refuses file uploads. File uploads do not have a pull-request path yet.
- An audit log records each write, each method call, and each file upload.
For the full rules, see How it works.
Next steps
| I want to... | Read |
|---|---|
| Connect many PLCs, install the WAGO skill, or watch the demos | Claude Desktop and Claude Code |
| Know what the server does on my PLCs | How it works |
| Run one server for a team | Deployment |
| Review each change in a pull request before it goes to a PLC | GitOps |
| Update firmware | Firmware updates |
| Configure TLS, API keys, and the audit log | Security |
| Find all tools and settings | Reference |
| Find an answer to a common question | FAQ |
Supported devices: CC100, PFC100 G2, PFC200 G2, PFC300, Edge Controller, WP400, and TP600. For the tested firmware versions, see Supported hardware.
License
Frequently asked questions
What is WAGO PLC?
Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.
How do I install WAGO PLC?
It runs on your machine. In Claude Code: claude mcp add wago-plc -e 'TRANSPORT=<TRANSPORT>' -e 'WAGO_PLC_HOSTS=<WAGO_PLC_HOSTS>' -e 'DEFAULT_PLC_USERNAME=admin' -e 'DEFAULT_PLC_PASSWORD=<your default_plc_password>' -e 'WAGO_TIMEOUT_SECONDS=45' -e 'WAGO_ALLOW_WRITES=false' -e 'AUDIT_LOG_FILE=<AUDIT_LOG_FILE>' -- uvx wago-plc-mcp-server==2.4.4. For other clients, paste the JSON configuration from this page into their MCP settings.
Does WAGO PLC need an API key?
Yes. It expects TRANSPORT, WAGO_PLC_HOSTS, DEFAULT_PLC_USERNAME, DEFAULT_PLC_PASSWORD, WAGO_ALLOW_WRITES, which you set in its configuration.
Is WAGO PLC open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains WAGO PLC?
It is published by WagoAlex. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.