mcpbeat Sign in

WAGO PLC MCP Server

local only

WAGO PLC runs on your own machine — the client starts it, so there is no endpoint to ping. 134 installs a week from pypi. Last commit 25 Sep 2026.

Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.

Installs per day peak 82 · avg 33 · -55% w/w
a month agotoday
134
Installs / week
pypi · wago-plc-mcp-server
4
Stars
0 open issues
25 Sep 2026
Last commit
from GitHub
—
License
Python

What the code does

We read the source, 2 d ago · rules 995398eba69f

Evidence

Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.

Claims read-only, but the code runs commands fwupdate/authz.py:59, fwupdate/fleet.py:57
    r = subprocess.run(
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

    r = subprocess.run(

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

We found things in this code

Code changes quietly between releases, and nobody reads the diff of a dependency. We do, on every release — watch WAGO PLC and you get told the day something new turns up.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add wago-plc-mcp-server -e 'TRANSPORT=<TRANSPORT>' -e 'WAGO_PLC_HOSTS=<WAGO_PLC_HOSTS>' -e 'DEFAULT_PLC_USERNAME=<DEFAULT_PLC_USERNAME>' -e 'DEFAULT_PLC_PASSWORD=<DEFAULT_PLC_PASSWORD>' -e 'WAGO_ALLOW_WRITES=<WAGO_ALLOW_WRITES>' -- uvx wago-plc-mcp-server
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "wago-plc-mcp-server": {
      "command": "uvx",
      "args": [
        "wago-plc-mcp-server"
      ],
      "env": {
        "DEFAULT_PLC_PASSWORD": "<DEFAULT_PLC_PASSWORD>",
        "DEFAULT_PLC_USERNAME": "<DEFAULT_PLC_USERNAME>",
        "TRANSPORT": "<TRANSPORT>",
        "WAGO_ALLOW_WRITES": "<WAGO_ALLOW_WRITES>",
        "WAGO_PLC_HOSTS": "<WAGO_PLC_HOSTS>"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.wago-plc-mcp-server]
command = "uvx"
args = ["wago-plc-mcp-server"]
env = { TRANSPORT = "<TRANSPORT>", WAGO_PLC_HOSTS = "<WAGO_PLC_HOSTS>", DEFAULT_PLC_USERNAME = "<DEFAULT_PLC_USERNAME>", DEFAULT_PLC_PASSWORD = "<DEFAULT_PLC_PASSWORD>", WAGO_ALLOW_WRITES = "<WAGO_ALLOW_WRITES>" }
.cursor/mcp.json
{
  "mcpServers": {
    "wago-plc-mcp-server": {
      "command": "uvx",
      "args": [
        "wago-plc-mcp-server"
      ],
      "env": {
        "DEFAULT_PLC_PASSWORD": "<DEFAULT_PLC_PASSWORD>",
        "DEFAULT_PLC_USERNAME": "<DEFAULT_PLC_USERNAME>",
        "TRANSPORT": "<TRANSPORT>",
        "WAGO_ALLOW_WRITES": "<WAGO_ALLOW_WRITES>",
        "WAGO_PLC_HOSTS": "<WAGO_PLC_HOSTS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "wago-plc-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "wago-plc-mcp-server"
      ],
      "env": {
        "DEFAULT_PLC_PASSWORD": "<DEFAULT_PLC_PASSWORD>",
        "DEFAULT_PLC_USERNAME": "<DEFAULT_PLC_USERNAME>",
        "TRANSPORT": "<TRANSPORT>",
        "WAGO_ALLOW_WRITES": "<WAGO_ALLOW_WRITES>",
        "WAGO_PLC_HOSTS": "<WAGO_PLC_HOSTS>"
      }
    }
  }
}

Put your own values in place of <TRANSPORT> (MCP transport. Fixed to stdio for this package), <WAGO_PLC_HOSTS> (Comma-separated IPs of the WAGO PLCs, reachable from this machine), <DEFAULT_PLC_USERNAME> (WBM username on the PLCs), <DEFAULT_PLC_PASSWORD> (WBM password, same on all listed PLCs), <WAGO_ALLOW_WRITES> (true lets the agent change parameters, run methods and upload files. Anything else keeps every PLC read-only). The author’s registry entry marks them as required.

Optional settings from the registry entry, left out of the block above: WAGO_TIMEOUT_SECONDS (WDA request timeout. CC100 needs 45 or more, other controllers work with 15), AUDIT_LOG_FILE (Optional path for the tamper-evident audit log of writes and refusals).

Alternatives to WAGO PLC

same job, measured the same way
EPICS Channel Access
by k-dense-ai

MCP server for EPICS Channel Access: read, monitor and guarded writes of process variables.

98 installs/wk local only
Briefpanel
by briefpanel

Monitor web pages and read item-level updates: the field that moved, with its old and new value.

answering
VMware Monitor
by vmware-skills

Read-only VMware vCenter/ESXi monitoring, 33 MCP tools; vSphere calls allowlist-gated in tests.

local only
whatmount — TV and monitor mount facts
by whatmount

VESA pattern, dimensions and weight per TV or monitor model, from the makers' manuals. Read-only.

3 tools answering
Ictbroadcast MCP
by ictinnovations

Monitor ICTBroadcast outbound campaigns, and start and stop them when writes are on.

280 installs/wk local only
Teramind
by wyre-ai

MCP server for Teramind's insider-threat/employee-monitoring API (read-only, metadata-only surface).

local only
Ictdialer MCP
by ictinnovations

Monitor ICTDialer outbound auto-dialer campaigns, and start and stop them when writes are on.

270 installs/wk local only
Ictcontact MCP
by ictinnovations

Monitor ICTContact / ICTDialer outbound campaigns, and start and stop them when writes are on.

190 installs/wk local only

WAGO PLC — questions

Answers built from our own checks of this server.

Why is there no uptime for WAGO PLC?
WAGO PLC runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the pypi package wago-plc-mcp-server was installed 134 times last week.
How do I connect WAGO PLC?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls wago-plc-mcp-server straight from pypi; nothing to host, nothing to sign up for.
How many people use WAGO PLC?
The pypi package wago-plc-mcp-server was installed 134 times in the last week. Week over week that is -55%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is WAGO PLC open source?
We cannot say either way: written in Python and 4 stars on GitHub, but we could not determine the licence, and without one the code is not open source by default.