Talk to Your PLC in Plain English: An Open-Source MCP Server for WAGO Devices

If you’ve ever wished you could ask your PLC “which network interfaces are active?” and just get an answer - without looking
up parameter IDs, writing a script, or opening the web interface - this project might interest you.

I built wago-plc-mcp-server: an open-source MCP (Model Context Protocol) server that connects WAGO PLCs directly to AI assistants like Claude.

It bridges the WDA REST API to a standard protocol that LLM-based tools understand, so you can query, configure, and monitor your WAGO devices in plain language.

What does that look like in practice?

You can ask things like:

  • “What WAGO PLCs are online right now?”
    • “Find all MODBUS-related parameters on the PFC300 at 192.168.1.10.”
    • “Set the NTP server on the PFC200 to 192.168.1.1.”
    • “Run the restart-webserver method on all PFCs in the fleet.”
    • “Watch these 5 parameters and tell me when any of them change.”
  • The AI assistant handles parameter discovery, pagination, type validation, and method invocation - you describe what you want.
  • Supported hardware
    • CC100, PFC100 G2, PFC200 G2, PFC300, Edge Controller, WP400, TP600 - any device running WDA firmware build 28 or later.
  • Designed for real deployment
  • Runs in Docker, connects to your PLC subnet via network_mode: host
  • Fleet config via a simple comma-separated list or a fleet.txt file - no agent can add or remove PLCs without a human restarting the container
  • Hash-chained audit log that survives container restarts
  • HTTPS-only WDA access with per-device credentials via Docker secrets
  • CRA-hardened: 19 security controls implemented including TLS, bearer auth, and SBOM generation

Why MCP?

MCP (Model Context Protocol) is an emerging open standard for connecting AI tools to real systems. It means this server works
today with Claude, and will work with any MCP-compatible assistant as the ecosystem grows. Automation engineers get a
natural-language interface on top of the exact same WDA API they already know - no new PLC firmware, no cloud dependency, no vendor lock-in.

Get started

The project is open source on GitHub. Clone it, point it at your test rack, and ask your first question in under 10 minutes.

on e.g. Edge Device or Laptop (not for pfc, since image is amd64):

Docker image: wagoalex/wago-plc-mcp-server:latest

docker run -d
–name wmcp
–network host
-e WAGO_PLC_HOSTS=192.168.42.110
-e DEFAULT_PLC_USERNAME=admin
-e DEFAULT_PLC_PASSWORD=wago
-e HOST=0.0.0.0
-e PORT=6042
-e TRANSPORT=streamable-http
-v $(pwd)/data:/app/data
wagoalex/wago-plc-mcp-server:latest

For a multi-PLC setup just extend the hosts list:

-e WAGO_PLC_HOSTS=192.168.42.110,192.168.42.118,192.168.42.119

Curious what questions your fleet would answer?

Drop a comment below - happy to discuss real-world use cases or help you get
it running on your setup.