WAGO PLC MCP Server
by wagoalexio.github.WagoAlex/wago-plc-mcp-serverv2.4.4
Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.
context tax
queued
security
queued
cold start
queued
freshness
Active15d ago
Install WAGO PLC MCP server
Install 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='<default-plc-password>' -e WAGO_ALLOW_WRITES=false -- uvx wago-plc-mcp-serverInstall in Cursor
{
"mcpServers": {
"wago-plc": {
"command": "uvx",
"args": [
"wago-plc-mcp-server"
],
"env": {
"TRANSPORT": "<transport>",
"WAGO_PLC_HOSTS": "<wago-plc-hosts>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<default-plc-password>",
"WAGO_ALLOW_WRITES": "false"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"wago-plc": {
"command": "uvx",
"args": [
"wago-plc-mcp-server"
],
"env": {
"TRANSPORT": "<transport>",
"WAGO_PLC_HOSTS": "<wago-plc-hosts>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<default-plc-password>",
"WAGO_ALLOW_WRITES": "false"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"wago-plc": {
"type": "stdio",
"command": "uvx",
"args": [
"wago-plc-mcp-server"
],
"env": {
"TRANSPORT": "<transport>",
"WAGO_PLC_HOSTS": "<wago-plc-hosts>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<default-plc-password>",
"WAGO_ALLOW_WRITES": "false"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"wago-plc": {
"command": "uvx",
"args": [
"wago-plc-mcp-server"
],
"env": {
"TRANSPORT": "<transport>",
"WAGO_PLC_HOSTS": "<wago-plc-hosts>",
"DEFAULT_PLC_USERNAME": "admin",
"DEFAULT_PLC_PASSWORD": "<default-plc-password>",
"WAGO_ALLOW_WRITES": "false"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| TRANSPORT | yes | — | MCP transport. Fixed to stdio for this package. |
| WAGO_PLC_HOSTS | yes | — | Comma-separated IPs of the WAGO PLCs, reachable from this machine |
| DEFAULT_PLC_USERNAME | yes | — | WBM username on the PLCs |
| DEFAULT_PLC_PASSWORD | yes | yes | WBM password, same on all listed PLCs |
| WAGO_TIMEOUT_SECONDS | — | — | WDA request timeout. CC100 needs 45 or more, other controllers work with 15 |
| WAGO_ALLOW_WRITES | yes | — | true lets the agent change parameters, run methods and upload files. Anything else keeps every PLC read-only |
| AUDIT_LOG_FILE | — | — | Optional path for the tamper-evident audit log of writes and refusals |
Freshness
Active — last maintenance signal 15d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-09-25 · 15d ago · GitHub
Latest release
2026-09-21 · 19d ago · GitHub · v2.4.4
Package published
no data · npm/PyPI
Registry entry updated
2026-09-21 · 19d ago · official registry · v2.4.4
FAQ
›How do I install the WAGO PLC MCP server in Claude Code?
Run: claude mcp add wago-plc -e TRANSPORT='<transport>' -e WAGO_PLC_HOSTS='<wago-plc-hosts>' -e DEFAULT_PLC_USERNAME=admin -e DEFAULT_PLC_PASSWORD='<default-plc-password>' -e WAGO_ALLOW_WRITES=false -- uvx wago-plc-mcp-server. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does WAGO PLC require an API key?
Yes. It expects TRANSPORT, WAGO_PLC_HOSTS, DEFAULT_PLC_USERNAME, DEFAULT_PLC_PASSWORD, WAGO_ALLOW_WRITES, of which 1 is a secret.
›Can I use WAGO PLC as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is WAGO PLC in the official MCP registry?
Yes, as io.github.WagoAlex/wago-plc-mcp-server.
Alternatives to WAGO PLC
Other iot & home automation MCP servers.